WO2025207110A1 - Method and system for a web interaction with objects and remote display technologies - Google Patents
Method and system for a web interaction with objects and remote display technologiesInfo
- Publication number
- WO2025207110A1 WO2025207110A1 PCT/US2024/022310 US2024022310W WO2025207110A1 WO 2025207110 A1 WO2025207110 A1 WO 2025207110A1 US 2024022310 W US2024022310 W US 2024022310W WO 2025207110 A1 WO2025207110 A1 WO 2025207110A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- browser
- message
- user input
- input device
- executed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/017—Gesture based interaction, e.g. based on a set of recognized hand gestures
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/016—Input arrangements with force or tactile feedback as computer generated output to the user
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Definitions
- the present systems, apparatuses, and methods lie in the field of communications and processing and, more specifically, to methods and systems for the creation of a distributed system for processing a controller using a mobile phone and smart televisions as display, while the infrastructure handles all message passing from controllers to applications in a distributed system with decentralized processing as a traditional operating system handles I/O events and tasks.
- RDP Remote Desktop Protocol
- VNC Virtual Network Computing
- ICA Citrix “Internet Computer Architecture”
- An aspect of the disclosed embodiments includes a method.
- the method comprises: generating a first message for a first browser executed on a first computing device, the first message including instructions that in response to being executed by the first browser causes a representation of an interface of a physical user input device to be displayed by the first browser; providing the first message to the first browser; generating a second message for a second browser executed on a second computing device, the second message including instructions that when executed by the second browser enables user interaction with content provided by the second browser in responsive to input from the representation of the interface of the physical user input device displayed by the first browser, wherein the physical user input device is configured to interact with the content provided by the second browser; and providing the second message to the second browser.
- Another aspect of the disclosed embodiments includes a computer-readable storage medium having program instructions recorded thereon that, when executed by at least one processing circuit of a computing device perform a method.
- the method comprises: generating a first message for a first browser executed on a first computing device, the first message including instructions that in response to being executed by the first browser causes a representation of an interface of a physical user input device to be displayed by the first browser; providing the first message to the first browser; generating a second message for a second browser executed on a second computing device, the second message including instructions that when executed by the second browser enables user interaction with content provided by the second browser in responsive to input from the representation of the interface of the physical user input device displayed by the first browser, wherein the physical user input device is configured to interact with the content provided by the second browser; and providing the second message to the second browser.
- FIG. 2 is a diagrammatic illustration of exemplary embodiments of a controller for a paint palette and a game controller for the architecture of FIG. 1;
- FIG. 3 is a diagrammatic illustration of exemplary embodiments of a controller for a keyboard, a camera, and a microphone for the architecture of FIG. 1;
- FIG. 4 is a diagrammatic illustration of exemplary embodiments of a client and server architecture and messaging using SocketIO and WebSockets and interaction with smart televisions for the architecture of FIG. 1;
- FIG. 5 is a flow chart for an exemplary embodiment of a method to enable a server-based interface to serve a smart television in the device connect platform architecture of FIG. 1;
- FIG. 6 is a flow chart for an exemplary embodiment of a method to enable a server-based interface to server a controller for a device connect platform application
- FIG. 7(a) is a diagrammatic illustration of an exemplary embodiment of a WebSocket architecture for communications;
- FIG. 7(b) is a diagrammatic illustration of an exemplary embodiment of a WebRTC architecture for communications
- FIG. 7(c) is a diagrammatic illustration of an exemplary embodiment of a WebRTC w/ Tunnel architecture for communications
- FIG. 8(a) is a diagrammatic illustration of an exemplary embodiment of a swipe-right- interaction to load a game controller and a game application of FIG. 8(c) serviced by the DEVICE CONNECT PLATFORM into a smart television;
- FIG. 8(b) is a diagrammatic illustration of an exemplary embodiment of a tap interaction to load the game controller and a game application of FIG. 8(c) serviced by the device connect platform into a smart television;
- FIG. 8(c) is a diagrammatic illustration of an exemplary embodiment of a game controller and a game application serviced by the device connect platform for use on a smart television;
- FIG. 9(a) is a diagrammatic illustration of an exemplary embodiment of selecting an application using hand interactions for a drawing application
- FIG. 12(a) is a block diagram of an exemplary embodiment of a device connect platform multimedia application and integration with USB WebCameras and other USB devices over IP;
- FIG. 16(a) is a diagrammatic illustration of an exemplary embodiment of a dongle with a QR Code and Bluetooth Low Energy WIFI provisioning
- FIG. 17(a) is a block diagram of an exemplary embodiment of a combination of gesture) s and mevia.js and their use in the device connect platform architecture of FIG. 1;
- FIG. 17(b) is a block diagram of an exemplary embodiment of a combination of gesture) s and mevia.js and their use in the device connect platform architecture of FIG. 1;
- FIG. 18 is a block diagram of an exemplary embodiment of a method of processing messages in the device connect platform architecture of FIG. 1;
- FIG. 20 is a diagrammatic illustration of an exemplary embodiment of integration of the device connect platform architecture of FIG. 1 to Broadcasting Platforms and Systems;
- FIG. 21 is a block diagram of an exemplary embodiment of content routing apparatuses and systems for commands and messages from a controller in the device connect platform architecture of FIG. 1;
- FIG. 22(a) is a diagrammatic illustration of an exemplary embodiment of data capturing for a controller that will be trained using a Neural Network or Deep Learning using LSTM or other Neural Network;
- FIG. 22(b) is a diagrammatic illustration of an exemplary embodiment of training the neural network to match different commands using a controller.
- FIG. 23(a) is a diagrammatic illustration of an exemplary embodiment of a swipe-right- interaction to load a game controller and a game application of FIG. 8(c) serviced by the device connect platform into a smart television;
- FIG. 23(c) is a diagrammatic illustration of an exemplary embodiment of a game controller and a game application serviced by the device connect platform for use on a smart television;
- FIG. 24 is a diagrammatic illustration of an exemplary embodiment of a device connect platform Application that maps 3D gestures to 3D display actions using 3DMevia.js;
- FIG. 25 is a block diagram of an exemplary embodiment of a method for authenticating access or recognizing gestures for a device connect platform application using gesture driven tools.
- FIG. 26 generally illustrates a flow diagram of a method for enabling a user to control and interact with content on a computing device using a browser interface on another computing device, according to the principles of the present disclosure.
- a phrase in the form “A/B” or in the form “A and/or B” or in the form “at least one of A and B” means (A), (B), or (A and B), where A and B are variables indicating a particular object or attribute.
- this phrase is intended to and is hereby defined as a choice of A or B or both A and B, which is similar to the phrase “and/or”.
- embodiments of the systems, apparatuses, and methods described herein may be comprised of one or more conventional processors and unique stored program instructions that control the one or more processors to implement, in conjunction with certain non-processor circuits and other elements, some, most, or all of the functions of the systems, apparatuses, and methods described herein.
- the non-processor circuits may include, but are not limited to, signal drivers, clock circuits, power source circuits, and user input and output elements.
- program is defined as a sequence of instructions designed for execution on a computer system or programmable device.
- a “program,” “software,” “application,” “computer program,” or “software application” may include a subroutine, a function, a procedure, an object method, an object implementation, an executable application, an applet, a servlet, a source code, an object code, any computer language logic, a shared library/dynamic load library and/or other sequence of instructions designed for execution on a computer system.
- Embodiments disclosed herein are directed to a device connect platform that addresses limitations of existing technologies such as Remote Desktop Protocol (RDP).
- the device connect platform eliminates the need for RDP by using standard Hypertext Transfer Protocol (HTTP) and video tags, making it possible to access remote units without a transcoding server.
- HTTP Hypertext Transfer Protocol
- the device connect platform enables users to control web applications using mobile computing devices such as tablets, smart phones, augmented reality glasses, virtual reality devices, or any other device that can display information. These mobile computing devices act as controllers, and the need for a traditional controller interface is eliminated.
- the platform employs video encoding to project remote screens into a web browser.
- the capabilities of JavaScript are used to transform a mobile computing device into a physical user input device (e g., mouse, keyboard, game controller). This allows users to send touch commands to a remote server that is displayed on a computing device, such as a smart television
- Remote management is achieved by forwarding touch commands from the mobile web browser to a remote computing device, which can be displayed on a smart television or streamed through various protocols such as Web Real-Time Communication (WebRTC), Real-Time Messaging Protocol (RTMP), HTTP Live Streaming (HLS), or DASH protocols, that are compatible with web browsers.
- WebRTC Web Real-Time Communication
- RTMP Real-Time Messaging Protocol
- HLS HTTP Live Streaming
- DASH protocols that are compatible with web browsers.
- the platform further supports adaptive video quality, meaning it can adapt to different network conditions and device capabilities. For example, the platform can switch video resolution and quality based on a needs of a user.
- the platform serves as a decentralized or distributed operating system. It connects web applications and mobile computing devices that become controllers for web applications displayed on smart televisions, AR and VR displays (Augmented Reality and Virtual Reality), and projectors.
- the system utilizes JavaScript/CSS libraries (e.g., “gestures) s”) for control.
- the user s mobile device acts as the controller, sending commands and gestures that are translated into JavaScript macros for efficient processing and interactions with web applications.
- a remote webpage is displayed at the smart television that loads another JavaScript file or files (e g., mevia.js) and that becomes the display.
- an identification mechanism such as a quick-response (QR) code, can be used to load a controller onto a smart television. This mechanism includes parameters like an application identifier and other information that determines the destination server for all users’ inputs and interactions.
- a QR code is scanned to activate a representation of an interface of a physical user input device to be displayed on a mobile computing device and to establish a communication channel between the mobile computing device and smart television, enabling user interaction with content displayed on the television via input from the representation of the interface of the physical user input device displayed on the mobile computing device.
- the embodiments disclosed herein allows users to use mobile computing devices as input user devices and stream content to smart televisions. By leveraging video encoding and JavaScript, embodiments disclosed herein provide a dynamic and adaptable user experience.
- the decentralized nature of the platform means that it can be applied to a wide range of applications and computing devices. Any capabilities of a web application tailored for a smart phone, tablet, laptop, AR (Augmented Reality), Virtual Reality, Extended Reality display, or desktop interfaces can now extend to use with a smart television.
- the mobile computing device serves as the physical user input device, while the smart television transforms into the display and the device connect platform operates as the central platform handling messaging between the mobile computing device and the smart television.
- user input device and controller are used interchangeably.
- FIG. 1 is a block diagram of an exemplary embodiment of a cloud services network 102 that hosts device connect platform 100 and several applications that are accessible to device connect platform 100.
- a cloud services network refers to the underlying technology that facilitates the access, storage, and management of data, applications, and resources hosted in the cloud.
- An application as referred to herein may be of any type of web accessible application/service, such as a database application, a social networking application, a messaging application, a financial services application, a news application, a search application, a web-accessible productivity application, a cloud storage and/file hosting application, or the like.
- the applications include a (Non-fungible token) NFT Lab 110, a Doorbell 120 (e.g., RING®), Games 130, Video Conference 140 (e g., ZoomTM, Microsoft Teams®, Slack®), and a Streaming Application 150 (e.g., Netflix®).
- NFT Lab 110 e.g., a Non-fungible token
- Doorbell 120 e.g., RING®
- Games 130 e.g., PlayStationTM, Microsoft Teams®, Slack®
- Video Conference 140 e.g., ZoomTM, Microsoft Teams®, Slack®
- Streaming Application 150 e.g., Netflix®
- cloud services networks that host other applications, such as email services (e,g., Google®, Outlook®), productivity suites (e.g., Google WorkspaceTM, Microsoft 365TM), social media platforms (e.g., Facebook®, Twitter®, Linkedln®), cloud storage and file sharing (e.g., Dropbox®, OneDrive®), and online shopping (e g., Amazon, eBay®).
- email services e.g., Google®, Outlook®
- productivity suites e.g., Google WorkspaceTM, Microsoft 365TM
- social media platforms e.g., Facebook®, Twitter®, Linkedln®
- cloud storage and file sharing e.g., Dropbox®, OneDrive®
- online shopping e., Amazon, eBay®.
- Device connect platform 100 may include one or more server devices and/or other computing devices. Any of the applications may be associated with resources that are stored on one or more application servers. Each component of cloud services network 102 may be communicatively connected via one or more networks (not pictured in FIG. 1). These one or more networks may include, for example, a local area network (LAN), a wide area network (WAN), a personal area network (PAN), and/or a combination of communication networks, such as the Internet.
- LAN local area network
- WAN wide area network
- PAN personal area network
- device connect platform 100 uses a component, web integration code 170 (also referred to as mevia.js herein when referenced as a JavaScript file or files in some embodiments), which is part of device connect platform application 160 (also referred to as Mevia App herein in some embodiments), and web integration code 170 is configured to integrate various web technologies like JavaScript, CSS, and HTML from an original web application. In some embodiments, with the implementation of mevia.js, this may be achieved in frameworks such as React by creating a component ⁇ MEVIA/> 180. In some embodiments, device connect platform 100 may operate on different ports, including secure SSL mode for HTTPS, depending on how web servers are set up. Device connect platform 100 is adaptable to different web server configurations.
- Device connect platform 100 may work with servers like NGINX or Apache and even in hybrid setups with NodeJS 175, supporting both HTTP and HTTPS.
- Web integration code 170 may act as a connecting piece, essentially linking various elements of device connect platform 100 communication and data flow between different parts of the system, serving as a “glue” that holds components of device connect platform 100 together.
- Applications can be hosted on their own server, whether they are within the same network or spread across different networks. This provides flexibility in resource allocation and deployment.
- Device connect platform 100 may employ technologies, like SocketIO for WebSockets and WebRTC for peer-to- peer communication. These technologies enable real-time instant communication between controllers and the web applications that are being controlled.
- an application may use two or more ports, for example, to operate in SSL mode for HTTPS and another port (e.g. 3000).
- a web server e.g NGINX or Apache
- a hybrid configuration running NodeJS 175 and a webserver supporting HTTP/HTTPS server 165 can also be used to support servicing a device connect platform 100 application as well as servicing controller applications.
- web integration code 170 e.g., mevia.js
- palette controller 200 contains a grid 207 to map the display, as well as other commands shown in 202 that may be associated with JavaScript source code and libraries.
- palette controller 200 may emit touch start, touch end, touch move, as a user touches grid 207 with a pen stylus or a finger.
- touch start can be generated, and sent in a message to a drawing web application. In some embodiments, this is being tracked by gestures.
- s 220 which is the script that detects all gestures
- a swipe right event can be detected using multiple methods including arithmetic comparison of touchstart and touchend, x and y coordinates, as well as using k-nearest neighbor (KNN), a neural network, or other machine learning techniques.
- KNN k-nearest neighbor
- a gesture could signify “Tap” or “Double Tap” and represent “Enter” or selection as a standard application
- the interpretation of such commands is then fetched in a database of device connect platform 100, where a certain Application Identifier (AppID) will have a different behavior than others.
- AppID Application Identifier
- a “Long Tap” could be mapped to a jQuery command or a standard HTML command such as document.
- Query Selector where $(“#slider”).goto(l), or send a slider JavaScript widget to the first slide.
- a keyboard’s up, down, left and right are mapped to icons or positions shown as part of URL 216, https://app.mevia.
- the keypad 218 may contain standard game functions as well as “macro” commands 215 that are associated with one or several JavaScript messages that are being executed remotely at the web application in control.
- a “Long Tap” e.g. pressing the screen for four seconds
- a short tap may mean open the door.
- the specific functionality is identified and can be changed in real-time as users are pressing and interacting with the controller, depending on how the behavior is established by those controllers.
- gestures.js 225 is tracking any gestures detected.
- FIG. 3 provides other exemplary embodiments of representations of interfaces of physical user input devices being displayed by a browser.
- FIG. 3 depicts a microphone and camera controller 310 including microphone 315 and cameras 320 and 325, which are available in HTML5 in more recent browsers. These controllers when used could be combined with a WebRTC message and draw on a remove ⁇ canvas> HTML object or be used for transmission of voice in a voice chat application, for example, when using a video conferencing client application:
- Payload base64 image or webRTC socket to a canvas
- FIG. 3 also depicts a keyboard controller 300 and messages sent from a keyboard tap at 305 which may be interpreted as:
- FIG. 4 depicts device connect platform 100 processing of a user interaction with a representation of a user input device displayed on a computing device. More specifically, FIG. 4 depicts how a user handles a controller, in this example, a keypad 402. For example, the user touches keypad 402 at number 7, and the smart television will be updated to display the number 7. In order to achieve that, the controller, which is displayed on smart phone 400, is located at the URL 404 https ://:app.mevia.television/keypad.
- the keypad web-app includes multiple HTML/CSS objects with images including mevia.js and gestures. ⁇ s.
- the remote web application is located at URL 432: https://callApp.mevia.television/call.
- Both URL 404 and URL 432 are loaded asynchronously and do not need to be synchronized. However, in some embodiments, URL 432 may have been loaded first before URL 404 and is, for this example, ready to be used.
- the URL keypad at https://app.mevia.television/ 406 loads the gestures. ⁇ s library, HTML, and images, as well as other JavaScript libraries information.
- the controller’s URL also includes an application identifier (AppID) and UUIDs that are generated from device connect platform 100 to associate a user’s events to the application, and those values are embedded in the response 408.
- the UUID value is unique and is used to represent a session key.
- the ’’AppID” or Application Identifier could also change and be used as “nonce” parameter but it is not necessary for this particular example.
- the message.evt and message payload is created after pressing the key “7”.
- a SocketIO session 410 is used to send the JSON message structure 412 that includes the following members: message.evt, message.value, message.x, message.y, message. z, and message.time (or timestamp), which provides position of the keypress event and its value.
- the message pay load can be expanded to include other parameters.
- the keypad module can be rendered as part of a nodejs web application that listens to port 3000 and HTTPS port at 443, as shown at 414.
- the KeyPad controller 416 will use the session and the SocketIO request 418 but instead of being message.
- the message is replaced by device connect platform 100 to a JavaScript command that is embedded as part of the payload, in the SocketIO Request to the web application with a “JavaScript libarry”.
- the web application at step 420 receives message.
- keypad 402 has effectively written over the remote screen a value of “7.”
- the intervention of the “Content Router” entity is omitted for simplicity, and a simple socket.broadcast.to() from SocketIO is used to show as an example how the value of “7” is transmitted from the phone to the application.
- other applications retrieving the same webpage, and hence all displays, smart televisions, tablets, or other browsers connected to the same page will see updates received by pressing a keypad from the mobile phone.
- updates on 434 occur asynchronously without a new GET request issued by the web browser at 432 but instead by a socket.
- the device connect platform server’s macro converters 428 may require converting all references to local or remote assets (e.g. hypertext reference attribute (href) tag in HTML) in device connect platform application 100 to be converted from local to fully qualified domain name (FQDN) address.
- HTTP hypertext reference attribute
- This conversion permits the use in cloud-based systems and access to CDN’s that facilitate NodeJS processing.
- CDN Uniform Resource Identifier
- URI Uniform Resource Identifier
- DOM Document Object Model
- the controller can be initialized depending on what application is being used, for instance switching from a keyboard to touch interface.
- An “initController” message triggers a mobile terminal to initialize and load a new or different controller or simply the current controller is reinitialized 440.
- authentication keys can be re-issued and payment information can be collected to the user.
- a payment request can be made from a service such as an online payment system or collect token information using the end-user’s software cryptocurrency wallet account such that the use of the device as a controller is not free.
- FIG. 5 depicts how mevia.js loads and how it is used to display a smart television
- FIG. 6 shows the controller interface that is loaded by a user to a mobile phone to control a smart television.
- step 500 in FIG. 5 initialize for web communication with security credentials like a key, certificate, and certificate authority occurs.
- security credentials like a key, certificate, and certificate authority
- SSL Secured Socket Layer
- WSS WebSocket Secured
- Port 3000 secured, and enables the use of HTTPS-based resources (e.g. load images, CSS, etc).
- HTTPS-based resources e.g. load images, CSS, etc.
- the URL for the original application which will be used to interact with the application is set and all resources for the application from the URL (including HTML, CSS, images, and JavaScript) are retrieved.
- a JavaScript game can be loaded from the original link, and then as part of the same procedure all other assets are loaded into the DOM for a particular HTML page.
- the web application for the game is modified to add mevia.js, mevia.css, and other elements that can be added dynamically by using dom.append(..) or dom.appendChild(..).
- the ‘href attributes within the DOM of the application are modified, including redirecting links or adjusting resource paths.
- the DOM can add the mevia.js file, mevia.css, and modify all “href’ values required for the application to work. For example, if the game makes references to images, fonts, and other resources in the original HTML are pointing to a local reference, they can be modified to a server plus path references.
- another path to initialize an application is performed. For example, step 502 involves an initial state waiting for an application launch command with a specific application ID. To help further illustrate, an application via the “LaunchApp” command using the AppID or application identifier that could be associated with a menu to launch another application.
- the application ID such as a UUID
- some form of authentication such as token or key
- AppID e.g. biometrics, user and password authentication, certificate-based authentication e.g. 802. IX, PKI, and other Private/Publick Key authentication.
- a command is sent to initialize a controller.
- an “InitController Command” may in fact be issued by the device connect platform infrastructure and sent to a particular controller.
- the initController command may load new authentication requirements that are being imposed as part of the process to load a particular controller.
- a controller may be “disabled” until authentication is completed.
- This authentication can be added to the DOM as part of a controller as mevia.js modifies the DOM to evaluate JavaScript macros.
- the authentication may require a particular user at a controller level to enter username and password.
- a controller may request a payment portal and other payment portals include web widgets, like “Pay now” button, for controllers that require a method of payment or when a subscription to a particular service is past due.
- the controller is set with specific parameters.
- the parameters may include ‘KeyPad’ and ‘Video’ which are types of input for the application.
- a keypad 12-key pad (0, 1, 2, 3 . . . #, *) or a Character keypad.
- the device connect platform application or web interface will proceed to load assets including HTML, JavaScript, CSS and images for the application being displayed into a smart television or any display in general.
- the application is associated with a controller, and there are several standard controllers that can be implemented using HTML.
- the device that will control the smart television could be a touch interface that can then be controlled with a mobile phone for a keypad, a keyboard, a gesture-drive interface, and other types of one or several controllers that will be loaded by a user attempting to interact with the device connect platform application.
- a controller Once a controller is defined, it is set to be initialized, which could have been completed via the “initController” command that is being sent to the controller at step 522.
- a Quick Response (QR) Code string may be re-generated using AppID, UUID, and region or any other session value and stores as part of “qrcodeStr” value.
- This “qrCode” value can also be a “fingerprint” for the stream being displayed that can be used later for matching this fingerprint with a visual way to retrieve the same fingerprint and do a match.
- the quick response code (QR Code) is set to the quick response code suing.
- This QR Code has a link that can have embedded session identifiers (Session IDs), location identifiers (Location IDs), and other parameters that are associated with a particular controller associated with the device connect platform application screen being displayed at that location.
- the DOM is appended from a URL to the current DOM. For example, once step 530 is completed, the output to the DOM of the device connect platform application is updated at step 535.
- a response is generated using the DOM of the URL. For example, once a response is requested such DOM is sent as a reply to an HTTP GET request at step 540.
- a smart television can be provisioned via a web-page loaded, with the mevia.js library and/or gestures.js, that points to the device connect platform’s web application interface, or can be part of a native application for a smart TV (e.g., Android television, Google TV, LG’s Operating System (LG WebOS), Apple television, Samsung’s Tinzen platform) or simply by loading the webpage in the television’s web browser.
- a smart TV e.g., Android television, Google TV, LG’s Operating System (LG WebOS), Apple television, Samsung’s Tinzen platform
- FIG. 6 demonstrates how initController and a new controller is loaded into a mobile device or any client computer that can load HTML web pages.
- an HTTP server is initialized with specified security credentials (e.g. key, certificate, and certificate authority).
- security credentials e.g. key, certificate, and certificate authority
- the controller requires the initialization of the server including certificates, private keys, and certificate authority bundled are loaded.
- the application is loaded (e.g. with the provided AppID, UUID, and authentication details, e.g. authentication context).
- the device connect platform context is loaded as part of device connect platform application and the LoadApp API that includes a UUID that can be generated as part of the initialization process, AppID that maps applications to resources, and any authentication obj ect that needs to be validated or has been validated by a controller accessing a Mevia application.
- the controller s DOM or Document Object Model is retrieved from the device connect platform application.
- the controller s dom object is initialized with HTML, CSS, images, and other JavaScript including loading the gestures) s, gestures. css, and other files required to load the controller.
- the libraries that handle events are part of the gestures] s file. All of this process is part of step 640, the meviaverse object generates a response in HTML, JavaScript, CSS, and other resources based on the controller’s DOM.
- the controller loads gestures] s, gestures. css, and other related controllers, for example a 12-digit keypad Controller, a Joystick, or a Camera.
- HTTP GET /init/controller?keypad 12- digits.
- the device connect platform can create logins, screens, and interfaces for payments, door control, videoconferencing, or bundles of applications that are displayed on smart televisions or other displays.
- steps 600 to 650 can be delivered to a mobile phone or tablet upon scanning a QR code associated with a particular smart television or display, as a response of the HTTP or HTTPS request to retrieve the appropriate controller e.g. https://app.mevia.tv/keypad.
- This page renders via the response command, all libraries, icons, images, and structure for the particular controller.
- other controllers can also be loaded, for example, a camera controller can be generated by embedding into the QR Code https://app.mevia.tv/camera/, and the camera send WebRTC video to a server where the video will be recognized using Computer Vision tools or deep learning (e.g. LSTM Networks) to load another controlled based on the camera video input.
- the authentication check is successful, then the credentials are validated. For example, the controller is displayed provided that authentication is known or a user has paid for accessing a controller, e g. video game arcade
- events from the DOM are used to update the DOM on the controller to reflect user interactions. For example, once authentication has been completed and a user simply operates and interacts with the controller and receives DOM events, and updates the DOM accordingly. To help further illustrate, switching a palette from red to magenta, will require a DOM operation to change color from “red” to “magenta” in the CSS style dynamically.
- the device connect platform is in a wait state until the controller initialization process begins. For example, the gestures) s library expects as a command, at least “InitController” that enables a new controller depending on the experience.
- a user may “Tap” or “Double Tap” on an application icon (e.g. a menu or slider, and launch a game) by creating an event and sending a message.
- command “Launch,” message.
- appid AppID or message.
- uuid UUID that is related to the particular icon selected on the screen.
- a message. command “Launch” or “Start” may do two things, for example at step 502 in FIG. 5 is waiting for commands from the application, and load into the instructions (e.g.
- FIGS. 9(a) and 9(b) shows another sample of a device connect platform application, a drawing program.
- a user can swipe right or left and find the NFT Lab application 905 on the screen.
- the DOM objects are updated at the smart television display and an “initController” command is delivered to the mobile terminal where a “palette” controller 915 is then loaded into the mobile device or tablet.
- a palette controller 915 has executed (e.g., window. onload() method)
- touch events are converted to messages, such as message.evt is touchstart at certain (x, y, z) coordinates, touchmove, message.
- Each smart television, display, or sensor is associated with a QR code that is used to load the controller.
- a database with a list of QR Codes 1001 are stored in a database and application identifiers 1005 and application names, and UUIDs or sequence of UUIDs 1010 are mapped to each application name in use.
- a loaded application may not require certain types of authentication 1015, such authentication may include using biometrics through the mobile video controller using WebRTC or using API’s navigator.mediaDevices.getUserMedia which can be used for biometric authentication.
- the exemplary pseudo-code indicates that a Tap, DoubleTap, and LongTap can be detected by tracing the events and position of the finger on screen.
- the thresholds can change depending on the application and in some cases game developers will know that those events can be detected using digital signal processing filter or with training using machine learning models as presented in FIG 11.
- controllers that can be used with the device connect platform and include a camera or capture device 1120. For example, once a picture has been taken a base64 image/png or image/jpg 1122 is then submitted as part of the messaging system to the device connect platform. Some other messages may include bar code information. If that is available locally on a device or has been made available as part of the controller interface by using a BarCode SDK from Dynamsoft or could be performed directly by the web application running meva.js.
- camera 1124 and microphone 1126 can be used to capture live camera feeds, camera stills, and audio generated from the mobile device or tablet. These controllers can emit as messages, with sequence of images captures via WSS or WebSockets that can include audio buffers or image stills from the camera.
- the camera and the audio/mi crophone can be delivered via WebRTC 1138 that can either be natively tunneled via an IPinIP, IPSec or any other tunnels created by the device connect platform or use a standard STUN/TURN server (e.g. stun.eglacorp.com).
- This information may be collected by the controller via the “initController” command or created real-time depending on how the device connect platform application is being controlled.
- the message. evt will describe “StreamAudio” event and a remote WebRTC socket is opened to interact with an audio tag at the receiver, for those voice-only applications (e g. walkie talkie, push to talk) for example.
- a “videostream, audiostream” can be composed for example using WebM encoder for video and Opus encoder for audio, using Web sockets or WebRTC PeerConnection JavaScript API 1 128.
- Another controller that can be used with an application in the device connect platform that is a “3D Gesture” generator that emits the “accel” event 1140 and accel x, accel_y, accel_z elements.
- a timestamp can be added to the accel_x, accel_y, accel_z payload, and the sampling rate for these events is set by the InitController command, but it will depend on the device being used if time intervals are set to zero, and time delays are required to compute gestures.
- This function can be implemented in HTML5 browsers by issuing the windows.
- the acceleration information is then captured in the “accel” array that contains delta time or time in milliseconds between samples, accel.x, accel. y, and accel. z are accelerator values of x, y, z coordinates that is then forwarded to a neural network or any machine learning interfaces to be compared with learning data as shown in FIG. 11.
- gestures like UP, DOWN, SWIPE RIGHT, SWIPE LEFT, TAP, EXIT, and other can then be learned and mapped to a particular user’s profile or a generic user profile with trained information stored in the device connect platform.
- evt commands are sent over to device connect platform to the content routing module (depicted in FIG. 21) that determines what the appropriate route for the packets is and events generated from one controller or several controllers required for a particular application.
- Other controllers could be a USB card reader 1150 emulator that can be connected to a mobile device 1154 (e.g. stripe reader).
- custom messages can be created and sent via message.
- NFC Near Field Communications
- evt value with an NFC card payload which could be translated as a keyboard set of commands or classified as custom event with a particular JSON payload that can be made available as part of the web application interface.
- the device connect platform is depicted in FIG. 18, as a series of controllers 1805, a system where a controller server with HTML 1810, a web HTTP server 1802, gestures.] s, and AI/ML to handle the controller learning and bundles.
- the Messaging queues 1830 contain all message.evt, message.x, y, z coordinates, and all other messages used for gesture control devices, and other bundles or series of controllers.
- 1812 and 1808 represent the web app ingest, that can also include Al and machine learning as part of the MEVIA application or Mevia server block 1816 as well as receive commands that can be translated from the original messages originated from the controller to JavaScript commands 1825 are dependent on the HTML used by application 1812.
- FIG. 19 shows the system managing two or more device connect platform applications.
- FIG. 19 includes a controller server 1900 for a game controller and its associated Meviapp server 1902. This URL is retrieved by the screens 1904 and contains the Mevia application and is then controlled from controller server 1900.
- message.evt or raw events are sent to the controller, while the controller can receive an initController command 1910.
- the heart of the system is depicted at routing component 1940, where all the routing QR codes, Application Identifiers, UUIDs, databases, and routing parameters are configured.
- routing component 1940 events are converted to commands or WebRTC/W eb socket streams that are then retrieved or pushed via HMTL and JavaScript, CSS, and other media files 1906 and message.
- navigator.mediaDevices.getUserMedia(. ) may be required for authorized access in FIG. 12(a) and FIG. 12(b).
- the controller provides gesture.js with access to a WebSocket 1222 or WebRTC streams 1224.
- FIG. 12(a) is the creation of an emulated USB interface to a web application that loads the video and audio via an emulated web client interface.
- the Mevia App RTC Server 1218 connects via the emulated web client interface.
- the “Emulated Web Client to MEVIA APP” module 1216 can then perceive commands from a controller 1225 (e.g. message.evt) as USB HID interfaces, CAMO, CAM1, CAM2 1212 or a USB WebCam Emulator 1208 that is presented to the emulated web client as a CAM EMU driver.
- the USB WebCam Emulator 1208 encapsulates a USB WebCam descriptor (e.g. bDeviceClass, bDeviceSubClass, and specialty interface association as bFuncitonClass 14 for Video).
- the data or payload of the connection created by the USB Driver is then WebSocket or WebRTC traffic generated from the controller 1225.
- mevia-webrtc.js interface 1230 may use mevia-webrtc.js interface 1230 as well as mevia.js 1228, as those web applications have implemented WebRTC natively. In those cases Mevia- WebRTC will write directly to an audio tag or video HTML tag that is part of the application.
- a Mevia App does not need to be modified at all and simply an emulated web client connects to a Mevia App server that contains the application, which could be local to the device connect platform or could also be remote and hosted at a different domain. The emulated web client web application then becomes the client and Mevia app server is what is displayed on the television.
- the Mevia App RTC server 1218 may not properly display contents to a particular user, for example when the Mevia App is not designed for smaller screens, or any other potential drawback that may include smart television’s Web kit browser is unable to process or display certain aspects of the application.
- a simple “User Agent” inspection from the smart television’s HTTP request may be needed and the process in FIG. 12(c) will be able to be used in all televisions regardless of compatibility issues with the their web rendering engine.
- FIG. 12(c) depicts the use of a different Mevia App server display that could include a simple html such that:
- the WebRTC mapper 1288 defines the location where the Mevia App Server Display 1290.
- packets can be first passed to FFMPEG for transcoding to H.264 video and AAC audio.
- USB Virtual Router 1200 As the network traffic with video and audio from the USB WebCam emulator is encapsulated in USBIP traffic with payloads with video and audio must be properly routed to a particular session or a Mevia App RTC server 1218.
- a USB Virtual Router 1200 is used and a routing table 1202 will include a destination IP address and a Source IP Address.
- the USB Daemon loads the information from the USB virtual router 1200 and issues an “USBIP attach” command to the IP Address where the USBID containing the web camera emulation is located.
- the destination IP Address can be executed as a remote docket container “run command” or if a particular server already exists an ”SSH” command can be executed from USB Virtual Router 1200 to the USBIP daemon server 1210.
- USB virtual router 1200 “ssh -u device connect platform Dest_IPAddress:/usr/bin/usbip -attach Source_IPAddress” [00130]
- the USBIP daemon server 1210 must reside within the same server as the Emulated Web Client to MEVIA APP module 1216 emulated web client to MEVIAAPP, as a browser instance using a web browser will then connect to MEVIA App Server
- the MEVIA application server indeed expects that the client may render a tag HTML video as local and remote for other clients connecting to the MEVIA App Server.
- the smart display is expected to visualize the results of the Emulated Web Client to MEVIA APP module 1216 or visualize copies of what is being observed by the Mevia App RTC Server 1218 into client 1233 or render a video and audio stream from Mevia App RTC Server 1218 into client 1233.
- the device connect platform allows for use cases: a) in order to visualized MEVIA APP 1216 results from connecting to MeviaApp Server, the mevia-webrtc.js and mevia.js 1228 is instructed to copy the DOM from the Emulated Client to MEVIA APP 1216 into the DOM of client 1233, including copies of all video streams at MEVIA APP 1216 to canvas objects in client 1233, or creating a WebRTC channel with client 1233 with screenshots from MEVIA APP 1216; or b) proceed as FIG.
- MEVIA App Server- Display 1219 instead of the MEVIA app server 1218.
- the Mevia App sever simply displays what is shown at display server 1290 or a stream to a canvas using MPEG2video and mp2 audio or HTTP Live Streaming (HLS). Observe that mevia.js is then loaded as part the emulated server and not as part of the MEVIA App Server.
- mevia-rep.js 1228 receives DOM object values from MEVIA APP 1216 or uses WebRTC or WebSockets to copy DOM from MEVIA APP 1216 into what is being displayed on client 1233 or simply streams a real-time version of MEVIA APP 1216 vi jsMPEG that is processed by component 1280 mpeg2video and served as rendering.
- display server 1290 rendering as opposed to DOM object copies is that any smart television display that support CANVAS will be able to render and handle the results from MEVIA APP 1216.
- WebSocket server 1216 can be implemented as a Windows client, Linux, or headless, depending on the video conferencing software.
- USB-based interfaces where native drivers and assets are expected to be loaded by the operating system or kernel modules.
- WebRTC 1254 depicts authorization and access via gesture.js of navigator.mediaDevices.getUserMedia and the instanton of WebSocket 1222 or WebRTC 1224 objects as part of a controller server HTML page.
- USB-based displays for example, USB-based displays, chargers, keyboards, AR headsets, etc.
- an ICE Server or STUN/TURN server 1250 is setup to handle RTC communications Similarly, the device connect platform can create an IP Tunnel to achieve point- to-point links between different endpoints, for example an SSH tunnel between a controller server to the Mevia application server or the Emulated WebRTC proxy 1246. Observe that a WebRTC- to-WebRTC Mapper to WSS entity 1240 is shown. [00138] This server can forward WebRTC traffic directly to the emulated WebRTC proxy or can be captured by the WSS to create a WebSocket interface where the video and audio traffic is exchanged.
- WebRTC -to- WebRTC Mapper to WSS entity is the peer for the WebRTC connection and as a peer then it serves the content as part of WebSocket server at port 8000.
- WebRTC-to-WebRTC Mapper to WSS entity 1240 can retrieve the SDP session for each of the peers and can copy back and forth the WebRTC traffic to other peers, or simply buffer the WebRTC traffic to be serviced as a WebSocket traffic 1244, for example wss://server:8000/sdpl and wss://server:8000/sdp0.
- the WSS stream 1252 could be a WebSocket stream and WebRTC 1254 could be a WebRTC stream 1254 with a peer at client 1233 were the mevia-rtc.js is loaded.
- the STUN server 1250 could be placed as part of the WebRTC traffic from WebRTC-to- WebRTC Mapper to WSS entity 1240 to client 1233.
- Another embodiment could be Emulated WebRTC proxy 1246 that could load mevia-webrtc.js 1248 and the WebRTC peer could be part of Emulated WebRTC proxy 1246.
- Emulated WebRTC proxy 1246 loads HTML from the video conferencing application at Mevia App RTC server 1218 and WebRTC-to-WebRTC Mapper to WSS entity 1240, proper Cross Origin Resource Sharing (CORS) headers must be implemented to be able to retrieve WebRTC traffic from Mevia App RTC server 1218 and WebRTC-to-WebRTC Mapper to WSS entity 1240.
- CORS Cross Origin Resource Sharing
- the Mevia application server user interface can be rendered a) natively with WebRTC and video tags 1246 or b) rendered using FIG. 12(c) implementation with a streaming canvas and using jsMPEG.js libraries for instance.
- the Mevia application RTC server 1218 receives WebRTC traffic from the Emulated WebRTC proxy that functions a peer to Mevia application RTC server 1218, in some embodiments and the following peers can be established.
- PeerO at the mobile phone or controller 1225
- Peerl as the WebRTC Mapper device Peer
- Peer 2 at the emulated Web RTC proxy 1246
- Peer3 at the actual Mevia App RTC server and all other peers attached to that WebRTC server (e.g. one to many conferencing).
- the point of view for the smart television is position right at the “emulated WebRTC proxy server 1246 to Mevia App server where the mevia-rtc.js and mevia.js are loaded, not the Mevia App RTC Server at 1218.
- an HTTP GET request was made to the Mevia App RTC Server and all canvas, video and/or audio HTML tags with different identifiers are loaded into Mevia App server.
- the local video tag or the reference to controller 1225 source is shown as a peer that is being processed by WSS entity 1240, STUN server 1250, and WSS stream 1252. All other peers and sources including remote video 1232 can be handled by STUN server 1250 to enable proper signaling under NATs or firewalls.
- an HTTP GET request made by the Emulated WebRTC proxy 1246 is what needs to be displayed by the smart television.
- This is the URL that will also receive all message.evt commands and all associated events from all the controllers that can be associated with a particular MEVIA Application.
- expert in the art will know that another session can be established to Mevia App RTC server directly and see all peers as an observer, for instance as a webinar attendee and depending on the smart television configuration and what type of role a user has been playing different URLs can be rendered for those using the application.
- As a Websocket stream can be also used as part of the delivery of WebRTC video and audio, or data content.
- FIG 12(c) can be used to handle rendering of either scenario by creating a sequence of screen captures and proceeding to mix the audio from the resulting web client as it is being perceived as mpeg2video and mp2 audio or could be encoded using the H.264 video codec and for audio mp3 or AAC codecs embedded in a transport stream (TS) for HLS or Low-latency HLS (HTTP live streaming) environments.
- TS transport stream
- HLS Low-latency HLS
- the device connect platform can also be populated with operating systems that can be controlled using the controller systems presented in FIG. 11 and a windows VM or server can be made part of the device connect platform.
- Windows applications that may include native OpenGL, legacy DOS applications, Microsoft Office Native, Computer Aided Design (CAD) programs, Adobe tools, and many other high-computing native applications that run as an executable on windows can be rendered and controlled via the device connect platform.
- a native application 1304 depicts a native application for Windows 10 or 11.
- a USBIP module 1307 can be used to handle all USB-related devices such as cameras and microphones are interface with the controller server 1320.
- USB Web Cam Emulator 1308 With reference to FIGS. 12(a)-12(c) and specially the USB Virtual Router 1200, the connectivity with USB Web Cam Emulator 1308 is possible. Camera and audio from a controller can be sent over to a virtual windows terminal 1304 and used as it was natively functioning.
- Web socket server 1300 is created at IP Address: 8001/office for instance and that Websocket or Websocket Secured (WSS) traffic 1338 can then be retrieved by Mevia App server 1322 and displayed via target canvas 1325.
- the controller server 1320 will process all gestures from the grid 1330 for mouse emulation 1333 turned on and a keyboard 1335 for typing commands.
- a WebRTC peer mapper server 1305 can also retrieve the WebSocket Server 1300 content.
- a server and client computer are only definitions used by HTTP and other protocols, but in some cases a server could be a single purpose computer and the client could be a cloud-based system. Hence, CPU, memory size, number of clients are not limitations for defining a sever and a client.
- Such streamer can also be implemented by MPEG DASH segmenter can also be used with MPD (Media Presentation Document) that include a set of segments and use audio/mp4, video/mp4, “AdaptationSet” entries that are part of the MPD’s XML manifest.
- MPD Media Presentation Document
- MPEG DASH streamer 1410 and 1420 are cross-correlated highly as they come from the same stream and are synchronized.
- a system can narrow down what is being downloaded, when, and by who. For example, !P_client0 obtains Stream4.ts while IP_client2 is processing Stream0-l 1 ts. all depends on the player in use.
- an application can integrate either android. core.uwb or NINearbyAccesoryConfiguration or NINearbyPeerConfiguration interfaces to detect TVs or displays in proximity, and further isolate the device to be controller, even providing visual feedback of the position of the TV that needs to be controlled.
- This proximity location information is sent to the MeviaVerse system for processing, either by itself or in combination with QRCode, video images capture forms the TV set. In that way, a proper discernment of what TVs are controlled by the MEVIA controller are available can be presented, even with a mapping as shown in FIG 14(c).
- Elements 1405 and 1415 are Smart TVs with an UWB Airtags associated with the stream or session being broadcasted 1410 and 1420.
- a mobile phone or AR headset at 1430 can display now TV1 and TV2 controllers, download AppID, UUID for each TVs by discerning each TV’s stream being broadcasted (see FIG 14(a)a and (b)) by also using UWB’s airtags and the “nearby” location information of each of the TVs.
- scanning a QrCode may not be necessary, as the UWB Addresses, and Images shown on each TV will suffice to determine which TV is used and controlled based on the relative distance and position calculated from the UWB Signal.
- UWB Airtag position information can be used by moving the device in the direction where the distance to that TV is closer, or the location where the TV is located and sending that information to the MeviaVerse system for processing and allowing commands to be send to the TV from the phone or the AR device.
- step 1510 if there is less than one source, either only one smart television is the answer or if there none, there is no identification achieved, as such a user will simply receive a timeout message or by observing no feedback a user will understand that a QR Code must be manually scanned from “All Sources” if it is greater than one potential match.
- the system can also use additional APIs, such as ip21ocation.com or other providers to narrow the number of searches and streams according to a potential IP address match aided by third party services.
- FIG. 15 can be combined with Ultra-Wide Band (UWB) tags to provide additional positioning information that the phone can send, as millimeter position tracking by using Apple AirTags or other UWB tokens for positioning and localization.
- UWB Ultra-Wide Band
- the highest 2D cross correlation in the number of frames identifies the location of the particular index, I, on Ri at step 1525.
- the location is then associated with a particular smart television that can be mapped using the content router and a message evt with “DisplayQR Command” is then issued with a generated QR code that can be overlaid over the contents being streamed at a particular time.
- step 1535 a normal procedure will start and in other situation authentication can be set to false at step 1535 and simply gain control of the television without using a QR code by receiving as a reply from the original message at step 1540 (e.g., which may include an iMessage, SMS, WhatsAPP message, and/or the like) where the user will proceed to load the URL and control the television by connecting to a particular controller associated with the smart television.
- the original message e.g., which may include an iMessage, SMS, WhatsAPP message, and/or the like
- FIG. 16(a) presents a hardware alternative that generates QR codes and generates the HDMI signal to display streams and also to connect to the internet using WIFI.
- an LCD display is used to display the QR code 1630 and inside the Dongle 1600
- an HDMI output 1603 is used to control an operating system 1625 (e.g., ChromiumOS), and loads mevia.js. mevia-3d.js, mevia-rtc.js and any other mevia-related resource 1620 that allows control via operating system 1625.
- an operating system 1625 e.g., ChromiumOS
- the MeviaApp 1605 and AppUI 1610 contain the firmware required to load operating system 1625 and verifying the provisioned “meviapp” (configuration pointing to a particular URL) is loaded and is used to configure WIFI.
- Bluetooth Low Energy protocol is used to “pass” the configuration from a mobile device to the dongle.
- FIG. 16(b) depicts the authentication and WIFI provisioning via BLE methods as shown at step 1650, e.g., EValue or Encrypted Value is a UUID with the Public Key and then generate QRCode with the concatenation of the a “device connect platform URL” (e.g. https://device connect platform.
- the dongle state machine will then replace the display with “Waiting BLE WIFI” at step 1665 to notify the user that BLE is being used to configure WIFI.
- the dongle WIFI Once the dongle WIFI is activated, then it can be configured with the BLE protocol and as soon as the dongle connects to the Internet and to the device connect platform check if the UUID is activated, if not, the dongle will be deactivated and the process will start all over again.
- the “Mevia Server” at 2016 generate a web-page with the animations, and interactions that are generated from the controller 2014.
- the controller interacts with the QR Code 2010 and see an image at 200 that is projected and multicast devices at 2025 as well as unicast devices at 2040, retrieve content from the caching server at 2022 that renders and broadcasts the resulting web pages with HTMO and JavaScript at 2018.
- the music and video at 2030 can be added or retrieved by the caching unit as presented in the ‘074 patent, as shown in FIG. 14, HLS streams at 1410 and 1420 are in m3u8 format [00168]
- Other controllers such as games, video interfaces and other can be attached and a novel broadcasting system, powered by the device connect platform.
- music channels 2030 could work as background music that is distributed and assets created in the caching unit
- users may play a game (e.g., PACMAN) for ten to fifteen minutes, and sound bites from the game can be mixed with songs stored at music channels 2030 as well as integrate user’ s comments and text that can be overlaid as part of CSS style “Absolute” and using translucent ⁇ divs> that appear at different positions of the game.
- PACMAN a game
- a “Mevia App server Display” could be composed of dialogs with multiple people in a video conferencing call or any HTML from other web applications, and any other web application that can interact with a user or multiple users. For example, a user may decide to draw an NFT and store the process of drawing all the paths from an initial xl, yl position vector to another x2, y2 position vector, and all the steps to draw a particular figure.
- the images and all streaming parts from the HTML or canvas plus HTML are stored as part of the caching system that generates screens from the HTML that is ready to be multicast or streamed to a cable operator.
- the device connect platform contents become that the background for the music being broadcasted that enhance or can decorate the ambience for a museum, coffee shop, or any other location.
- each application has an Application Identifier (AppID) and a user generates a UUID 2180 when interacts with a particular application, at the same time each controller is mapped to a QrUrl that is stored in the content routing table.
- the content router may require authentication 2165 and the previous application ID is also stored, or the sequence or previous application identifiers is stored to Prev AppID field 2168 to be able to return to a previous application in the device connect platform session.
- a current controller value 2170 is kept for the type of controller currently in use.
- the first message that a controller receives per initialization is “initController” 2124, the initController command sets the resources, and parameters that are required for a particular user.
- the controller may generate gestures 2134 or a keypad, or upon pressing certain events might generate Command Macro 2140 or gestures (as a Hitachi Magic Wand device).
- a gesture from a “wand device” is a 3D accelerator read that is translated to UP, DOWN, SWIPE LEFT, SWIPE RIGHT commands.
- a content router will be able to manage thousands of commands and events (See FIG. 21), from touch 2120 to audio and video 2130.
- the content queue 2118 receives packets that carry out information about the Application Identifier of a target, the UUID generated by the device connect platform for a particular user, and the message. evt with message payload 2114.
- the message payload is not analyzed by the Content Queue which can be implemented using a HashMap or a NoSQL database, a Linked List.
- the Load Balancer 2155 receives values such as Bandwidth, Load per App, and QoS 2150 and can be adjusted to determine when to process and how to process the Content Queue.
- the Content Queue selects a packet to be processed, it is passed to an Application Mapper 2142, the application mapper is in charge of determining whether a particular command has to be converted to a JavaScript macro converter 2144, or if is an “Exit” command that require controller reinitialization 2146.
- the system can include that a “Long Tap” as the universal “ESC” command, that means exit the device connect platform Application.
- the Application Mapper 2142 can be translated to draw a particular screen into a canvas 2140 or play a particular audio stream as a notification buzzer at AppID2 with UUID2 2105, or the application mapper may send an evt.mousestart x, y, z 2110 to mevia app UUID 1 with AppIDl at 2100.
- the application mapper will send a jQuery macro to UUID4 and AppIDl with the JavaScript “$(‘#slider’).next();” that is then “evaluated” or using the eval command at the UUID3 with APPID2 Web Socket, or simply send a command with message.
- a content queue system and controllers is accessible via QrUrll to QrUrl4 (QR Code’s Universal Resource Locator) in this example and each controller can include any of the controllers as shown in FIG. 10, at 1001, QrUrll is associated with a Game, Qrurl2 with NFT Lab, QrUrl3 is Videoconferencing and QrUrl4 is a Door controller interface or application.
- the content router is processing all messages using SocketIO and can be implemented in NodeJS or other languages.
- a Content Router creates as group to join all messages for a particular App Identifier with a UUID.
- pseudocode may define an event listener for a connection event on a WebSocket server.
- the callback function is executed with the connected socket as an argument.
- a pathlD is obtained by calling getContentRouter with two arguments: UUID and AppID.
- the socket then parses the incoming data as ISON. It logs a message to the console indicating that command ‘X,Y’ has been received, including the extracted data.evt and data.evt.x, data,evt.y properties from the parsed data.
- the server broadcasts a message with the event name “ComandXY” and the parsed data to all sockets in the room are identified by pathlD.
- the socket. broadcast.to(pathld) from the SocketIO library in NodeJS can be used to emit certain command to a particular application ID as the Content Router has generated a pathld.
- the Content Queue on the other hand can be implemented as a Hashmap with a Round Robin or Weighed Round Robin access technique or using “Apache ActiveMQ” or other techniques to handle great amounts of messages from multiple sources. As the same time Kubernettes and cloudbased approaches can be used to address scalability issues both vertical as horizontal.
- FIGS. 22(a)-22(c) we present a data capturing system that includes a nodejs application that services all commands and sends commands to a version of MEVIA but instead of being 2-dimensional now it can be 3-dimensional in nature.
- X train [[0.... STEPS], [0. .. STEPS.. .] ] ofN Samples.
- the objective is that the value of “STEPS” are 200- 300 steps and that can be normalized to handle the same amount of samples and Y_Train are of values chosen “Up”, “Down,” “Left,” and other gestures that are being trained with N samples as shown in FIG 22(b).
- the machine can be saved to be used locally at the phone 2218 as FIG 22(c) and a second neural network could be stored remote NN 2220, in one training delays are zero and remote NN 2220 the values includes all delays from network traffic.
- the objective is result 2225 that will generate the proper messages that are now sent as message. evt commands to the device connect platform.
- FIG. 23 shows how then all gestures can handle can send commands to the device connect platform application in control, for example at (a) the hand will move from 2300 to 2312, by moving or waving a hand gesture over the air from left to right, as swipe,
- the applications shown by the device connect platform application would be “Mevia App 1,” “Mevia App 2,” and “Mevia App 3.”
- the commands issued from the mobile phone’s gestures 2300 are sent or issued to the web application loaded into the device connect platform.
- the device connect platform application can be controlled using gestures as shown in movements 2300. In this example, a swipe right is issued and the menu switches from Mevia App 3 to Game Application 2312.
- FIG. 24 show how the MEVIA application is then changed by adding a 3dmevia.js to handle Z-axis positioning changes, for example a WebGL or ARKit application can translate depth movements in addition to X-axis and Y-axis movements.
- the messages. evt can also contain the structure with: message.x, message.y, and message.z position and handle MeviaAccelerometer instances 2430.
- the accelerator and gyroscope instance is common on JavaScript as part of the object window. ondevicemotion, window.ondeviceorientation, or window.onmozorientation as supported by iPhone, Firefox, and Chrome browsers.
- the 3Dmevia.js 2405 library contains the 3D positioning and accelerometer values that can be used also in combination with a Camera LIDAR sensor for positioning in AR/VR headsets (Augmented Reality/Virtual Reality), mevia.js 2422 and other resources stylesheets loaded by mevia. css 2424.
- This type of application is then handled to interact with a 3D Canvas 2426, 2410 is also recipient of SocketIO messages that contain all controller commands, additionally HREF (HTML Reference) and other web references in the web application are converted to work on the device connect platform 2428.
- HREF HTTP Reference
- WebGL and 3D Renderings are useful for AR/VR scenarios, where the mobile device or terminal is an AR/VR Headset (e.g. Vision OS, MetaQuest, Vivero, others), or mobile phone with Augmented Reality (AR) using a phone’s camera such as iOS or Android.
- FIG. 25 presents the steps necessary to training the gestures in 2D or 3D systems, at start at all initializations of authentication using gesture at 2500, by loading the neural network (e.g., LSTM) to train with more information.
- the Training Data at 2510 interacts with 2505 with is the training of those gestures with the accelerometer’s information from the device, called “Accel Data,” once training is completed after several iterations of training, the neural network can be tested with a subset of training data, or “Test Data” as shown at 2515.
- the resulting Neural Network can be used as part of detecting “swipe right”, “tap,” or even train a “game controller” using gesture information as shown in FIG. 23 For instance, upon capturing a sequence of samples for swipe right or swipe left gesture as shown in FIG. 22 at 2214.
- the element at 2510 uses the device accelerometer data (Accel Data) that is loaded with multiple with “Swipe right” training values or the training information for “swipe right or left.”
- the sequence of values that may include time, x, y, z, coordinates, or even accel_x, accel_y and accel_z values are used for training.
- FIG. 26 is a flow diagram generally illustrating method 2600 for enabling a user to control and interact with content on a computing device using a browser interface on another computing device, according to the principles of the present disclosure.
- the method 2600 generates a first message for a first browser executed on a first computing device, where the first message includes instructions that in response to being executed by the first browser causes a representation of an interface of a physical user input device to be displayed by the first browser.
- the first browser e.g. Web Page on Smart TV.
- the method 2600 generates a second message for a second browser executed on a second computing device, where the second message includes instructions that when executed by the second browser enables user interaction with content provided by the second browser in responsive to input from the representation of the interface of the physical user input device displayed by the first browser.
- the physical user input device is configured to interact with the content provided by the second browser. (E.g. Web Page with controller displayed at mobile device)
- the method 2600 provides the second message to the second browser and create an interaction from first browser to the second browser (e g. Command from controller to first browser’s web page and responses).
- IP Internet Protocol
- AAC Advanced Audio Encoding
- CDN Content Delivery Network
- UUID Unique Universal Identifier
- CABSAT Cable and Satellite systems
- SocketIO JavaScript library used to manage WebSockets.
- OGG Theora codec for audio
- OGV Theora codec for video
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
Description
Claims
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US202463456018P | 2024-03-29 | 2024-03-29 | |
| US63/456,018 | 2024-03-29 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025207110A1 true WO2025207110A1 (en) | 2025-10-02 |
Family
ID=97218039
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/US2024/022310 Pending WO2025207110A1 (en) | 2024-03-29 | 2024-03-29 | Method and system for a web interaction with objects and remote display technologies |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2025207110A1 (en) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20120169593A1 (en) * | 2011-01-05 | 2012-07-05 | Research In Motion Limited | Definition and handling of user input events in a web browser |
| US20140011584A1 (en) * | 2012-06-22 | 2014-01-09 | Research & Business Foundation Sungkyun University | Mobile terminal-based virtual game controller and remote control system using the same |
| US20150382066A1 (en) * | 2014-06-30 | 2015-12-31 | Microsoft Corporation | Contextual remote control interface |
| US20160034058A1 (en) * | 2014-07-31 | 2016-02-04 | Microsoft Corporation | Mobile Device Input Controller For Secondary Display |
| KR102344580B1 (en) * | 2021-05-18 | 2021-12-29 | 주식회사 아이엠파인 | Providing method, apparatus and computer-readable medium of providing a content control interface through interworking with an open type display device and a user terminal |
-
2024
- 2024-03-29 WO PCT/US2024/022310 patent/WO2025207110A1/en active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20120169593A1 (en) * | 2011-01-05 | 2012-07-05 | Research In Motion Limited | Definition and handling of user input events in a web browser |
| US20140011584A1 (en) * | 2012-06-22 | 2014-01-09 | Research & Business Foundation Sungkyun University | Mobile terminal-based virtual game controller and remote control system using the same |
| US20150382066A1 (en) * | 2014-06-30 | 2015-12-31 | Microsoft Corporation | Contextual remote control interface |
| US20160034058A1 (en) * | 2014-07-31 | 2016-02-04 | Microsoft Corporation | Mobile Device Input Controller For Secondary Display |
| KR102344580B1 (en) * | 2021-05-18 | 2021-12-29 | 주식회사 아이엠파인 | Providing method, apparatus and computer-readable medium of providing a content control interface through interworking with an open type display device and a user terminal |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11050683B2 (en) | System for providing dialog content | |
| US10747418B2 (en) | Frictionless interface for virtual collaboration, communication and cloud computing | |
| US10743042B2 (en) | Techniques for integration of media content from mobile device to broadcast | |
| CN103024503B (en) | System and method for achieving remote control through mobile communication equipment terminal | |
| US8732749B2 (en) | Virtual desktop services | |
| CN108965103B (en) | Electronic device, server and method for providing dialogue content | |
| EP2901328B1 (en) | Method for a remote presentation between at least two terminals connected via a network | |
| KR20150032674A (en) | Communication system | |
| CN106028106A (en) | Television control method and device | |
| US11374992B2 (en) | Seamless social multimedia | |
| CN112911320B (en) | Live broadcast method, live broadcast device, computer equipment and storage medium | |
| EP2775436A1 (en) | Method and system for seamless navigation of content across different devices | |
| JP2022515702A (en) | Providing virtual desktops within a computing environment | |
| US20210392191A1 (en) | User advanced media presentations on mobile devices using multiple different social media apps | |
| KR102198799B1 (en) | Conferencing apparatus and method for sharing content thereof | |
| US12346399B2 (en) | Method and system for a web interaction with objects and remote display technologies | |
| US8973082B2 (en) | Interactive program system | |
| WO2022250642A1 (en) | Method and system for co-browsing a web page | |
| WO2025207110A1 (en) | Method and system for a web interaction with objects and remote display technologies | |
| Joveski et al. | Semantic multimedia remote display for mobile thin clients | |
| CN112866622B (en) | Information processing method, device, server, storage medium and system | |
| Aiersilan | Design and implementation of online live streaming system using a 3d engine | |
| US12079469B2 (en) | Accessibility feature in remote device infrastructure | |
| CN115277810B (en) | Signal source parallel interaction system | |
| CN116055756B (en) | Data processing method, device and server for live broadcast room |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| WWE | Wipo information: entry into national phase |
Ref document number: 202517101802 Country of ref document: IN |
|
| WWE | Wipo information: entry into national phase |
Ref document number: KR1020257035899 Country of ref document: KR |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2024933081 Country of ref document: EP |
|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 24933081 Country of ref document: EP Kind code of ref document: A1 |
|
| ENP | Entry into the national phase |
Ref document number: 2024933081 Country of ref document: EP Effective date: 20251029 |
|
| ENP | Entry into the national phase |
Ref document number: 2024933081 Country of ref document: EP Effective date: 20251029 |
|
| ENP | Entry into the national phase |
Ref document number: 2024933081 Country of ref document: EP Effective date: 20251029 |
|
| ENP | Entry into the national phase |
Ref document number: 2024933081 Country of ref document: EP Effective date: 20251029 |
|
| ENP | Entry into the national phase |
Ref document number: 2024933081 Country of ref document: EP Effective date: 20251029 |
|
| WWP | Wipo information: published in national office |
Ref document number: 202517101802 Country of ref document: IN |