Magic Leap Patent | Methods And Systems For Three-Dimensional Model Sharing
Publication Number: 20200098173
Publication Date: 20200326
Applicants: Magic Leap
Examples of the disclosure describe systems and methods for decomposing and sharing 3D models. In an example method, a first version of a virtual three-dimensional model is displayed via a display of a wearable head device. A request is made to a host device for data associated with a second version of the virtual three-dimensional model, wherein the second version of the virtual three-dimensional model comprises a constituent part. It is determined whether the first version of the virtual three-dimensional model comprises the constituent part. In accordance with a determination that the first version of the virtual three-dimensional model does not comprise the constituent part, a request is made to the host device for data associated with the constituent part. The second version of the virtual three-dimensional model is displayed, via the display of the wearable head device. In accordance with a determination that the first version of the virtual three-dimensional model comprises the constituent part, a request is not made to the host device for data associated with the constituent part.
CROSS-REFERENCE TO RELATED APPLICATION
 This application claims priority to U.S. Provisional Application No. 62/735,675, filed on Sep. 24, 2018, the contents of which are incorporated by reference herein in their entirety.
 The present disclosure relates to sharing three-dimensional models between two or more computing systems, including mixed reality, imaging and visualization systems.
 Modern computing and display technologies have facilitated the development of systems for so called “virtual reality,” “augmented reality,” and “mixed reality” experiences, wherein digitally reproduced images are presented to a user in a manner such that they seem to be, or may be perceived as, real. A virtual reality (VR) scenario typically involves presentation of computer-generated virtual image information without transparency to other actual real-world visual input. An augmented reality (AR) scenario typically involves presentation of virtual image information as an augmentation to visualization of the actual world around the user. Mixed reality (MR) is a type of augmented reality in which physical and virtual objects may co-exist and interact in real time. Systems and methods disclosed herein address various challenges related to VR, AR and MR technology.
 Examples of the disclosure describe systems and methods for decomposing and sharing 3D models. In an example method, a first version of a virtual three-dimensional model is displayed via a display of a wearable head device. A request is made to a host device for data associated with a second version of the virtual three-dimensional model, wherein the second version of the virtual three-dimensional model comprises a constituent part. It is determined whether the first version of the virtual three-dimensional model comprises the constituent part. In accordance with a determination that the first version of the virtual three-dimensional model does not comprise the constituent part, a request is made to the host device for data associated with the constituent part. The second version of the virtual three-dimensional model is displayed, via the display of the wearable head device. In accordance with a determination that the first version of the virtual three-dimensional model comprises the constituent part, a request is not made to the host device for data associated with the constituent part.
BRIEF DESCRIPTION OF THE DRAWINGS
 Details of one or more implementations of the subject matter described in this specification are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages will become apparent from the description, the drawings, and the claims.
 FIG. 1 depicts an illustration of a mixed reality scenario with certain virtual reality objects, and certain physical objects viewed by a person.
 FIG. 2 schematically illustrates an example of a wearable system.
 FIG. 3 schematically illustrates example components of a wearable system.
 FIG. 4 schematically illustrates an example of a waveguide stack of a wearable device for outputting image information to a user.
 FIG. 5 is a process flow diagram of an example of a method for interacting with a virtual user interface.
 FIG. 6A is a block diagram of another example of a wearable system which can comprise an avatar processing and rendering system.
 FIG. 6B illustrates example components of an avatar processing and rendering system.
 FIG. 7 is a block diagram of an example of a wearable system including various inputs into the wearable system.
 FIG. 8 is a process flow diagram of an example of a method of rendering virtual content in relation to recognized objects.
 FIG. 9 schematically illustrates an overall system view depicting multiple wearable systems interacting with each other.
 FIG. 10 illustrates an example process of sharing 3D assets using the system and methods described herein.
 FIG. 11 illustrates an example 3D model sharing system configuration for sharing 3D assets using the system and methods described herein.
 FIG. 12 illustrates an example 3D model sharing process between a server and client using the system and methods described herein.
 FIG. 13 illustrates an example 3D model sharing system configuration for sharing 3D assets using the system and methods described herein.
 FIG. 14 illustrates an example process for decomposing a full 3D model using the system and methods described herein.
 FIG. 15 illustrates an example full 3D model using the system and methods described herein.
 FIG. 16 illustrates an example set of libraries utilized in a 3D model sharing application to store constituent parts of a 3D model using the system and methods described herein.
 FIG. 17 illustrates an example process for recomposing a full 3D model from its constituent parts using the system and methods described herein.
 FIG. 18 illustrates an example full 3D model using the system and methods described herein.
 FIGS. 19A-19C illustrate an example mixed reality environment.
 Throughout the drawings, reference numbers may be re-used to indicate correspondence between referenced elements. The drawings are provided to illustrate example embodiments described herein and are not intended to limit the scope of the disclosure.
* Mixed Reality Environment*
 Like all people, a user of a mixed reality system exists in a real environment–that is, a three-dimensional portion of the “real world,” and all of its contents, that are perceptible by the user. For example, a user perceives a real environment using one’s ordinary human senses sight, sound, touch, taste, smell–and interacts with the real environment by moving one’s own body in the real environment. Locations in a real environment can be described as coordinates in a coordinate space; for example, a coordinate can comprise latitude, longitude, and elevation with respect to sea level; distances in three orthogonal dimensions from a reference point; or other suitable values. Likewise, a vector can describe a quantity having a direction and a magnitude in the coordinate space.
 A computing device can maintain, for example in a memory associated with the device, a representation of a virtual environment. As used herein, a virtual environment is a computational representation of a three-dimensional space. A virtual environment can include representations of any object, action, signal, parameter, coordinate, vector, or other characteristic associated with that space. In some examples, circuitry (e.g., a processor) of a computing device can maintain and update a state of a virtual environment; that is, a processor can determine at a first time t0, based on data associated with the virtual environment and/or input provided by a user, a state of the virtual environment at a second time t1. For instance, if an object in the virtual environment is located at a first coordinate at time t0, and has certain programmed physical parameters (e.g., mass, coefficient of friction); and an input received from user indicates that a force should be applied to the object in a direction vector; the processor can apply laws of kinematics to determine a location of the object at time t1 using basic mechanics. The processor can use any suitable information known about the virtual environment, and/or any suitable input (e.g., real world parameters), to determine a state of the virtual environment at a time t1. In maintaining and updating a state of a virtual environment, the processor can execute any suitable software, including software relating to the creation and deletion of virtual objects in the virtual environment; software (e.g., scripts) for defining behavior of virtual objects or characters in the virtual environment; software for defining the behavior of signals (e.g., audio signals) in the virtual environment; software for creating and updating parameters associated with the virtual environment; software for generating audio signals in the virtual environment; software for handling input and output; software for implementing network operations; software for applying asset data (e.g., animation data to move a virtual object over time); or many other possibilities.
  Output devices, such as a display or a speaker, can present any or all aspects of a virtual environment to a user. For example, a virtual environment may include virtual objects (which may include representations of inanimate objects; people; animals; lights; etc.) that may be presented to a user. A processor can determine a view of the virtual environment (for example, corresponding to a “camera” with an origin coordinate, a view axis, and a frustum); and render, to a display, a viewable scene of the virtual environment corresponding to that view. Any suitable rendering technology may be used for this purpose. In some examples, the viewable scene may include only some virtual objects in the virtual environment, and exclude certain other virtual objects. Similarly, a virtual environment may include audio aspects that may be presented to a user as one or more audio signals. For instance, a virtual object in the virtual environment may generate a sound originating from a location coordinate of the object (e.g., a virtual character may speak or cause a sound effect); or the virtual environment may be associated with musical cues or ambient sounds that may or may not be associated with a particular location. A processor can determine an audio signal corresponding to a “listener” coordinate–for instance, an audio signal corresponding to a composite of sounds in the virtual environment, and mixed and processed to simulate an audio signal that would be heard by a listener at the listener coordinate–and present the audio signal to a user via one or more speakers.
 Because a virtual environment exists only as a computational structure, a user cannot directly perceive a virtual environment using one’s ordinary senses. Instead, a user can perceive a virtual environment only indirectly, as presented to the user, for example by a display, speakers, haptic output devices, etc. Similarly, a user cannot directly touch, manipulate, or otherwise interact with a virtual environment; but can provide input data, via input devices or sensors, to a processor that can use the device or sensor data to update the virtual environment. For example, a camera sensor can provide optical data indicating that a user is trying to move an object in a virtual environment, and a processor can use that data to cause the object to respond accordingly in the virtual environment.
 A mixed reality system can present to the user, for example using a transmissive display and/or one or more speakers (which may, for example, be incorporated into a wearable head device), a mixed reality (“MR”) environment that combines aspects of a real environment and a virtual environment. In some embodiments, the one or more speakers may be external to the head-mounted wearable unit. As used herein, an MR environment is a simultaneous representation of a real environment and a corresponding virtual environment. In some examples, the corresponding real and virtual environments share a single coordinate space; in some examples, a real coordinate space and one or more corresponding virtual coordinate spaces are related to each other by one or more transformation matrices (or other suitable representation). Accordingly, in some embodiments, a single coordinate (along with, in some examples, a transformation matrix) can define a first location in the real environment, and also a second, corresponding, location in the virtual environment; and vice versa.
 In an MR environment, a virtual object (e.g., in a virtual environment associated with the MR environment) can correspond to a real object (e.g., in a real environment associated with the MR environment). For instance, if the real environment of an MR environment comprises a real lamp post (a real object) at a location coordinate, the virtual environment of the MR environment may comprise a corresponding virtual lamp post (a virtual object) at a corresponding location coordinate. As used herein, the real object in combination with its corresponding virtual object together constitute a “mixed reality object.” It is not necessary for a virtual object to perfectly match or align with a corresponding real object. In some examples, a virtual object can be a simplified version of a corresponding real object. For instance, if a real environment includes a real lamp post, a corresponding virtual object may comprise a cylinder of roughly the same height and radius as the real lamp post (reflecting that lamp posts may be roughly cylindrical in shape). Simplifying virtual objects in this manner can allow computational efficiencies, and can simplify calculations to be performed on such virtual objects. Further, in some examples of an MR environment, not all real objects in a real environment may be associated with a corresponding virtual object. Likewise, in some examples of an MR environment, not all virtual objects in a virtual environment may be associated with a corresponding real object. That is, some virtual objects may solely in a virtual environment of an MR environment, without any real-world counterpart. In some examples, not all real objects may be associated with a corresponding real object.
 In some examples, virtual objects may have characteristics that differ, sometimes drastically, from those of corresponding real objects. For instance, while a real environment in an MR environment may comprise a green, two-armed cactus–a prickly inanimate object–a corresponding virtual object in the MR environment may have the characteristics of a green, two-armed virtual character with human facial features and a surly demeanor. In this example, the virtual object resembles its corresponding real object in certain characteristics (color, number of arms); but differs from the real object in other characteristics (facial features, personality). In this way, virtual objects have the potential to represent real objects in a creative, abstract, exaggerated, or fanciful manner; or to impart behaviors (e.g., human personalities) to otherwise inanimate real objects. In some examples, virtual objects may be purely fanciful creations with no real-world counterpart (e.g., a virtual monster in a virtual environment, perhaps at a location corresponding to an empty space in a real environment).
 Compared to VR systems, which present the user with a virtual environment while obscuring the real environment, a mixed reality system presenting an MR environment affords the advantage that the real environment remains perceptible while the virtual environment is presented. Accordingly, the user of the mixed reality system is able to use visual and audio cues associated with the real environment to experience and interact with the corresponding virtual environment. As an example, while a user of VR systems may struggle to perceive or interact with a virtual object displayed in a virtual environment–because, as noted above, a user cannot directly perceive or interact with a virtual environment–a user of an MR system may find it intuitive and natural to interact with a virtual object by seeing, hearing, and touching a corresponding real object in his or her own real environment. This level of interactivity can heighten a user’s feelings of immersion, connection, and engagement with a virtual environment. Similarly, by simultaneously presenting a real environment and a virtual environment, mixed reality systems can reduce negative psychological feelings (e.g., cognitive dissonance) and negative physical feelings (e.g., motion sickness) associated with VR systems. Mixed reality systems further offer many possibilities for applications that may augment or alter our experiences of the real world.
 FIG. 19A illustrates an example real environment 1900 in which a user 1910 uses a mixed reality system 1912. Mixed reality system 1912 may comprise a display (e.g., a transmissive display) and one or more speakers, and one or more sensors (e.g., a camera), for example as described below. The real environment 1900 shown comprises a rectangular room 1904A, in which user 1910 is standing; and real objects 1922A (a lamp), 1924A (a table), 1926A (a sofa), and 1928A (a painting). Room 1904A further comprises a location coordinate 1906, which may be considered an origin of the real environment 1900. As shown in FIG. 19A, an environment/world coordinate system 1908 (comprising an x-axis 1908X, a y-axis 1908Y, and a z-axis 1908Z) with its origin at point 1906 (a world coordinate), can define a coordinate space for real environment 1900. In some embodiments, the origin point 1906 of the environment/world coordinate system 1908 may correspond to where the mixed reality system 1912 was powered on. In some embodiments, the origin point 1906 of the environment/world coordinate system 1908 may be reset during operation. In some examples, user 1910 may be considered a real object in real environment 1900; similarly, user 1910’s body parts (e.g., hands, feet) may be considered real objects in real environment 1900. In some examples, a user/listener/head coordinate system 1914 (comprising an x-axis 1914X, a y-axis 1914Y, and a z-axis 1914Z) with its origin at point 1915 (e.g., user/listener/head coordinate) can define a coordinate space for the user/listener/head on which the mixed reality system 1912 is located. The origin point 1915 of the user/listener/head coordinate system 1914 may be defined relative to one or more components of the mixed reality system 1912. For example, the origin point 1915 of the user/listener/head coordinate system 1914 may be defined relative to the display of the mixed reality system 1912 such as during initial calibration of the mixed reality system 1912. A matrix (which may include a translation matrix and a Quaternion matrix or other rotation matrix), or other suitable representation can characterize a transformation between the user/listener/head coordinate system 1914 space and the environment/world coordinate system 1908 space. In some embodiments, a left ear coordinate 1916 and a right ear coordinate 1917 may be defined relative to the origin point 1915 of the user/listener/head coordinate system 1914. A matrix (which may include a translation matrix and a Quaternion matrix or other rotation matrix), or other suitable representation can characterize a transformation between the left ear coordinate 1916 and the right ear coordinate 1917, and user/listener/head coordinate system 1914 space. The user/listener/head coordinate system 1914 can simplify the representation of locations relative to the user’s head, or to a head-mounted device, for example, relative to the environment/world coordinate system 1908. Using Simultaneous Localization and Mapping (SLAM), visual odometry, or other techniques, a transformation between user coordinate system 1914 and environment coordinate system 1908 can be determined and updated in real-time.
 FIG. 19B illustrates an example virtual environment 1930 that corresponds to real environment 1900. The virtual environment 1930 shown comprises a virtual rectangular room 1904B corresponding to real rectangular room 1904A; a virtual object 1922B corresponding to real object 1922A; a virtual object 1924B corresponding to real object 1924A; and a virtual object 1926B corresponding to real object 1926A. Metadata associated with the virtual objects 1922B, 1924B, 1926B can include information derived from the corresponding real objects 1922A, 1924A, 1926A. Virtual environment 1930 additionally comprises a virtual monster 1932, which does not correspond to any real object in real environment 1900. Real object 1928A in real environment 1900 does not correspond to any virtual object in virtual environment 1930. A persistent coordinate system 1933 (comprising an x-axis 1933X, a y-axis 1933Y, and a z-axis 1933Z) with its origin at point 1934 (persistent coordinate), can define a coordinate space for virtual content. The origin point 1934 of the persistent coordinate system 1933 may be defined relative/with respect to one or more real objects, such as the real object 1926A. A matrix (which may include a translation matrix and a Quaternion matrix or other rotation matrix), or other suitable representation can characterize a transformation between the persistent coordinate system 1933 space and the environment/world coordinate system 1908 space. In some embodiments, each of the virtual objects 1922B, 1924B, 1926B, and 1932 may have their own persistent coordinate point relative to the origin point 1934 of the persistent coordinate system 1933. In some embodiments, there may be multiple persistent coordinate systems and each of the virtual objects 1922B, 1924B, 1926B, and 1932 may have their own persistent coordinate point relative to one or more persistent coordinate systems.
 With respect to FIGS. 19A and 19B, environment/world coordinate system 1908 defines a shared coordinate space for both real environment 1900 and virtual environment 1930. In the example shown, the coordinate space has its origin at point 1906. Further, the coordinate space is defined by the same three orthogonal axes (1908X, 1908Y, 1908Z). Accordingly, a first location in real environment 1900, and a second, corresponding location in virtual environment 1930, can be described with respect to the same coordinate space. This simplifies identifying and displaying corresponding locations in real and virtual environments, because the same coordinates can be used to identify both locations. However, in some examples, corresponding real and virtual environments need not use a shared coordinate space. For instance, in some examples (not shown), a matrix (which may include a translation matrix and a Quaternion matrix or other rotation matrix), or other suitable representation can characterize a transformation between a real environment coordinate space and a virtual environment coordinate space.
 FIG. 19C illustrates an example MR environment 1950 that simultaneously presents aspects of real environment 1900 and virtual environment 1930 to user 1910 via mixed reality system 1912. In the example shown, MR environment 1950 simultaneously presents user 1910 with real objects 1922A, 1924A, 1926A, and 1928A from real environment 1900 (e.g., via a transmissive portion of a display of mixed reality system 1912); and virtual objects 1922B, 1924B, 1926B, and 1932 from virtual environment 1930 (e.g., via an active display portion of the display of mixed reality system 1912). As above, origin point 1906 acts as an origin for a coordinate space corresponding to MR environment 1950, and coordinate system 1908 defines an x-axis, y-axis, and z-axis for the coordinate space.
 In the example shown, mixed reality objects comprise corresponding pairs of real objects and virtual objects (i.e., 1922A/1922B, 1924A/1924B, 1926A/1926B) that occupy corresponding locations in coordinate space 1908. In some examples, both the real objects and the virtual objects may be simultaneously visible to user 1910. This may be desirable in, for example, instances where the virtual object presents information designed to augment a view of the corresponding real object (such as in a museum application where a virtual object presents the missing pieces of an ancient damaged sculpture). In some examples, the virtual objects (1922B, 1924B, and/or 1926B) may be displayed (e.g., via active pixelated occlusion using a pixelated occlusion shutter) so as to occlude the corresponding real objects (1922A, 1924A, and/or 1926A). This may be desirable in, for example, instances where the virtual object acts as a visual replacement for the corresponding real object (such as in an interactive storytelling application where an inanimate real object becomes a “living” character).
 In some examples, real objects (e.g., 1922A, 1924A, 1926A) may be associated with virtual content or helper data that may not necessarily constitute virtual objects. Virtual content or helper data can facilitate processing or handling of virtual objects in the mixed reality environment. For example, such virtual content could include two-dimensional representations of corresponding real objects; custom asset types associated with corresponding real objects; or statistical data associated with corresponding real objects. This information can enable or facilitate calculations involving a real object without incurring unnecessary computational overhead.
 In some examples, the presentation described above may also incorporate audio aspects. For instance, in MR environment 1950, virtual monster 1932 could be associated with one or more audio signals, such as a footstep sound effect that is generated as the monster walks around MR environment 1950. As described further below, a processor of mixed reality system 1912 can compute an audio signal corresponding to a mixed and processed composite of all such sounds in MR environment 1950, and present the audio signal to user 1910 via one or more speakers included in mixed reality system 1912 and/or one or more external speakers.
* Mixed Reality Object Sharing*
 A 3D digital model of an object may be displayed as a virtual object to one or more real or digital people in an AR/VR/MR (hereinafter referred to as MR for simplicity) environment. For example, an automotive engineer may wish to share a new car design with co-workers at their weekly team meeting. Traditionally, design sharing may be accomplished by providing several different views of the design so the viewer is able to imagine the 3D object. In this case, the automotive engineer may print out perspective drawings to hand out to co-workers during the meeting. This may work for simple designs but it may be difficult for the viewer to piece together the 3D object in the viewers mind if the 3D object has a complex shape or design. Alternatively or additionally, traditional methods of sharing a 3D design or model may involve creating a physical prototype. In this example, the automotive engineer would need to spend a time and money creating the physical prototype. The physical prototype may make it easier to understand the designer’s intent, but may only show a basic version of the design (viewer can only see the outside of the design but can’t open it to view the internal components, for example).
 Embodiments of the disclosed systems and methods may provide for improved 3D model sharing between computing systems. Continuing with the example above, the present invention may enable an automotive engineer to create a new digital 3D model of a car and then quickly and efficiently share the model with co-workers during the meeting. The present invention can also enable fast and easy unplanned sharing. For example, the automotive engineer’s manager may wish to share a 3D design the manager had previously designed in order to collaborate with the automotive engineer. In some embodiments, the manager is able to access the old 3D car design and share with everyone present at the meeting without requiring people to download the design or click on a link to access.
 Typically, in gaming for example, 3D models (alternatively called 3D assets, or 3D content) are pre-loaded in the game application so when a user starts up the game, all of the 3D assets that will be viewed by the user are already on the device. When updates are needed, the application will add new content offline. For example, the game may apply a patch when the game is not running, and when the application is next opened, the new content is installed and ready for use. This system of sharing new 3D models with two or more computing systems is convenient for infrequent, planned updates, but is impractical when new 3D models are frequently or unexpectedly required.
 MR games or applications may be collaborative, where multiple people contribute towards a common goal, such as an entire a group of students learning about the anatomy of a frog in school. If the teacher tries to explain a concept and the students don’t understand, it may be desirable for the teacher to display a virtual 3D model of a frog to the students so they can see what the teacher is describing. Traditional systems would require the students to download the 3D model or exit and re-enter the application so the teacher can push the new frog model update to the students. Additionally, such methods may require large amounts of disk storage in order to house all of the 3D asset data. An alternate method of accessing 3D models without using disk space, may be desirable.
 These problems may be solved by methods and systems for streaming data over a network between a server and one or more clients. The server may have access to one or more 3D models and may have a 3D model sharing server application downloaded and running. The 3D model sharing application may break down the model into constituent data parts, compress, package, and send the constituent data parts to clients on the network. The client can receive the constituent parts during 3D model sharing client application runtime, reconstruct the 3D model, and view the 3D model. In some embodiments, runtime may be when the game or application loop is operating, when the screen is displaying application content, and/or when the computing system is operating with the framework of the application. Any number of clients may be part of the network. Any number of 3D models may be send to the clients. Two or more clients may be one person with two or more devices (e.g. computing systems) or may be two or more people each with one device.
 An advantage of the present application is enabling 3D content sharing during runtime.
 The term host may be used interchangeably with server. The terms 3D model, 3D asset, 3D content, and 3D model may be used interchangeably.
 Examples of 3D Display of a Wearable System
 A wearable system (also referred to herein as an augmented reality (AR) system) can be configured to present 2D or 3D virtual images to a user. The images may be still images, frames of a video, or a video, in combination or the like. At least a portion of the wearable system can be implemented on a wearable device that can present a VR, AR, or MR environment, alone or in combination, for user interaction. The wearable device can be used interchangeably as an AR device (ARD). Further, for the purpose of the present disclosure, the term “AR” is used interchangeably with the term “MR”.
 FIG. 1 depicts an illustration of a mixed reality scenario with certain virtual reality objects, and certain physical objects viewed by a person. In FIG. 1, an MR scene 100 is depicted wherein a user of an MR technology sees a real-world park-like setting 110 featuring people, trees, buildings in the background, and a concrete platform 120. In addition to these items, the user of the MR technology also perceives that he “sees” a robot statue 130 standing upon the real-world platform 120, and a cartoon-like avatar character 140 flying by which seems to be a personification of a bumble bee, even though these elements do not exist in the real world.
 In order for the 3D display to produce a true sensation of depth, and more specifically, a simulated sensation of surface depth, it may be desirable for each point in the display’s visual field to generate an accommodative response corresponding to its virtual depth. If the accommodative response to a display point does not correspond to the virtual depth of that point, as determined by the binocular depth cues of convergence and stereopsis, the human eye may experience an accommodation conflict, resulting in unstable imaging, harmful eye strain, headaches, and, in the absence of accommodation information, almost a complete lack of surface depth.
 VR, AR, and MR experiences can be provided by display systems having displays in which images corresponding to a plurality of depth planes are provided to a viewer. The images may be different for each depth plane (e.g., provide slightly different presentations of a scene or object) and may be separately focused by the viewer’s eyes, thereby helping to provide the user with depth cues based on the accommodation of the eye required to bring into focus different image features for the scene located on different depth plane or based on observing different image features on different depth planes being out of focus. As discussed elsewhere herein, such depth cues can provide credible perceptions of depth.
 FIG. 2 illustrates an example of wearable system 200 which can be configured to provide an AR/VR/MR scene. The wearable system 200 can also be referred to as the AR system 200. The wearable system 200 can include a display 220, and various mechanical and electronic modules and systems to support the functioning of display 220. The display 220 may be coupled to a frame 230, which is wearable by a user, wearer, or viewer 210. The display 220 can be positioned in front of the eyes of the user 210. The display 220 can present AR/VR/MR content to a user. The display 220 can comprise a head mounted display (HMD) that is worn on the head of the user.
 In some embodiments, a speaker 240 can be coupled to the frame 230 and positioned adjacent the ear canal of the user (in some embodiments, another speaker, not shown, can be positioned adjacent the other ear canal of the user to provide for stereo/shapeable sound control). The display 220 can include an audio sensor (e.g., a microphone) 232 for detecting an audio stream from the environment and capture ambient sound. In some embodiments, one or more other audio sensors, not shown, can be positioned to provide stereo sound reception. Stereo sound reception can be used to determine the location of a sound source. The wearable system 200 can perform voice or speech recognition on the audio stream.
 The wearable system 200 can include an outward-facing imaging system 464 (shown in FIG. 4) which observes the world in the environment around the user. The wearable system 200 can also include an inward-facing imaging system 462 (shown in FIG. 4) which can track the eye movements of the user. The inward-facing imaging system may track either one eye’s movements or both eyes’ movements. The inward-facing imaging system 462 may be attached to the frame 230 and may be in electrical communication with the processing modules 260 or 270, which may process image information acquired by the inward-facing imaging system to determine, e.g., the pupil diameters or orientations of the eyes, eye movements or eye pose of the user 210. The inward-facing imaging system 462 may include one or more cameras. For example, at least one camera may be used to image each eye. The images acquired by the cameras may be used to determine pupil size or eye pose for each eye separately, thereby allowing presentation of image information to each eye to be dynamically tailored to that eye.
 As an example, the wearable system 200 can use the outward-facing imaging system 464 or the inward-facing imaging system 462 to acquire images of a pose of the user. The images may be still images, frames of a video, or a video.
 The display 220 can be operatively coupled 250, such as by a wired lead or wireless connectivity, to a local data processing module 260 which may be mounted in a variety of configurations, such as fixedly attached to the frame 230, fixedly attached to a helmet or hat worn by the user, embedded in headphones, or otherwise removably attached to the user 210 (e.g., in a backpack-style configuration, in a belt-coupling style configuration).