IP Library Granted Patent US 11,425,220
Granted Patent B2
US 11,425,220 · App. 17/066,041 · Granted Aug 23, 2022

Methods, systems, and computer program products for implementing cross-platform mixed-reality applications with a scripting framework

Inventors: Nikolay Ivanov Grozdanov (Boca Raton, FL); Konrad Piascik (Ontario, CA); Leonid Zolotarev (Weston, FL); Timothy Dean Caswell (Leander, TX)
Assignee: Magic Leap, Inc.
H04L67/38G06F8/38G06F8/76G06F9/45529G06F40/166G06F40/211G06T19/006H04L65/605H04L67/40
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,425,220
App. No.
17/066,041
Granted
Aug 23, 2022
Kind
B2
Abstract

Disclosed are methods and systems for a scripting framework and implementations therefor for mixed reality software applications of heterogeneous systems. These methods or systems create a mixed-reality software application that executes across heterogeneous platforms on a server-side instance of a scripting framework and manage a change in the mixed-reality software application using the server-side instance of the scripting framework. Moreover, the change in the mixed-reality software application using a client-side instance of the scripting framework; and the mixed-reality software application may be interactively executed on a mixed-reality device.

Claims (95)

1. A computer implemented method, comprising:

creating a mixed-reality (MR) software application that executes across heterogeneous platforms on a server-side instance of a scripting framework;

the scripting framework rendering an initial user interface to generate an initial rendering for the mixed-reality software application;

detecting a change in a user interface (UI) in the mixed-reality software application caused by a user's interaction with the mixed-reality software application;

the scripting framework rendering an updated user interface to generate an updated rendering for the mixed-reality software application;

managing the change in the mixed-reality software application using the serer-side instance of the scripting framework by: providing application code of the mixed-reality software application as an input to a reconciler, detecting the change in a state of the mixed-realty software application; and determining, at the reconciler, a list of one or more elements to be updated in the mixed-reality software application at least by comparing the initial rendering with the updated rendering;

managing the change in the mixed-reality software application using client-side instance of the scripting framework; and

interactively executing the mixed-reality software application on a mixed-reality device.

2. The computer implemented method of claim 1 , creating the mixed-reality (MR) software application comprising:

exposing one or more native application programming interfaces (APIs) of a mixed-reality operating system runtime to the scripting framework using at least a declarative framework in the scripting framework;

generating a package for the mixed-reality software application with a declarative markup language; and

specifying one or more native components or elements or one or more spatialized implementations for the one or more native components or elements.

3. The computer implemented method of claim 2 , creating the mixed-reality (MR) software application further comprising:

providing a spatial representation of a tag component for the mixed-reality software application;

including a multimedia content or a 3D (three-dimensional) model in the mixed-reality software application; and

generating the mixed-reality software application without compiling native code of the mixed-reality software application.

4. The computer implemented method of claim 1 , managing the change in the mixed-reality software application using the server-side instance of the scripting framework further comprising:

managing updates to the mixed-reality software application using at least the scripting framework.

5. The computer implemented method of claim 1 , managing the change in the mixed-reality software application using the client-side instance of the scripting framework comprising:

providing the list of one or more elements to be updated for the mixed-reality software application to one or more script components that execute one or more actions to the list of one or more elements;

identifying or determining one or more target platforms on which the mixed-reality software application is executing, wherein the one or more target platforms comprise one or more mixed-reality target platforms executing one or more mixed-reality operating systems and one or more computing devices executing one or more respective non-mixed reality operating systems; and

executing, at a first framework in the scripting framework, one or more actions to generate an update to the list of one or more elements for the one or more target platforms, wherein the first framework comprises at least one of a declarative framework, a script framework, or a script native framework in the scripting framework.

6. The computer implemented method of claim 5 , managing the change in the mixed-reality software application using the client-side instance of the scripting framework further comprising at least one of:

invoking the declarative framework to provide the update to a mixed-reality target platform of the one or more target platforms; or

invoking the script framework or the script native framework to provide the update to a non-mixed-reality target platform of the one or more target platforms.

7. The computer implemented method of claim 1 , interactively executing the mixed-reality software application on the mixed-reality device comprising:

identifying a client architecture and one or more components of the mixed-reality device;

identifying an entry point script file for the mixed-reality software application, wherein the script file is specified as an entry point in a manifest; and

parsing the entry point script file by using a kernel of a mixed-reality operating system executing on the mixed-reality device.

8. The computer implemented method of claim 7 , interactively executing the mixed-reality software application on the mixed-reality device further comprising:

launching a virtual machine at least by invoking, at the scripting framework, one or more applications in the mixed-reality operating system on the client-side instance of the scripting framework;

performing a verification on one or more files that are loaded in a script engine at least by parsing a file generated by executing a cryptographic function on a list of files that is included in a package transmitted to the mixed-reality device; and

executing the mixed-reality software application on the mixed-reality device in response to a user interaction with the mixed-reality software application.

9. A system, comprising:

a processor; and

a non-transitory computer accessible storage medium storing thereupon a sequence of instructions which, when executed by at least the processor, causes the processor to perform a set of acts, the set of acts comprising:

creating a mixed-reality (MR) software application that executes across heterogeneous platforms on a server-side instance of a scripting framework;

the scripting framework rendering an initial user interface to generate an initial rendering for the mixed-reality software application;

detecting a change in a user interface (UI) in the mixed-reality software application caused by a user's interaction with the mixed-reality software application;

the scripting framework rendering an updated user interface to generate an updated rendering for the mixed-reality software application;

managing the change in the mixed-reality software application using the server-side instance of the scripting framework by: providing application code of the mixed-reality software application as an input to a reconciler; detecting the change in a state of the mixed-reality software application; and determining, at the reconciler, a list of one or more elements to be updated in the mixed-reality software application at least by comparing the initial rendering with the updated rendering;

managing the change in the mixed-reality software application using a client-side instance of the scripting framework; and

interactively executing the mixed-reality software application on a mixed-reality device.

10. The system for claim 9 , the sequence of instructions further comprising instructions which, when executed by the processor, cause the processor to perform the set of acts, the set of acts further comprising:

exposing one or more native application programming interfaces (APIs) of a mixed-reality operating system runtime to the scripting framework using at least a declarative framework in the scripting framework;

generating a package for the mixed-reality software application with a declarative markup language;

specifying one or more native components or elements or one or more spatialized implementations for the one or more native components or elements;

providing a spatial representation of a tag component for the mixed-reality software application;

including a multimedia content or a 3D (three-dimensional) model in the mixed-reality software application; and

generating the mixed-reality software application without compiling native code of the mixed-reality software application.

11. The system for claim 9 , the sequence of instructions further comprising instructions which, when executed by the processor, cause the processor to perform the set of acts, the set of acts further comprising:

managing updates to the mixed-reality software application using at least the scripting framework.

12. The system for claim 9 , the sequence of instructions further comprising instructions which, when executed by the processor, cause the processor to perform the set of acts, the set of acts further comprising at least one of:

providing the list of one or more elements to be updated for the mixed-reality software application to one or more script components that execute one or more actions to the list of one or more elements;

identifying or determining one or more target platforms on which the mixed-reality software application is executing, wherein the one or more target platforms comprise one or more mixed-reality target platforms executing one or more mixed-reality operating systems and one or more computing devices executing one or more respective non-mixed reality operating systems;

executing, at a first framework in the scripting framework, one or more actions to generate an update to the list of one or more elements for the one or more target platforms, wherein the first framework comprises at least one of a declarative framework, a script framework, or a script native framework in the scripting framework;

invoking the declarative framework to provide the update to a mixed-reality target platform of the one or more target platforms; or

invoking the script framework or the script native framework to provide the update to a non-mixed-reality target platform of the one or more target platforms.

13. The system for claim 9 , the sequence of instructions further comprising instructions which, when executed by the processor, cause the processor to perform the set of acts, the set of acts further comprising:

identifying a client architecture and one or more components of the mixed-reality device;

identifying an entry point script file for the mixed-reality software application, wherein the script file is specified as an entry point in a manifest; and

parsing the entry point script file by using a kernel of a mixed-reality operating system executing on the mixed-reality device;

launching a virtual machine at least by invoking, at the scripting framework, one or more applications in the mixed-reality operating system on the client-side instance of the scripting framework;

performing a verification on one or more files that are loaded in a script engine at least by parsing a file generated by executing a cryptographic function on a list of files that is included in a package transmitted to the mixed-reality device; and

executing the mixed-reality software application on the mixed-reality device in response to a user interaction with the mixed-reality software application.

14. A computer program product embodied on a non-transitory computer readable medium having stored thereon a sequence of instructions which, when executed by a processor, causes the processor to execute a set of acts, the set of acts comprising:

creating a mixed-reality (MR) software application that executes across heterogeneous platforms on a server-side instance of a scripting framework;

the scripting framework rendering an initial user interface to generate an initial rendering for the mixed-reality software application;

detecting a change in a user interface (UI) in the mixed-reality software application caused by a user's interaction with the mixed-reality software application;

the scripting framework rendering an updated user interface to generate an updated rendering for the mixed-reality software application;

managing the change in the mixed-reality software application using the server-side instance of the scripting framework by: providing application code of the mixed-reality software application as an input to a reconciler; detecting the change in a state of the mixed-reality software application; and determining, at the reconciler, a list of one or more elements to be updated in the mixed-reality software application at least by comparing the initial rendering with the updated rendering;

managing the change in the mixed-reality software application using a client-side instance of the scripting framework; and

interactively executing the mixed-reality software application on a mixed-reality device.

15. The computer program product of claim 14 , the set of acts further comprising:

exposing one or more native application programming interfaces (APIs) of a mixed-reality operating system runtime to the scripting framework using at least a declarative framework in the scripting framework;

generating a package for the mixed-reality software application with a declarative markup language;

specifying one or more native components or elements or one or more spatialized implementations for the one or more native components or elements;

providing a spatial representation of a tag component for the mixed-reality software application;

including a multimedia content or a 3D (three-dimensional) model in the mixed-reality software application; and

generating the mixed-reality software application without compiling native code of the mixed-reality software application.

16. The computer program product of claim 14 , the set of acts further comprising:

managing updates to the mixed-reality software application using at least the scripting framework.

17. The computer program product of claim 14 , the set of acts further comprising at least one of:

providing the list of one or more elements to be updated for the mixed-reality software application to one or more script components that execute one or more actions to the list of one or more elements;

identifying or determining one or more target platforms on which the mixed-reality software application is executing, wherein the one or more target platforms comprise one or more mixed-reality target platforms executing one or more mixed-reality operating systems and one or more computing devices executing one or more respective non-mixed reality operating systems;

executing, at a first framework in the scripting framework, one or more actions to generate an update to the list of one or more elements for the one or more target platforms, wherein the first framework comprises at least one of a declarative framework, a script framework, or a script native framework in the scripting framework;

invoking the declarative framework to provide the update to a mixed-reality target platform of the one or more target platforms; or

invoking the script framework or the script native framework to provide the update to a non-mixed-reality target platform of the one or more target platforms.

18. The computer program product of claim 14 , the set of acts further comprising:

identifying a client architecture and one or more components of the mixed-reality device;

identifying an entry point script file for the mixed-reality software application, wherein the script file is specified as an entry point in a manifest;

parsing the entry point script file by using a kernel of a mixed-reality operating system executing on the mixed-reality device;

launching a virtual machine at least by invoking, at the scripting framework, one or more applications in the mixed-reality operating system on the client-side instance of the scripting framework;

performing a verification on one or more files that are loaded in a script engine at least by parsing a file generated by executing a cryptographic function on a list of files that is included in a package transmitted to the mixed-reality device; and

executing the mixed-reality software application on the mixed-reality device in response to a user interaction with the mixed-reality software application.

Assignments (4)
SECURITY INTEREST Recorded Oct 28, 2025
From: MAGIC LEAP, INC.; MENTOR ACQUISITION ONE, LLC; MOLECULAR IMPRINTS, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 073388/0027 →
SECURITY INTEREST Recorded Feb 7, 2023
From: MAGIC LEAP, INC.; MENTOR ACQUISITION ONE, LLC; MOLECULAR IMPRINTS, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 062681/0065 →
SECURITY INTEREST Recorded May 24, 2022
From: MOLECULAR IMPRINTS, INC.; MENTOR ACQUISITION ONE, LLC; MAGIC LEAP, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 060338/0665 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 21, 2021
From: GROZDANOV, NIKOLAY IVANOV; PIASCIK, KONRAD; ZOLOTAREV, LEONID; CASWELL, TIMOTHY DEAN
To: MAGIC LEAP, INC.
Reel/Frame 058450/0001 →