IP Library Granted Patent US 11,798,247
Granted Patent B2
US 11,798,247 · App. 17/511,909 · Granted Oct 24, 2023

Virtual object structures and interrelationships

Inventors: Yeliz Karadayi (Seattle, WA); Wai Leong Chak (London, GB); Michal Hlavac (Seattle, WA); Pol Pla I Conesa (San Francisco, CA)
Assignee: Meta Platforms Technologies, LLC
G06T19/20G06F16/2291G06T19/006G06T2200/24G06T2219/2008
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,798,247
App. No.
17/511,909
Granted
Oct 24, 2023
Kind
B2
Abstract

A virtual object system can orchestrate virtual objects defined as a collection of components and with inheritance in an object hierarchy. Virtual object components can include a container, data, a template, and a controller. A container can define the volume the virtual object is authorized to write into. A virtual object's data can specify features such as visual elements, parameters, links to external data, meta-data, etc. The template can define view states of the virtual object and contextual breakpoints for transitioning between them. Each view state can control when and how the virtual object presents data elements. The controller can define logic for the virtual object to respond to input, context, etc. The definition of each object can specify which other object in an object hierarchy that object extends, where extending an object includes inheriting that object's components, which can be modified or overwritten as part of the extension.

Claims (48)

1. A method of defining a virtual object, for access by an application program executed on a processing system, the method comprising:

creating, using one or more memories and one or more processors, a data structure stored in a computer system memory, the data structure including information used by the application program executed on the processing system and including:

a data component defining multiple attribute data elements, the attribute data elements including at least visual elements, parameters, and links to external data;

a manifest for a container component that defines a volume that the virtual object is authorized to write into;

a controller component defining logic controlling how the virtual object responds to contexts, the contexts including one or more of: user actions, a determined world state, outputs from system services, outputs from other applications, or a combination thereof; and

a template component defining multiple view states with contextual breakpoints specifying transitions between the multiple view states.

2. The method of claim 1 ,

wherein one or more of the data component, the manifest for the container component, the controller component, and/or the template component is based on a corresponding component from a parent object that the virtual object extends in an object hierarchy; and

wherein at least one of the data component, the manifest for the container component, the controller component, and/or the template component is modified from the version in the parent object in the object hierarchy.

3. The method of claim 1 , wherein one or more of the data component, the manifest for the container component, the controller component, and/or the template component is based on a corresponding component from a parent object that the virtual object extends in an object hierarchy.

4. The method of claim 3 :

wherein the object hierarchy includes at least a root object from which all other objects in the object hierarchy descend; and

wherein the object hierarchy includes at least a set of native objects defining at least a native person object and a native photo object.

5. The method of claim 3 ,

wherein the object hierarchy includes at least a root object from which all other objects in the object hierarchy descend; and

wherein the object hierarchy includes at least a special purpose object defining a custom container component and a custom template component for content items imported from another platform, wherein the special purpose object inherits functionality from the root object permitting instances of the special purpose object, each with an imported content item, to exist in an artificial reality environment.

6. The method of claim 1 , wherein the controller component further defines logic that causes the virtual object to react to one or more of: which other people or objects are in the vicinity, how the virtual object is grouped with or linked to other objects, a state associated with a current user, or a combination thereof.

7. The method of claim 1 , wherein the controller component includes definitions of how the virtual object is associated with other virtual objects.

8. The method of claim 1 , wherein the controller component includes connection specifics defining connections between the virtual object and external services and defining how the virtual object responds to events from those external services.

9. The method of claim 1 , wherein each of the multiple view states, when that view state is the active view state for the virtual object, controls what data elements the virtual object is presenting and how the virtual object is presenting those data elements.

10. The method of claim 1 , wherein the template component is a state machine with each view state being a state of the state machine and each contextual breakpoints being an expression that, for a particular state and when the expression evaluates to true, causes a transition from the particular state to another state.

11. A non-transitory memory for storing a definition of a virtual object, for access by an application program executed on a processing system, the memory comprising:

a data structure stored in the memory, the data structure including information used by the application program and including:

a data component defining multiple attribute data elements, the attribute data elements including at least visual elements, parameters, and links to external data;

a manifest for a container component that defines a volume that the virtual object is authorized to write into;

a controller component defining logic controlling how the virtual object responds to contexts, the contexts including one or more of: user actions, a determined world state, outputs from system services, outputs from other applications, or a combination thereof; and

a template component defining multiple view states with contextual breakpoints specifying transitions between the multiple view states.

12. The non-transitory memory of claim 11 ,

wherein one or more of the data component, the manifest for the container component, the controller component, and/or the template component is based on a corresponding component from a parent object that the virtual object extends in an object hierarchy; and

wherein at least one of the data component, the manifest for the container component, the controller component, and/or the template component is modified from the version in the parent object in the object hierarchy.

13. The non-transitory memory of claim 11 , wherein one or more of the data component, the manifest for the container component, the controller component, and/or the template component is based on a corresponding component from a parent object that the virtual object extends in an object hierarchy.

14. The non-transitory memory of claim 13 :

wherein the object hierarchy includes at least a root object from which all other objects in the object hierarchy descend; and

wherein the object hierarchy includes at least a set of native objects defining at least a native person object and a native photo object.

15. The non-transitory memory of claim 13 ,

wherein the object hierarchy includes at least a root object; and

wherein the object hierarchy includes at least a special purpose object defining a custom container component and a custom template component for content items imported from another platform, wherein the special purpose object inherits functionality from the root object permitting instances of the special purpose object, each with an imported content item, to exist in an artificial reality environment.

16. The non-transitory memory of claim 11 , wherein the controller component further defines logic that causes the virtual object to react to one or more of: which other people or objects are in the vicinity, how the virtual object is grouped with or linked to other objects, a state associated with a current user, or a combination thereof.

17. The non-transitory memory of claim 11 , wherein the controller component includes definitions of how the virtual object is associated with other virtual objects.

18. The non-transitory memory of claim 11 , wherein the controller component includes connection specifics defining connections between the virtual object and one or more external services and defining how the virtual object responds to events from those one or more external services.

19. A computing system storing a definition of a virtual object, for access by an application program executed on the computing system, the computing system comprising:

one or more processors; and

one or more memories storing the definition of the virtual object including:

a data component defining multiple attribute data elements, the attribute data elements including at least visual elements, parameters, and links to external data;

a manifest for a container component that defines a volume that the virtual object is authorized to write into;

a controller component defining logic controlling how the virtual object responds to contexts, the contexts including one or more of: user actions, a determined world state, outputs from system services, outputs from other applications, or a combination thereof; and

a template component defining multiple view states with contextual breakpoints specifying transitions between the multiple view states.

20. The computing system of claim 19 , wherein each of the multiple view states, when that view state is the active view state for the virtual object, controls what data elements the virtual object is presenting and how the virtual object is presenting those data elements.

Assignments (2)
CHANGE OF NAME Recorded Jun 15, 2022
From: FACEBOOK TECHNOLOGIES, LLC
To: META PLATFORMS TECHNOLOGIES, LLC
Reel/Frame 060386/0364 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 20, 2022
From: KARADAYI, YELIZ; CHAK, WAI LEONG; HLAVAC, MICHAL; PLA I CONESA, POL
To: FACEBOOK TECHNOLOGIES, LLC
Reel/Frame 058704/0150 →
Continuity (1)
Related Publication 20230126837A1 · Apr 27, 2023
Cited By (10)
US 12,197,634 US 12,254,581 US 12,272,012 US 12,353,680 US 12,548,245 US 12,572,253 US 12,613,938 US 12,633,068 US 12,670,001 US 12,681,561