NZ718380B2 - System and method for augmented and virtual reality - Google Patents
System and method for augmented and virtual reality Download PDFInfo
- Publication number
- NZ718380B2 NZ718380B2 NZ718380A NZ71838012A NZ718380B2 NZ 718380 B2 NZ718380 B2 NZ 718380B2 NZ 718380 A NZ718380 A NZ 718380A NZ 71838012 A NZ71838012 A NZ 71838012A NZ 718380 B2 NZ718380 B2 NZ 718380B2
- Authority
- NZ
- New Zealand
- Prior art keywords
- user
- virtual
- virtual world
- data
- world
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 230000003190 augmentative effect Effects 0.000 title claims description 51
- 238000012545 processing Methods 0.000 claims abstract description 26
- 230000015654 memory Effects 0.000 claims abstract description 17
- 230000008569 process Effects 0.000 claims abstract description 17
- 230000008859 change Effects 0.000 claims description 19
- 230000003993 interaction Effects 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 5
- 238000009826 distribution Methods 0.000 claims description 3
- 238000009877 rendering Methods 0.000 description 28
- 210000003128 head Anatomy 0.000 description 16
- 150000002500 ions Chemical class 0.000 description 14
- 230000033001 locomotion Effects 0.000 description 14
- 230000000007 visual effect Effects 0.000 description 12
- 230000003068 static effect Effects 0.000 description 10
- 230000003287 optical effect Effects 0.000 description 9
- 230000001960 triggered effect Effects 0.000 description 9
- 239000000284 extract Substances 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000004807 localization Effects 0.000 description 5
- 241001465754 Metazoa Species 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 230000001427 coherent effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000004438 eyesight Effects 0.000 description 4
- 230000001815 facial effect Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 230000001953 sensory effect Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 3
- 239000000872 buffer Substances 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000008451 emotion Effects 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 241000282412 Homo Species 0.000 description 2
- 230000004308 accommodation Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005304 joining Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000002688 persistence Effects 0.000 description 2
- 210000001747 pupil Anatomy 0.000 description 2
- 230000001755 vocal effect Effects 0.000 description 2
- 206010013710 Drug interaction Diseases 0.000 description 1
- 241000257303 Hymenoptera Species 0.000 description 1
- 241000272168 Laridae Species 0.000 description 1
- 241001233242 Lontra Species 0.000 description 1
- 101100400378 Mus musculus Marveld2 gene Proteins 0.000 description 1
- 241000972450 Triangula Species 0.000 description 1
- 108091007416 X-inactive specific transcript Proteins 0.000 description 1
- 108091035715 XIST (gene) Proteins 0.000 description 1
- 238000004873 anchoring Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003287 bathing Methods 0.000 description 1
- 230000036760 body temperature Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 150000001768 cations Chemical class 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000019771 cognition Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000009189 diving Effects 0.000 description 1
- 210000005069 ears Anatomy 0.000 description 1
- 210000000887 face Anatomy 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000004886 head movement Effects 0.000 description 1
- 238000010191 image analysis Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 239000003973 paint Substances 0.000 description 1
- 230000010399 physical interaction Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 230000004478 pupil constriction Effects 0.000 description 1
- 230000010344 pupil dilation Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002207 retinal effect Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 101150081985 scrib gene Proteins 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000001429 visible spectrum Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Abstract
system for enabling two or more users to interact within a virtual world comprising virtual world data comprises a computer network comprising one or more computing devices and a user device. The one or more computing devices comprise memory, processing circuitry, and software stored at least in part in the memory and executable by the processing circuitry to process at least a portion of the virtual world data. The user device has a wearable user display component, wherein the user device is operatively coupled to the computer network. At least a first portion of the virtual world data comprises a virtual object rendered from and representing a physical object local to a first user and the computer network is operable to transmit the first portion of the virtual world data to the user device associated with a second user. The wearable user display component visually displays the virtual object to the second user, such that a virtual representation of the physical object local to the first user is visually presented to the second user at the second user’s location. part in the memory and executable by the processing circuitry to process at least a portion of the virtual world data. The user device has a wearable user display component, wherein the user device is operatively coupled to the computer network. At least a first portion of the virtual world data comprises a virtual object rendered from and representing a physical object local to a first user and the computer network is operable to transmit the first portion of the virtual world data to the user device associated with a second user. The wearable user display component visually displays the virtual object to the second user, such that a virtual representation of the physical object local to the first user is visually presented to the second user at the second user’s location.
Description
SYSTEM AND METHOD FOR AUGMENTED AND VIRTUAL REALITY RELATED APPLICATION DATA The present ation claims the benefit under 35 U.S.C. § 119 to U.S. Provisional Applications Serial No. 61/552,941 filed October 28, 2011. _‘"he foregoing app] 'cation 's hereby incorporated by reference into the present app__ication in its entirety.
FI«.D or "H« Nv«NTION The present invention generally relates to systems and methods configured to facilitate ctive virtual Or augmented reality environments for one or more users.
IBACKGROUND Virtual and augmented reality environments are generated by ers using, in part, data that describes the environment.
This data may describe, for example, various objects with which a user may sense and interact with. Examples of these s include objects that are rendered and displayed for a user to see, audio that is played for a user to hear, and tactile (or haptic) feedback for a user to feel. Users may sense and interact with the virtual and ted reality environments through a variety of visual, auditory and taCtical means.
One embodiment is directed to a system for enabling two or more users to ct within a virtual world comprising l world data, comprising a computer networ < comprising one or more computing devices, the one or more computing devices comprising memory, sing circuitry, and software s tored at least in part in the memory and able by the processing circuitry to process at least a portion of the virtual WOrld data; wherein at least a first portion of the virt Jal world data originates from a first user virtual world local to a first user, and wherein the computer network is operable to transmit the first portion to a user device for presentation to a SGCOHd user, such that the second user may experience the first por tion from the location of the second user, such that aspects of the first user virt ial world are effectively passed to the second user. The firs t and second users may be in different physical locations or in S Jbstantially the same physical location. At least a portion of the virtual world may be ured to change in response to a change in the virtual world data. At leas t a portion of the virtua' wor' d may be configured :O change in response to a physical obj ect sensed by the user device. The change in virtua' wor' d data may represent a virtual object having a predetermined relationship with the al object. The change in virtual world data may be presented to a second user device for presentation to the second user according to the predetermined relationship. The virtual world may be operable to be rendered by at least one of the computer servers or a user device. The virtual world may be presented in a two—dimensional format. The l world may be presented in a three— dimensional . The user device may be operable to provide an ace for enabling interaction between a user and the l world in an augmented reality mode. The user device may be operable to provide an interface for enabling interaction between a user and the virtual world in a virtual reality mode.
The user device may be operable to provide an interface for enabling interaction n a user and the virtual world a combination of augmented and virtual reality mode. The virtual world data may be transmitted over a data network. The computer network may be operable to receive at least a portion of the virtual world data from a user device. At least a portion of the virtual world data transmitted to the Jser device may comprise instruCtions for generating at least a portion of the virtual world. At least a n of the virtual world data may be transmitted to a gateway for at least one of processing or distribution. At least one of the one or more computer servers may be operable to process virtual world data distributed by the gateway.
Another embodiment is ed to a system for virtual and/or augm nt d us r Xp ri nc wh r in r mot s are animated based at least in part upon data on a wearable device with optional input from voice inflection and facial recognition software.
AnOther embodiment is directed to a system for l and/or aigm nt d us r Xp ri nc wh r in a camera pose or viewpoint position and vector may be placed anywhere in a world sector.
AnOther embodiment is directed to a system for virtual and/or aigm nt d us r xp ri nc wh r in worlds or portions thereof may be rendered for observing users at diverse and selectable scales.
AnOther embodiment is directed to a syStem for virtual and/or aigm nt d us r Xp ri nc wh r in f atur s, such as points or parametric lines, in addition to pose tagged images, may be utilized as base data for a world mode; from which software , or object izers, may be utilized to create parametric representations of real—world objects, tagging source features for mutual inclusion in segmented objects and the world model. '3RI«F 3*.SCRIPTION OF THE DRAWINGS Figure 1 illustrates a represencacive embodiment of the disclosed system for facilitating in:eractive virtual or augmented reality environments for le users.
Figure 2 illustrates an example of a user device for interacting with the system illustrated in Figure 1.
Figure 3 illustrates an example ment of a mobile, wearable user device.
Figure 4 il:_ustrates an example of objects viewed by a user when the mobile, wearable user device of Figure 3 is ing in an ted riode.
Figure 5 il:_ustrates an example of objects viewed by a user when the mobile, wearable user device of Figure 3 is operating in a virtual mode.
Figure 6 illustrates an example of objects viewed by a user when the mobile, wearable user device of Figure 3 is operating in a blended virtual interface mode.
Figure 7 illustrates an embodimen: wherein two users located in differen : geographical locations each interact with the other user and a common virtual world through their r sp ctiv us r d vic s.
Figure 8 illustrates an ment wherein the ment of Figure 7 is expanded to include the use of a haptic device.
Figure 9A illustrates an example of mixed mode interfacing, wherein a first user is acing a digital world in a blended virtual interface mode and a second user is interfacing the same digital world in a virtual reality mode.
Figure 93 illustrates another example of mixed mode interfacing, wherein the first user is interfacing a digital world in a blended virtual interface mode and the second user is interfacing the same digital world in an augmented reality mode.
Figure 10 illustrates an example illustration of a user's view when interfacing the system in an augmented reality mode.
Figure 11 illustrates an example illustration of a user's view showing a virtual object triggered by a physical object when the user is interfacing the system in an augmented reality mode.
Figure 12 illustrates one embodiment of an ted and virtual reality integration configuration wherein one user in an augmented reality experience visualizes the ce of another user in a virtual realty experience.
Figure 13 illustrates one embodiment of a time and/or contingency event based augmented reality experience uration.
Figure 14 illustrates one embodiment of a user y uration suitable for l and/or augmented reality experiences.
Figure 15 illustrates one embodiment of local and cloud— based computing coordination.
Figure 16 illustrates s aspects of registration configurations.
D «.TAIT. «.D D «.SCRIPTION Referring to Figure 1, system lOO is representative hardware for enting processes described below. This representative system comprises a ing network 105 comprised of one or more computer servers 0 ted h one or more high bandwidth interfaces 115. The servers in the computing network need not be co—located. The one or more servers 110 each comprise one or more processors for executing m instructions. The servers also include memory for g the m instructions and data that is used and/or generated by processes being carried out by the servers under direction of the program instructions.
The computing network 105 communicates data n the servers 110 and between the servers and one or more user devices 120 over one or more data network conneCtions 130. Examples of such data networks include, without limitation, any and all types of public and private data networks, both mobile and wired, including for xampl th int rconn Ction of many of such networks commonly referred to as the Internet. No particular media, topology or protocol is intended to be implied by the figure.
User devices are configured for communicating directly with computing network 105, or any of the servers 110. Alternative'y, user devices 120 communicate with the remote servers 110, and, optionally, with other user devices y, h a specially programmed, local gateway 140 for processing data and/or for communicating data between the network l05 and one or more local user devices 120.
As illustrated, gateway 40 is imp'emented as a separate hardware component, which includes a processor for executing software instructions and memory for storing software instructions and data. The gateway has its own wired and/or wireless connection to data networks for communicating with the servers llO comprising computing network 105. Alternatively, gateway l40 can be integrated with a user device 120, which is worn or carried by a user. For example, the gateway 140 may be ented as a downloadable software application installed and running on a processor ed in the user device 120. The gateway 140 provides, in one embodiment, one or more users access to the computing k 105 via the data network 130.
Servers 110 each include, for example, working memory and storage for storing data and software programs, microprocessors for executing m instructions, graphics processors and Other special processors for rendering and generating graphics, images, video, audio and multi—media files. ing network 105 may also comprise devices for storing data that is accessed, used or created by the servers 110.
Software programs running on the servers and optionally user devices 120 and gateways 140, are used to generate digital worlds (also referred to herein as virtual worlds) with which users interact with user devices 120. A digital world is represented by data and processes that describe and/or define virtual, istent entities, environments, and conditions that can be presented to a user through a user device l20 for users to experience and interact with. For example, some type of object, entity or item that will appear to be physically present when instantiated in a scene being viewed or enced by a user may include a ption of its appearance, its behavior, how a user is permitted to interact with it, and Other characteristics. Data used to create an environment of a virtual world (including virtual s) may e, for example, WO 85639 2012/062500 atmospheric data, terrain data, weather data, temperature data, location data, and other data used to define and/or be a virtial environment. Additionally, data defining various conditions that govern the operation of a virtual world may inclide, for example, laws of physics, time, spatial relationships and other data that may be used to define and/or create various conditions that govern the operation of a virtual world (including l objeCts).
The entity, objeCt, condition, characteristic, or or other feature of a digital world will be cally referred to herein, unless the context indicates otherwise, as an object (e.g., digital object, virtual object, rendered physical objeCt, etc.). ObjeCts may be any type of animate or inanimate object, including but not limited to, buildings, plants, vehicles, people, animals, creatures, machines, data, video, text, pictures, and other users. Objects may also be defined in a l world for storing ation about items, behaviors, or conditions aCtually present in the physical world. The data that describes or defines the entity, object or item, or that stores its t state, is generally referred to herein as object data. This data is processed by the servers 110 or, depending on the implementation, by a gateway l40 or user device l70, to instantiate an instance of the object and render the object in an appropriate manner for th us r to xp ri nc through a user device. mmers who develop and/or curate a digital world create or define objects, and the conditions under which they are instantiated. However, a digital world can allow for others to create or modify objects. Once an object is instantiated, the state of the object may be permitted to be altered, controlled 2012/062500 or manipulated by one or more users experiencing a digital world.
For example, in one embodiment, pment, production, and administration of a digital world is generally provided by one or more system administrative programmers. "n some embodiments, this may inclide development, design, and/or execution of story lines, themes, and events in the digital worlds as well as distributior of narratives through various forms of events and media suct as, for example, film, digital, network, mobile, augmented reality, and live ainment. The system administrative programmers may also handle technical administration, moderation, ard curation of the digital worlds and user communities associated therewith, as well as other tasks typically performed by retwork administrative personnel.
Users interact with one or more l wor'ds using some type of a local computing device, which is generally ated as a user device 170. ixamp'es of such user devices include, but are not limited to, a smart phone, tablet device, heads—up display ({UD), gaming console, or any other device capable of communicating data and providing an interface or display to the user, as well as combinations of such s. In some embodiments, the user device 120 may include, or communicate with, local peripheral or outpit components such as, for example, a keyboard, mouse, joystick, gaming controller, haptic interface device, motion capture controller, an optical tracking device such as those available from leap , lnc., or those available from Microsoft under the tradename KineCt (RTM), audio equipment, voice equipment, projector system, 3D display, and holographic 3D contact lens.
An e of a user device 170 for interacting with the system 100 is illustrated in Figure 2. In the example embodiment shown in Figure 2, a user 210 may interface one or more digital worlds through a smart phone 220. The y is implemented by a software ation 230 stored on and running on the smart phone 770. "n this particular example, the data network 130 includes a wireless mobile network connecting the user device (i.e., smart phone 220) to the computer networ< 105.
In one implementation of preferred embodiment, system 100 is capable of supporting a large number of similtaneous users (e.g., millions of users), each interfacing with the same digital world, or with multiple l worlds, using some type of user device 120.
The user device es to the user an interface for enabling a visual, audible, and/or physical interaction n the user and a digital world generated by the servers llO, including other users and objects (real or virtual) presented to th us r. Th int rfac provides the user with a rendered scene that can be viewed, heard or otherwise sensed, and the ability to interact with the scene in real—time. The manner in which the Jser interacts with the rendered scene may be ed by the capabilities of the user device. For example, if the user device is a smart phone, the user interaction may be implemented by a user contacting a touch screen. In another example, if the user device is a er or gaming console, the user interaction may be implemented using a keyboard or gaming controller. User devices may include additional ents that enable user interaction such as sensors, wherein the objects and information (including geStures) deteCted by the sensors may be provided as input representing user interaction with the virtual world using the user device.
The rendered scene can be presented in various formats such as, for example, two—dimensional or three—dimensional visual displays (including projections), sound, and hap':ic or tactile ck. The rendered scene may be interfaced by the user in one or more modes including, for example, augmented reali 3Y1 virtual reality, and combinations thereof. The format of the rendered scene, as well as the interface modes, may be dictated by one or more of the following: Jser device, data processing capability, user device connectivity, network ty and system workload. Having a large nimber of isers simultaneously interacting with the digital worlds, and the real—time na :ure of the data ge, is enabled by the computing network 105, servers 110, the gateway component 140 (optiona" y) , and the user device 120.
In one e, the computing network 105 IS comprised of a large—scale computing system having single and/or multi—core servers (i.e., servers 1l 0) connected through high—speed tions (e.g., high bandwidth interfaces 115). The computing network 105 may form a cloud or grid network. Each of the servers inclides memory, or is coupled with computer readable memory for storing re for imp:_ementing data to create, design, alter, or process objects of a digital world. These objeCts and their instantiations may be dynamic, come in and out of existence, change over time, and change in response to other ions. -—|anmples of dynamic capabili :ies of the objects are generally discussed herein with respect to various embodiments.
In some embodiments, each user interfacing the system 100 may also be represented as an object, and/or a tion of objeCts, within one or more digital worlds.
The servers 110 within the compu':ing network 105 also store ational state data for each of the digital worlds. The computational state data (also referred to herein as state data) may be a component or the object data, and generally defines the state of an inStance of an objeCt at a given instance in time.
Thus, the computational state data may change over time and may be impacted by the actions of one or more users and/or programmers maintaining the system 100. As a user impaCts the computational state data (or other data sing the digital worlds), the user directly a'ters or otherwise manipulates the digital world. If the digital world is shared with, or interfaced by, other users, the actions of the user may affect what is experienced by other users interaCting with the digital world. Thus, in some embodiments, s to the digital world made by a user will be experienced by other users acing with the syStem 100.
The data stored in one or more s 110 within the computing k 105 is, in one embodiment, transmitted or deployed at a high—speed, and with low latency, to one or more user devices 120 and/or gateway ents 140. In one embodiment, object data shared by servers may be te or may be compressed, and contain instructions for recreating the full object data on th us r sid r , nd r d and visualized by the user's local computing device (e.g., gateway "40 and/or user device "20). Software rinning on the servers "10 of the computing network 105 may, in some embodiments, adapt the data it generates and sends to a particular user's device 120 for objeCts within the digital world (or any other data exchanged by the computing network 105) as a function of the user's specific device and bandwidth. For e, when a user interacts with a digital world through a user device 120, a server 110 may recognize the specific type of device being used by the user, the device's connectivity and/or available bandwidth between the user device and server, and appropriately size and balance the data being delivered to the device to optimize the user ction. An example of this may include reducing the size of the transmitted data to a low resolution quality, so tha the data may be yed on a particular user device having a low resolution display. "n a preferred embodiment, the computing network 105 and/or gateway componen 140 deliver data to the user device 120 at a rate ien : to present an interface operating at 15 frames/second or higher, and at a resolution that is high definition quality or greater.
The gateway 140 provides local connection to the computing k 105 for one or more users. In some embodiments, it may be implemented by a downloadable software application that runs on the user device "20 or another local device, such as that shown in Figure 2. In other embodiments, it may be ented by a hardware component (with appropria:e software/firmware s tored on the component, the component raving a processor) that is either in communication with, but nOt incorporated with or a tracted to, the user device 70, Ol" ir COrporaLed wi oh the user device 120. The gateway 140 communicates with the computing network "05 via the data network 130, ar d es data exchange between he computing network "05 and or e or more local user devices "20. As discussed in greater detail below, the gateway ent 140 may include software, firnware, memory, and processing try, and may be e of processing data communicated between the network 105 and one or more local user devices 120.
In some embodiments, the gateway ent 140 monitors and regulates the rate of the data exchang d b tw n th us r d vic 120 and the computer network 105 to allow optimum data processing capabilities for the particular user device 170. For example, in some embodiments, the gateway 140 buffers and downloads both static and dynamic aspects of a digital world, WO 85639 even those that are beyond the field of view presented to the user through an interface connected with the user device. In such an embodiment, ces of static objects tured data, software implemented methods, or bOth) may be stored in memory (local to the gateway component 140, the user device 120, or both) and are referenced against the local user's t position, as indicated by data provided by the computing network 105 and/or the user's device 120. ces of dynamic objects, which may include, for example, intelligent software agents and objects controlled by other users and/or the local user, are stored in a high—speed memory buffer. Dynamic objects representing a two—dimensional or three—dimensional object within the scene presented to a user can be, for example, broken down into component shapes, such as a static shape that is moving but is not changing, and a dynamic shape that is changing. The part of the dynamic object that is changing can be updated by a real—time, threaded high priority data stream from a server 110, throagh computing k 105, managed by the gateway component 140. As one example of a prioritized threaded data stream, data that is within a 60 degree field—of—view of the user's eye may be given higher priority than data that is more peripheral. Another example includes prioritizing dynamic ters and/or objects within the user's field—of—view over static s in the background.
In addition to managing a data connection between the computing network 105 and a user device 120, the gateway component "40 may store and/or process data that may be presented to the user device 120. For example, the gateway component "40 may, in some embodiments, receive compressed data describing, for example, graphical s to be rendered for viewing by a user, from the computing network 105 and perform advanced rendering techniques to alleviate the data load transmitted to the user device 120 from the computing network 05. "n another example, in which gateway 140 is a separate device, the gateway 140 may store and/or process data for a local instance of an object rather than transmitting the data to the compiting network l05 for smg.
Re ferring now also to Figure 3, the digital worlds may be experienced by one or more users in various formats that may depend upon the capabilities of the user's device. In some embodiments, the user device 120 may include, for example, a smart phone, tablet device, heads—up display (HUD), gaming console , or a wearable device. Generally, the user device will e a processor for executing program code stored in memory on the , coupled with a display, and a communications ace. An example embodiment of a user device is illustrated in Figure 3, wh r in th us r d vic ses a mobile, le device, namely a head—mounted display system 300. In accordance with an embodiment of the present disclosure, the head—mounted display system 300 includes a user ace 302, user—sensing system 304, environment—sensing system 306, and a processor 308. Although the processor 308 is shown in Figure 3 as an isolated component separate from the ounted system 300, in an alternate embodiment, the processor 308 may be integrated with one or more components of the head—mounted system 300, or may be integrated into Other system 100 components such as, for e, the gateway 140.
Th us r d vic pr s nts to the user an interface 302 for interac ting with and experiencing a digital world. Such interac tion may involve the user and the digital world, one or more other users interfacing the system 100, and objects within the digital world. The interface 302 generally provides image WO 85639 and/or audio sensory input (and in some ments, physical sensory input) to the user. Thus, the interface 302 may e speakers (nOt shown) and a y component 303 capable, in some embodiments, of enabling stereoscopic 3D viewing and/or 3D viewing which embodies more natural characteristics of the human vision system. In some embodiments, the display component 303 may comprise a transparent ace (such as a clear 011D) which, when in an "off' setting, enables an optically correct view of the physical environment around the user with little—to— no optical distortion or computing overlay. As discussed in greater detail below, the interface 302 may include additional settings that allow for a variety of visual/interface performance and functionality.
The Jser—sensing system 304 may include, in some embodiments, one or more sensors 310 operable to detect certain es, characteristics, or information related to the individual user wearing the system 300. For example, in some embodiments, the sensors 310 may e a camera or l detection/scanning circuitry capable of detecting real—time optical characteristics/measurements of the user such as, for example, one or more of the following: pupil constriction/dilation, angular measurement/positioning of each pupil, spherocity, eye shape (as eye shape changes over time) and other anatomic data. This data may provide, or be used to calculate, information (e.g., the user's visual focal point) that may be used by the head—mounted system 300 and/or interface syStem 100 to optimize the user's viewing experience. For example, in one embodiment, the sensors 310 may each measure a rate of pupil ction for each of the user's eyes. This data may be transmitted to the processor 308 (or the gateway component 140 or to a server 110), wherein the data is used to determine, for example, the user's reaction to a brightness setting of the interface display 303. The interface 302 may be adjusted in accordance with the user's reaCtion by, for example, dimming the display 303 if the user's reaction tes that the brightness level of the display 303 is r too high. The user— sensing system 304 may inclide other components other than those discussed above or rated in Figure 3. For example, in some embodiments, the user—sensing system 304 may include a microphone for receiving voice input from the user. The user sensing system may also include one or more infrared camera sensors, one or more e spectrum camera sensors, structured light emitters and/or sensors, infrared light emitters, coherent light emitters and/or s, gyros, accelerometers, magnetometers, proximity sensors, GPS sensors, ultrasonic rs and deteCtors and haptic interfaces.
The environment—sensing system 306 includes one or more sensors 312 for ing data from the physical nment around a user. Objects or information detected by the sensors may be provided as input to the user device. In some embodiments, this input may ent user interaCtion with the virtual world. For e, a user viewing a virtual keyboard on a desk may gesture with his fingers as if he were typing on the virtual keyboard. The motion of the fingers moving may be captured by the sensors 312 and provided to the user device or syStem as input, wherein the input may be used to change the virtual world or create new virtual objeCts. For example, the motion of the fingers may be recognized (ising a software program) as typing, and the recognized gesture of typing may be combined with the known location of the virtual keys on the virtual keyboard. The system may then render a virtual monitor displayed to the user (or other users interfacing the system) wherein the virtua' monitOr ys the text being typed by the user .
The s 3l2 may include, for example, a lly outward—facing camera or a scanner for reting scene information, for example, through continuously and/or ictencly projected infrared structured light. The environment—sensing system 306 may be used for mapping one or more elements of the physical environment around the user by detecting and ering the local environment, including static objects, dynamic objects, people, gestures and various lighting, atmospheric and acoustic conditions. Thus, in some embodiments, the environment—sensing syStem 306 may include image—based 3D reconstruction software embedded in a local computing syStem (e.g., gateway ent 140 or processor 308) and operable to lly reconstruct one or more objects or information detected by the sensors 312. In one exemplary embodiment, the environment—sensing system 306 provides one or more of the following: mOtion e data (including gesture recognition), depth sensing, facial recognition, object recognition, unigu obj Ct f atur r cognition, voice/audio recognition and processing, acoustic source localization, noise reduction, infrared or similar laser projection, as well as monochrome and/or color CMOS sensors (or other similar sensors), field—of—view sensors, and a variecy of ocher optical—enhancing sensors. It should be appreciated chac the environment—sensing system 306 may include Other componencs ocher than those discussed above or illuscraced in Figire 3. For e, in some embodiments, the environment—sensing system 306 may include a microphone for receiving audio from the local environment. The user sensing system may also include one or more infrared camera sensors, one or more visible spectrum camera sensors, structure night emitters and/or sensors, infrared light emitters, coherent light emit cers and/or sensors gyros, accelerometers, magnetometers, proximity sensors , GPS sensors, ultrasonic emitters and detec tors and haptic interfaces.
As mentioned above, the processor 308 may, in some embodiments \ be in:egrated with o:her components of the head— mounted system 300, integrated wi':h other ents of the interface system 100, or may be an isolated device (wearable or separate from the user) as shown in Figure 3. The processor 308 may be conneCted to s components of the head—mounted system 300 and/or components of the interface system 100 through a physical, wired connection, or through a wireless connection such as, for e, mobile network connections (including cellular telephone and data ks), Wi—Fi or Bluetooth. The sor 308 may include a memory module, ated and/or additional graphics processing unit, wireless and/or wired internet conneCtivity, and codec and/or firmware e of orming data from a source (e.g., the computing network 105, the user—sensing system 304, the environment— sensing system 306, or the gateway component 140) into image and audio data, wherein the images/video and audio may be presented to the user via the interface 302.
The processor 308 handles da:a processing for the various components of the headmounted sys :em 300 as well as data exchange between the head—mounted system 300 and the gateway component 140 and, in some embodiments, the compiting network 105. For exampl er the processor 308 may be used to buffer and process data streaming between the user and the computing network 105, thereby enabling a smooth, continuoas and high fidelity user experience. In some embodimen us, the processor 308 may s data at a rate ient to achieve anywhere between 8 frames/second at 320x240 tion to 24 frames/second at high definition resolution (1780x770), or greater, such as 60—120 frames/second and 4k resolution and higher (10k+ resolution and 50,000 frames/second). Additionally, the processor 308 may store and/or process data that may be presented to the user, rather than streamed in real—time from the ing network 105. For example, the processor 308 may, in some embodiments, receive compressed data from the computing network 105 and perform advanced ing techniques (such as lighting or shading) to alleviate the data load transmitted to the user device 120 from the computing network 105. In another example, the sor 308 may store and/or process local object data rather than transmitting the data to the gateway component 140 or to the compiting network 105.
The head—mounted system 300 may, in some embodiments, include various settings, or modes, that allow for a variety of visual/interface performance and funCtionality. The modes may be selected manually by the user, or automatically by components of the head—mounted system 300 or the gateway component 140. As previously mentioned, one example of unted system 300 includes an "off' mode, wherein the interface 302 provides substantially no digital or virtual content. In the off mode, the display component 303 may be transparent, y ng an optically correct view of the physical environment around the user with little—to—no optical tion or ing overlay.
In one example embodiment, the head—mounted system 300 includes an "augmented" mode, wherein the interface 302 provides an augmented reality interface. In the augmented mode, the interface display 303 may be substantially transparent, thereby allowing the user to view the local, physical environment. At the same time, virtual object data provided by the computing network 105, the processor 308, and/or the gateway ent 140 is presented on the display 303 in combination with the physical, local environment.
Figure 4 illustrates an example embodiment of objects viewed by a us r wh n th int rfac 302 is operating in an augmented mode. As shown in Figure 4, the interface 302 presents a physical objeCt 402 and a l object 404. In the embodiment illustrated in Figure 4, the physical objeCt 402 is a real, physical object existing in the local environment of the user, whereas the virtual object 404 is an object d by the system 100, and displayed via the user interface 302. In some embodiments, the virtual objeCt 404 may be displayed at a fixed position or location within the physical environment (e.g., a virtual monkey s:anding nex-t to a particular stree sign located in the physical environmentV I or may be displayed to the user as an object located at a posi :ion rela:ive to the user ace/disp:_ay 303 (e .g., a l clock or thermometer visible in the upper, left comer of the display 303).
In some iments, virtual objects may be made to be cued off of, or d by, an object physically present wi'thin or outside a user's field of view. l object 404 is cued off, or triggered by, the physical object 402. For example, the physical object 402 may actually be a stool, and the virtual object 404 may be displayed to the user (and, in some embodiments, to other users interfacing the system l 00) as a virtual animal standing on the stool. ln s JCh an embodiment, the environment—sensing system 306 may use sof:ware and/or firmware stored, for example, in the processor 308 to recognize various features and/or shape pa':terns (captured by the sensors 312) to identify the al object 402 as a stool. These recognized shape patterns such as, for example, the stool top, may be used to trigger the placement of the virtual object 404. Other examples include walls, , furniture, cars, buildings, people, floors, plants, animals — any object which can be seen can be used to trigger an augmented reality experience in some relationship to the objeCt or objects.
In some embodiments, the ular virtual object 404 that is triggered may be seleCted by the user or automatically selected by Other components of the head—mounted system 300 or interface syStem 100. Additionally, in embodiments in which the virtual objeCt 404 is automatically triggered, the particular virtual objeCt 404 may be selected based upon the particular physical objeCt 402 (or feature thereof) off which the virtual objeCt 404 is cued or triggered. For example, if the physical objeCt is identified as a diving board extending over a pool, the triggered virtual objeCt may be a re wearing a l, bathing suit, floatation device, or other related items.
In r example embodiment, the head—mounted system 300 may include a al" mode, wherein the ace 302 provides a virtual reality interface. In the virtual mode, the al environment is omitted from the display 303, and virtual object data provided by the computing network 105, the processor 308, and/or the gateway component 140 is presented on the display 303. The omission of the physical environment may be accomplished by physically blocking the visual display 303 (e.g., via a cover) or h a feature of the interface 302 wherein the display 303 tions to an opaque setting. In the l mode, live and/or stored visial and audio sensory may be presented to the user through the interface 302, and the user experiences and interacts with a digital world (digital objects, other users, etc.) through the virtual mode of the interface 302. Thus, the interface provided to the user in the virtual mode is comprised of virtual objeCt data comprising a virtual, digital world.
Figure 5 illustrates an example embodiment of a user interface when the headmounted interface 302 is operating in a virtual mode. As shown in Figure 5, the user interface presents a virtual world 500 comprised of digital s 510, wherein the l objeCts 510 may include atmosphere, weather, terrain, buildings, and people. AlthOJgh it is not illustrated in Figure 5, l objects may also include, for example, plants, vehicles, animals, creatures, machines, artificial intelligence, location information, and any other object or information defining the virtual world 500.
In another example embodiment, the head—mounted syStem 300 may include a "blended" mode, wherein various features of the head—mounted system 300 (as well as features of the virtial and augmented modes) may be combined to create one or more CJS:Om interface modes. In one example cuStom interface mode, the physical environment is omitted from the display 303, and virtual object data is presented on the y 303 in a manner similar to the virtial mode. However, in this example custom interface mode, l objeCts may be fully virtual (i.e., they do not exiSt in the local, physical environment) or they may be real, local, physical objects rendered as a virtial object in the interface 302 in place of the physical . Thus, in this particular custom mode (referred to herein as a blended l interface mode), live and/or Stored visual and aidio sensory may be presented to the user through the ace 302, and the user ences and interacts with a digital world sing fully virtual objeCts and rendered physical objects. 2012/062500 Figure 6 illustrates an example embodiment of a user interface operating in ance with the blended virtual interface mode. As shown in Figure 6, the user interface presents a virtual world 600 comprised of fully l objects 610, and rendered physical objeCts 620 (renderings of objects otherwise physically t in the . In accordance with the example illustrated in Figure 6, the rendered physical objeCts 620 include a building 620A, ground 6203, and a platform 620C, and are shown with a bolded oatline 630 to te to the user that the objects are rendered. Additionally, the fully virtual objects 610 include an additional user 610A, clouds 6103, sun 610C, and flames 610D on top ofthe p'atform 620C. "t shoald be appreciated that fully virtual objects 610 may include, for example, atmosphere, weather, terrain, ngs, peop'e, p'ants, vehicles, animals, creatures, machines, artificial intelligence, location information, and any other object or information defining the virtual world 600, and not rendered from objects existing in the local, physical environment. Conversely, the rendered physical s 620 are real, local, physical objects rendered as a virtual object in the interface 302. The bolded outline 630 represents one example for indicating rendered physical objects to a user. As such, the rendered physical objects may be indicated as such using methods other than those disclosed herein.
In some embodiments, the rendered al objects 620 may be ed using the sensors 312 of the nment—sensing system 306 (or using Other devices such as a motion or image capture system), and converted into digital objeCt data by software and/or firmware stored, for example, in the processing circuitry 308. Thus, as the user interfaces with the system 100 in the d virtual interface mode, various physical objects may be displayed to the user as rendered physical objeCts. This may be especially useful for allowing the user to interface with the system lOO, while still being able to safely navigate the local, physical environment. In some embodiments, the user may b abl to s l ctiv ly r mov or add the rendered physical objects to the interface display 303. ln anOther example custom int rfac mod , th int rfac y 303 may be substantially transparent, thereby allowing the user to view the local, physical environment, while various local, physical objects are displayed to the user as rendered physical object s. This example custom interface mode is r to the augmented mode, except that one or more of the virtual s may be rendered physical objects as discussed above with t to the previous example. rThe foregoing example custom int rfac mod s r pr s nt a few example embodiments of s custom interface modes capable of being provided by the blended mode of the head— mounted system 300. Accordingly, various Other custom interface modes may be created from the various combination of features and functionality provided by the ents of the headmounted system 300 and the s modes discussed above without ing from the scope of the t disclosure. rThe embodiments discuss d h r in m r ly d scribe a few examples for providing an interface operating in an off, augmented, virtual, or blended mode, and are nOt intended to limit the scope or content of th r sp ctiv int rfac mod s or the functionality of the ents of the head—mounted system 300. For example, in some embodiments, the virtJal objects may include data displayed to the user (time, temperature, elevation, etc. ), objeCts created and/or seleCted by the system 100, objeCts created and/or selected by a user, or even objects representing o:her users interfacing the system 100.
Additionally, the l objects may include an extension of physical obje Cts (e.g., a virtual sculpture g from a physica' p'at form) and may be visually connected to, or disconnected from, a physical object.
The vir':ual objects may also be dynamic and change with time, change in accordance with various relationships (e.g., location, dis:ance, etc.) between the user or other users, physical objects, and other virtual objects, and/or change in ance wi':h other variables specified in the software and/or firmware of the head—mounted system 300, gateway component 140, or servers ll O. For e, in certain embodiments, a virtual objec may respond to a user device or component f (e.g., a virtual bal_l moves when a hap':ic device is placed next to it), physical or verbal user interaction (e.g., a virtial creature runs away when the user ches iV! or speaks when the user speaks to it) I a chair is thrown at a virtual creature and the creature dodges the chair, other virtual objects (e.g., a first virtual creature reacts when it sees a second virtual creature), al variabl_es such as location, distance, ature, time, etc. or other physical objects in the user's environment (e.g., a vir':ual creature shown standing in a physical street becomes flat:ened when a physical car passes).
The various modes discussed herein may be applied to user devices other than the head—mounted system 300. For example, an augmented reality in :erface may be ed via a mobile phone or tablet device. In such an embodiment, the phone or tablet may use a camera to capt are the physical environment around the user, and vir':ual objects may be overlaid on the phone/tablet display screen. Addi:ionally, the virtual mode may be provided by displaying the digital world on the display screen of the WO 85639 phone/tablet. Accordingly, these modes may be blended as to create various custom interface modes as described above using the components of the phone/tablet discussed herein, as well as other components connected to, or used in combination with, the user device. For xampl , th bl nd d virtual ace mode may be provided by a computer monitor, television screen, or Other device lacking a camera operating in ation with a motion or image capture system. In this example embodiment, the virtual world may be viewed from the monitor/screen and the object ion and rendering may be performed by the mOtion or image capture system.
Figure 7 illustrates an example embodiment of the t disclosure, wherein two users located in different geographical locations each interact with the other user and a common virtual world through th ir r sp ctiv us r d vic s. In this embodiment, the two users 701 and 702 are throwing a virtual ball 703 (a type of virtual objeCt) back and forth, wherein each user is capable of observing the impaCt of the other user on the virtual world (e.g., each user observes the virtual ball changing directions, being caught by the other user, etc.). Since the movement and location of the l s (i.e., the virtual ball 703) are tracked by the servers 110 in the computing network 105, the system 100 may, in some embodiments, communicate to the users 701 and 702 the exact location and timing of the l of the ball 703 with t to each user.
For example, if the first user 701 is located in London, the user 701 may throw the ball 703 to the second user 702 located in Los Angeles a : a velocity calculated by the system 100.
Accordingly, the system 100 may communicate to the second user 702 (e.g., via email, text message, instant message, etc.) the exact time and location of the ball's arrival. As such, the second user 702 may use his device to see the ball 703 arrive at the specified time and located. One or more users may also use geo—location mapping software (or similar) to track one or more virtual objects as they travel virtual'y across the globe. An example of this may be a user wearing a 3D head—mounted display looking up in the sky and seeing a virtual plane flying overhead, mposed on the real world. The virtual plane may be flown by the user, by intelligent software agents (software g on the user device or gateway), other users who may be local and/or remote, and/or any of these combinations.
As previously mentioned, the user device may include a haptic int rfac d vic wh r in , the haptic interface device es a feedback (e.g., resistance, vibration, lights, sound, etc.) to the user when the haptic device is determined by the system 100 to be located at a physical, spatial location ve to a virtual . For example, the embodiment described above with respec : to Figure 7 may be expanded to include the use of a haptic device 802, as shown in Figure 8.
In this example embodiment, the haptic device 802 may be displayed in the l world as a baseball bat. When the ball 703 arrives, the user 702 may swing the haptic device 802 at the virtual ball 703. If the system 100 determines that the virtual bat provided by the haptic device 802 made "contact" with the ball 703, then the haptic device 802 may vibrate or provide other feedback to the user 702, and the virtual ball 703 may ricochet off the virtual bat in a direCtion calculated by the system 100 in accordance wi':h the detected speed, direction, and timing of the o—ba': contact.
The disclosed sys :em 100 may, in some embodiments, facilitate mixed mode acing, wherein multiple users may interface a common vir :ual world (and virtual objects contained therein) using different interface modes (e.g., augmented, virtual, blended, etc.). For example, a first user interfacing a particular virtual world in a virtual interface mode may ct with a second user interfacing the same virtual world in an augmented reality mode.
Figure 9A illustrates an example wherein a firSt user 90l (interfacing a digital world of the syStem 100 in a blended virtual interface mode) and firSt objeCt 902 appear as virtual objects to a second user 922 interfacing the same digital world of the syStem 100 in a fill virtia' rea'ity mode. As described above, when interfacing the digita' wor'd via the blended virtual interface mode, local, physical objects (e.g., first user 901 and first objeCt 902) may be d and rendered as virtual s in the virtual world. The first user 901 may be scanned, for e, by a motion capture system or r device, and rendered in the virtual world (by software/firmware stored in the motion capture system, the gateway component 140, the user device 120, syStem s 110, or other devices) as a first rendered physical object 931. Similarly, the first object 902 may be scanned, for example, by the environment—sensing syStem 306 of a head—mounted interface 300, and rendered in the virtual world (by software/firmware stored in the sor 308, the gateway component 140, system servers l10, or other devices) as a second rendered physical object 932. The first user 901 and first object 902 are shown in a first portion 910 of Figure 9A as physical objects in the physical world. In a second portion 920 of Figure 9A, the first user 901 and firSt object 902 are shown as they appear to the second user 922 interfacing the same l world of the syStem 100 in a full virtual reality mode: as the first rendered physical object 93l and second ed physical object 932.
Figure 93 illustrates another example ment of mixed mode interfacing, wherein the first user 901 is interfacing the digital world in a blended virtual interface mode, as sed above, and the second user 922 is interfacing the same l world (and the second user's physical, local nment 925) in an augmented reality mode. In the embodiment in Figure 93, the first user 901 and first object 902 are located at a first physical location 915, and the second user 922 is located at a different, second physical location 925 separated by some distance from the first location 915. "n this embodiment, the virtual objects 931 and 932 may be transposed in realtime (or near real—time) to a on wi'thin the virtual world corresponding to the second lo ca':ion 925. Thus, the second user 922 may observe and interact, in the second user's physical, local environment 925, with the rendered physical objeCts 931 and 932 representing the first user 901 and first ObjeC" 902, respectively.
Figure 10 illustrates an example illustration of a user's view when interfacing the system 100 in an ted reality mode. As shown in Figure 10, the user sees the local, physical ervironment (i.e., a city having multiple biildings) as well as a virtual character 10 0 (i.e ' I l object). The position of tte virtual character 010 may be triggered by a 2D visual target (for example, a billboard, postcard or magazine) and/or ore or more 3D nce frames such as buildings, cars, people, arimals, airplanes, portions of a building, and/or any 3D ptysical , virtual objeCt, and/or combinations thereof. In tte example illustrated in Figire 10, the known position of the buildings in the city may provide the ration fiducials ard/or information and key fea :ures for rendering the virtual ctaracter 1010. Additionally, the user's geospatial location WO 85639 (e.g., provided by GPS, attitude/position sensors, etc.) or mobi1e 1ocation re1ative to the ngs, may comprise data used by the computing networ< 105 to trigger the transmission of data used to display the virtua1 character(s) 10 0. "n some ments, the data used to display the virtua' character 1010 may comprise the rendered character 1010 and/or instructions (to be carried out by the gateway component 140 and/or user device 120) for rendering the virtual character 010 or portions thereof. In some embodiments, if the geospatial location of the user is lable or unknown, a server 0, gateway component l40, and/or user device 120 may still display the virtual object l010 using an estimation algorithm that estimates where particular virtual objeCts and/or physical objects may be located, using the user's last known position as a function of time and/or other ters. This may a:_so be used to determine the on of any virtial objects shoul_d the user's sensors become occluded and/or experience other rialfunctions.
In some embodiments, virtual characters or virtual objects may comprise a virtual statue, n the rendering of the virtual statue is triggered by a physical . For example, referring now to Figure 11, a virtual statue 10 may be triggered by real, physical platform 1l20. _‘The a triggering of the statue l110 may be in response to a visual object or feature (e.g., fiducials, design features, ry, patterns, physical location, altitude, etc.) detected by the user device or other components of the system 100. When the user views the rm 70 without ch us r d vic r , th us s s th platform l120 with no statue 1110. lowever, when the user views the platform 70 through th us r d vic s eh statue 1 , th us r s 0 on the platform 1120 as shown in Figure 11. The statue 1110 is a virtual objeCt and, therefore, may be stationary, animated, change over time or with respect to the user's viewing on, or even change depending upon which particular user is viewing the statue 1110. For example, if the user is a small child, the statue may be a dog; yet, if the viewer is an adult male, the sea cue may be a large robot as shown in Figure ll. These are examples of user dependent and/or stat d p nd nt xp ri nc s.
This will enable one or more users to perceive one or more virtual objects alone and/or in combination with physical objects and experience customized and personalized ns of the virtual objects. The statue 10 (or portions thereof) may be rendered by various ents of the system including, for example, software/firmware insta"ed on the Jser device. Using data indicating the location and attitude of the user device, in combination with the registration features of the virtual object (i.e., statue lllO), the virtual object (i.e., statue l 0) forms a relationship with the physical object (i.e., platform 1120). For example, the relationship between one or more virtual objects with one or more physical objeCts may be a function of distance, positioning, time, geo— location, proximity to one or more otter virtual objects, and/or any Other functional relatior ship that includes virtual and/or physical data of any kind. Ir some embodiments, image ition re in the user device may further enhance the digital—to—physical object relatiorship.
The ctive ace provided by the disclosed system and met? od may be implemented to tate various aCtivities such as, for example, interacting with one or more virtual environments and objects, interacting with other users, as well as experiencing various forms of media content, including advertisements, music ts, and movies. Accordingly, the disclosed system facilitates user interaction such that the user not only views or s to the media content, but rather, aCtively participates in and experiences the media content. In some embodiments, the user participation may include altering existing content or creating new content to be rendered in one or more virtial worlds. "n some embodiments, the media content, and/or users creating the content, may be themed around a mythopoeia of one or more virtual worlds.
In one example, musicians (or other users) may create musical content to be rendered to users interacting with a partiCJlar virtua' wor'd. The musical t may e, for example, variOJs singles, EPs, albums, , short films, and concert performances. In one example, a large number of users may interface the system 100 to aneously experience a virtual concert performed by the musicians.
In some embodiments, the media produced may contain a unique identifier code associated with a particular entity (e.g., a band, , user, etc.). The code may be in the form of a set of alphanumeric characters, UPC codes, QR codes, 2D image triggers, 3D physical object feature triggers, or other digital mark, as well as a sound, image, and/or both. In some embodiments, the code may also be embedded with digital media which may be interfaced using the sys :em 100. A user may obtain the code (e.g., via t of a fee) and redeem the code to access the media content produced by the entity associated with the identifier code. The media conten : may be added or removed from the user's interface.
In one embodiment, to avoid the computation and bandwidth limitations of passing reaitime or near reaitime video data from one computing system to another with low latency, such as from a cloud computing system to a local processor coupled to a Jser, parametric information regarding various shapes and geometries may be transferred and utilized to define es, while textures maybe transferred and added to these surfaces to bring about Static or dynamic detail, such as bitmap—based video detail of a person’s face mapped upon a parametrically reproduced face geometry. As another example, if a system is configured to recognize a person’s face, and knows that the person’s avatar is located in an augmented world, the system may be configured to pass the ent world ation and the person’s avatar information in one relatively large setup er, after which remaining transfers to a local computing system, such as that 308 depicted in Figure 1, for 'ocai rendering may be limited to parameter and texture updates, such as to motion parameters of the person’s skeletal struCture and moving bitmaps of the person’s face — all at orders of magnitude less bandwidth relative to the initial setup transfer or passing of realtime video. Cloud—based and 'oca' computing assets thus may be Jsed in an integrated fashion, with the cloud handling computation that does not require re'atively low latency, and the local processing assets ng tasks wherein low latency is at a m, and in SJCh case, the form of data transferred to the local s preferably is passed at relatively low bandwidth due to the form an amount of such data (i.e., tric info, es, etc versus realtime video of everything).
Qeferring ahead to Figure l5, a schematic illustrates coordination between cloud computing assets (46) and local processing assets (308, 120). In one embodiment, the cloud (46) assets are operatively coupled, such as via wired or wireless networking (wireless being preferred for mobility, wired being preferred for certain high—bandwidth or high—data—volume transfers that may be desired), directly to (40, 42) one or both of the local computing assets (120, 308), such as processor and memory configurations which may be housed in a structure configured to be coupled to a user’s head (120) or belt (308).
These computing assets local to the user may be operatively d to each other as well, via wired and/or wireless connectivity configurations (44). In one embodiment, to maintain a "ow—inertia and size head moanted tem (l20), primary transfer between the user and the cloud (46) may be via the link between the belt—based subsystem (308) and the cloud, with the head mounted subsystem (120) primarily data— tethered to the belt—based subsystem (308) using ss conneCtivity, such as ultra—wideband ("UWB") connectivity, as is currently employed, for example, in personal computing peripheral tivity applications.
With efficient local and remote processing coordination, and an appropriate display device for a user, such as the user interface 302 or user "display " featured in Figure 3, the y device 14 described below in reference to Figure 14, or variations thereof, aspects of one world pertinent to a user’s current actual or virtual location may be transferred or "passed" to the user and d in an efficient fashion.
Indeed, in one embodiment, with one person utilizing a virtual reality system ("VRS") in an augmented reality mode and another person utilizing a VRS in a completely virtual mode to explore the same world local to the first person, the two users may experience one another in that world in various fashions. For example, referring to Figure 12, a scenario similar to that described in reference to Figure ll is depicted, with the addition of a visualization of an avatar 2 of a second user who is flying h the depicted augmented reality world from a comp'etely virtual reality scenario. In other words, the scene WO 85639 depiCted in Figure 12 may be experienced and displayed in augmented reality for the first person — with two augmented y ts (the sta :ue lllO and the flying bumble bee avatar 2 of the second person) displayed in addition to actual physical elements around the local world in the scene, such as the grOJnd, the buildings in the background, the statue platform 1120. Dynamic updating may be utilized to allow the first person to visualize progress of the second person’s avatar 2 as the avatar 2 flies through the wor:_d local to the first person.
Again, with a config iration as described above, wherein there is one world model that can reside on cloud computing resources and be distributed from there, such world can be "passable" to one or more users in a relative'y low bandwidth form preferable to trying to pass around realtime video data or the like. The augmented experience of the person standing near the statue (i.e., as shown in Figure 12) may be informed by the cloud—based world model, a subset of which may be passed down to them and their 'oca' display device to complete the view. A person sitting at a remote display , which may be as simple as a personal computer sitting on a desk, can ently download that same section of information from the cloud and have it rendered on their display. Indeed, one person actually present in the park near the statue riay take a remotely—located friend for a walk in that par<, with the friend joining h virtual and augmented y. The system will need to know where the Street is, wherein the trees are, where the statue is — but with that information on the cloud, the joining friend can download from the cloud aspects of the scenario, and then start walking along as an augmented reality local re'ative to the person who is actually in the park.
Referring to Figure 13, a time and/or other contingency parameter based embodiment is depicted, wherein a person is engaged with a virtual and/or augmented y interface, such as the user interface 302 or user display device featured in Figure 3, the display device 14 described below in reference to Figure 14, or ions thereof, is utilizing the system (4) and enters a coffee establishment to order a cup of coffee (6).
The VRS may be configured to e sensing and data gathering capabilities, locally and/or remotely, to provide y enhancements in augmented and/or virtual y for the person, such as highlighted locations of doors in the coffee establishment or bubble windows of the pertinent coffee menu (8). When the person receives the cup of coffee that he has ordered, or upon deteCtion by the system of some other pertinent parameter, the system may be ured to display (10) one or more time—based augmented or virtual reality images, video, and/or sound in the local environment with the display device, such as a Madagascar jingle scene from the walls and ceilings, with or without jungle sounds and other effects, either static or dynamic. Such presentation to the user may be discontinued based upon a timing parameter (i.e., 5 s after the full coffee cup has been recognized and handed to the user; 10 minutes after the system has recognized the user walking through the front door of the establishment, etc) or other parameter, such as a recognition by the system that the user has finished the coffee by noting the upside down orientation of the coffee cup as the user ingeSts the laSt sip of coffee from the cup — or recognition by the system that the user has left the front door of the establishment (12).
Referring to Figure 14, one embodiment of a suitable user display device (14) is shown, comprising a display lens (82) which may be mounted to a user’s head or eyes by a g or frame (84). The display lens (82) may comprise one or more transparent mirrors positioned by the housing (84) in front of the user’s eyes (20) and configured to bounce projected light (38) into the eyes (20) and facilitate beam g, while also allowing for transmission of at leaSt some light from the local environment in an augmented reality configuration (in a virtual reality configuration, it may be desirable for the display syStem 14 to be e of blocking substantially all light from the local environment, SJCh as by a darkened visor, blocking curtain, all black LCD panel mode, or the like). In the depicted embodiment \ two wide—field—of—view machine vision cameras (16) are coapled to the housing (84) to image the nment around the user; in one embodiment these cameras (16) are dual capture visible light / infrared light cameras.
The depicted embodiment also comprises a pair of scanned—laser shaped—wavefront (i.e., for depth) light tor modules with display mirrors and optics configured to projeCt light (38) into the eyes (20) as shown. The depicted embodiment also comprises two miniature infrared cameras (74) paired with infrared light sources (26, such as light emitting diodes "LED"s), which are configured to be able to track the eyes (20) of the user to support rendering and user input. The system (14) further features a sensor assembly (39), which may comprise X, Y, and Z axis accelerometer capability as well as a magnetic compass and X, Y, and Z axis gyro lity, preferably providing data at a relatively high frequency, such as 200 Hz. The depicted system (14) also comprises a head pose processor (36), such as an ASIC (application specific integrated circuit), FPGA (field programmable gate array), and/or ARM processor (advanced d—instruCtion—set machine), which may be configured to 2012/062500 calculate real Or eal time user head pose from wide field of view image ation output from the capture devices (16).
Also shown is another processor (32) configured to execute digital and/or analog processing to derive pose from the gyro, compass , and/or accelerometer data from the sensor assemblY (39). The depicted embodiment also es a GPS (37, global positioning satellite) subsyStem to assist with pose and positioning. Finally, the depicted embodiment comprises a rendering engine (34) which may feature re running a software program configured to provide rendering information local to the user to facilitate operation of the scanners and imaging into the eyes of the user, for the user’s view of the world. The rendering engine (34) is operatively coupled (81, 70, 76/78, 80; i.e. I via wired or wireless connectivity) to the sensor pose processor (32), the image pose processor (36), the eye ng cameras (24), and the projecting subsystem (18) such that light of rendered augmented and/or virtual y s is projected using a scanned laser arrangement ("8) in a manner similar to a retinal scanning display. The wavefront of the projected light beam (38) may be bent or focused to coincide with a desired focal distance of the augmented and/or virtual reality object. The mini infrared cameras (24) may be utilized to track the eyes to support rendering and iser input (i.e., where the user is looking, what depth he is ng; as discussed below, eye verge may be utilized to estimate depth of focus). The GPS (37), gyros, compass, and accelerometers (39) may be utilized to provide course and/or fast pose eStimates.
The camera (16) images and pose, in conjunction with data from an associated cloud computing resource, may be uti:_ized to map the local world and share user views with a virtual or augmented reality community. While much of the re in the display syStem (l4) featured in Figure 14 is depicted directly coupled to the housing (84) which is adjacent the y (82) and eyes (20) of the user, the hardware components depicted may be mounted to or housed within other ents, such as a belt— mounted component, as shown, for example, in Figure 3. In one embodiment, all of the components of the system (14) featured in Figure l4 are direCtly coupled to the display housing (84) except for the image pose sor (36), sensor pose processor (32), and rendering engine (34), and ication between the latter three and the remaining components of the system (14) may be by wireless communication, such as ultra nd, or wired communication. The depicted housing (84) preferably is head— mounted and wearable by the user. It may also feature speakers, such as those which may be inserted into the ears of a user and utilized to provide sound to the user which may be pertinent to an augmented or virtual reality experience such as the jungle sounds referred to in reference to Figure 13, and microphones, which may be utilized to captire sounds local to the user.
Regarding the projection of light (38) into the eyes (20) of the user, in one embodiment the mini cameras (24) may be utilized to m asur wh r th c nt rs of a user’s eyes (20) are geometrically verged to, which, in general, coincides with a position of focus, or "depth of focus", of the eyes (20). A 3— dimensional surface of all points the eyes verge to is called the ter". The focal distance may take on a finite number of depths, or may be infinitely g. Light projeCted from the vergence distance s to be focused to the subject eye (20), while light in front of or behind the vergence ce is blurred. Further, it has been discovered that spatially coherent light with a beam diameter of less than about 0.7 millimeters is correctly resolved by the human eye regardless of where the eye focuses; given this understanding, to create an illusion of proper focal depth, the eye vergence may be tracked with the mini cameras (24), and the rendering engine (34) and projection subsystem (18) may be utilized to render all objeCts on or close t0 the horopter in focus, and all other objects at g degrees of S (i.e., using intentionally—created ng). A see—through light guide optical element configured to project coherent light into the eye may be provided by suppliers such as Lumis, lnc. Preferably the system (14) renders to the user at a frame rate of about 60 frames per second or greater. As described above, preferably the mini cameras (24) may be utilized for eye tracking, and software may be configured to pick up not only vergence geometry but al SO focus location caes to serve as user inputs. Preferably such system is con figired with brightness and ast sui table for day or night use . In one embodiment such syStem preferably has y of le ss than about 20 econds for visual object alignment, le ss than about 0.1 degree of angular alignment, and about 1 arc minute of resolution, which is approximately the limit of the human eye. The display system (l4) may be integrated with a localization system, which may involve the GPS element, opti cal tracking, compass, accelerometer, and/or other data sources, to assist with position and pose determination; localization information may be utilized to facilitate accurate rendering in the user’s view of the pertinent world (i.e., such information would facilitate the glasses to know where they are with respect to the real .
Other suitable display device e but are not limited to desktop and mobile computers, smartphones, smartphones which may be enhanced additional with software and re features to facilitate or simulate 3—D perspective viewing (for example, in one embodiment a frame may be removably coupled to a smartphone, the frame featuring a 200 Hz gyro and accelerometer sensor subset, two small machine vision cameras with wide field of view lenses, and an ARM processor — to simulate some of the functionality of the configuration featured in Figure 14), tablet computers, tablet computers which may be enhanced as described above for smartphones, cable, ers enhanced with additional processing and sensing hardware, head—mounted systems that use smartphones and/or tablets to display augmented and virtial viewpoints (visual accommodation via magnifying optics, mirrors, contact lenses, or light structuring elements), non— see—through displays of ligh': emitting elements (LCDs, OLEDs, vertical—cavity—surface—emi,cing lasers, steered laser beams, etc), see—through displays that simultaneously allow humans to see the l world and artificially ted images (for example, light—giide optical elements, transparent and polarized OLEDs shining into close—focas t lenses, steered laser beams, etc), contact lenses with light—emitting elements (such as those available from lnnovega, Inc, of ue, WA, under the tradename loptik QTM; they may be combined with specialized complimentary sses components), implantable devices with light—emitting ts, and implantable devices that stimulate the optical receptors of the himan brain.
With a system such as tha : depicted in Figures 3 and 14, 3— D points may be captured from the environmen :, and the pose (i.e., veCtor and/or origin position informa':ion relative to the world) of the cameras that cap':ure those images or points may be determined, so that these poin :s or images may be "tagged", or ated, with this pose information. Then points captured by a second camera riay be utilized to determine the pose of the second . In other words, one can orient and/or localize a second camera based upon comparisons with tagged images from a first . Then this knowledge may be u':ilized to extract textires, make maps, and create a virtual copy of the real world (b caus th n th r ar two cameras around that are registered).
So a' the base level, in one embodiment you have a person—worn system that can be uti _ized to capture bOth 3—D points and the 2—D images that ed the points, and these points and images may be sen ou to a c _oud s:orage and processing resource.
They may also be cached y with embedded pose informa':ion (i.e., cache the tagged images); so the c:_oud may have on the ready (i.e., in available cache) tagged 2—D images (i.e., tagged with a 3—D pose), along with 3—D points. If a user is ing ing dynamic, he may also send additional ation up to the cloud pertinent to the motion (for exarIple, if looking a another person’s face, the user can take a texture map of the face and push that up a.: an optimized frequency even though the surrounding world is otherwise basically static). rThe cloud system may be configured to save some points as fiducials for pose on: y, to reduce overall pose tracking calculation. General: yi' may be desirable to have some outline features to be able to track major items in a user’s environment, such as walls, a table, etc, as the user moves around the room, and 'he user may want to be able to "share" the world and have some 0 her user walk in to that room and also see those points. Such useful and key poin :s may be termed "fiducials II because they are fair:_y useful as anchoring points — they are related to features that may be recognized wi':h machine vision, and that can be eX':racted from the world consistently and repeatedly on differen': pieces of user re. rThus these fiducials preferably may be saved to the cloud for further use.
In one embodiment it is preferable to have a relatively even distribution of fiducials throughout the pertinent world, b caus th y ar th
In one embodiment, the pertinent cloud computing uration may be configured to groom the database of 3—D points and any associated meta data periodically to use the best data from variOJs users for bOth al refinement and world creation. In Other words, the system may be configured to get the best dataset by using inputs from s users looking and functioning within the pertinent world. In one embodiment the se is intrinsically fraCtal — as users move closer to objects, the cloud passes higher resolution information to such users. As a user maps an object more closely, that data is sent to the cloud, and the cloud can add new 3—D points and image— based texture maps to the database if they are better than what has been previously stored in the database. All of this may be configured to happen from many users simultaneously.
As described above, an augmented or virtual reality experience may be based upon recognizing certain types of objects. For example, it may be important to understand that a particular object has a depth in order to recognize and tand such object. Recognizer software objects ("recognizers") may be deployed on cloud or local resources to specifically assist with recognition of s objects on either or both platforms as a user is navigating data in a world. For e, if a system has data for a world model comprising 3—D point clouds and pose—tagged images, and there is a desk with a bunch of points on it as well as an image of the desk, there may not be a determination that what is being observed is, indeed, a desk as humans would know it. In other words, some 3—D points in space and an image from someplace off in space that shows mos t of the desk may not be enough to instantly recognize tha t a desk is being observed. To assist with this identification, a specific objeC' recognizer may be created S will go into the raw 3—D point cloud, segmen ou set of points, and, for exampl e, extraCt the plane of the top surface of the desk. Similar:—Yr a recognizer rmay be crea ,ed to segment out a wall from 3—D points, so tha t a user could change wallpaper or remove part of the wall in virtual or augmented reality and have a portal to anOther room that is not actially there in the real world. Such recognizers operate within the data of a world model and may be thought of as software "robots" that crawl a wor:_d model and imbue that world model with ic information, or an ontology about what is believed to eXiSt t the points in space. Such recognizers or software robOts may be configured SJCh that th ir ntir xist nc is about going around the pertinent world of data and finding things that it believes are walls, or , or other items.
They may be configured to tag a set of points with the functional eguiva:_ent of, "this se t of points belongs to a wall", and may comprise a combination of point—based algorithm and pose—tagged image analysis for mutually informing the system regarding what is in the .
Object recognizers may be created for many purposes of varied utility, depending upon the perspective. For example, in one embodiment, a purveyor of coffee such as cks may invest in creating an accurate izer of Starbucks coffee cups within pertinent worlds of data. Such a recognizer may be configured to crawl worlds of data large and small searching for Starbucks coffee cups, so they may be segmented out and identified to a user when operating in the pertinent nearby space (i.e., perhaps to offer the user a coffee in the Starbucks oatlet right around the corner when the user looks at his Starbucks cup for a certain period of time). With the cup segmented out, it may be recognized quickly when the user moves it on his desk. Such recognizers may be configured to run or operate nOt only on cloud computing resources and data, bjt also on local resources and data, or both cloud and local, depending upon computational resources ble. "n one embodiment, there is a global copy of the world mode l on the c:_oud with millions of users contributing to that global model , but for smaller worlds or sub—worlds like an office of a particular individual in a particular town, most of the global world will not care what that office looks like, so the syster1 may be ured to groom data and move to local cache information that is believed to be most 'oca'ly pertinent to a given user.
In one embodiment, for e, when a Jser walks up to a desk, related ation (such as the segmentation of a particular cup on his table) may be configured to reside only upon his local computing resources and not on the cloud, because objects that are identified as ones that move often, such as cups on tables, need not burden the cloud model and transmission burden between the cloud and local resources. Thus the cloud ing resource may be configured to segment 3—D points and images, thus ing permanent (i.e., lly not moving) objects from movable ones, and this may affect where the associated data is to remain, where it is to be processe d, remove processing burden from the wearable/local system fo r certain data that is pertinent to more permanent objects, allow one—time processing of a location which then may be shared with limitless Other users, allow le sources of data to simultaneously build a databased of fixed and movable objects in a particular physical location, and segment objects from the background to create object—specific fiducials and texture maps.
In one embodiment, the syStem may be ured to query a user for input about the identity of certain objects (for example, the syStem may present the user with a question such as, "is that a cks coffee cup?"), so that the user may train the system and allow the system to associate semantic information with objects in the real world. An ontology may provide guidance regarding what objects ted from the world can do, how they behave, etc. In one embodiment the system may feature a virtual or actual keypad, such as a wirelessly connected keypad, connectivity to a keypad of a smartphone, or the like, to facilitate certain user input to the system.
The system may be ured to share basic elements (walls, windows, desk ry, etc) with any user who walks into the room in virtual or augmented reality, and in one embodiment that person’s system will be configured to take images from his particu'ar perspective and Jpload those to the cloud. Then the cloud becomes popilated with old and new sets of data and can run optimization routines and establish fiducials that exist on dual objects.
GPS and other localization information may be utilized as inputs to such processing. Further, other computing systems and data, SJCh as one’s online calendar or 0k account information, may be utilized as inputs (for example, in one embodiment, a cloud and/or local syStem may be configured to analyze the content of a user’s calendar for airline tickets, dates, and destinations, so that over time, information may be moved from the cload to the user’s local systems to be ready for the user’s arrival time in a given destination).
In one embodiment, tags such as QR codes and the like may be inserted into a world for use with atistical pose calculation, ty/access control, ication of special ation, spatial messaging, non—statistical objeCt recognition, etc.
In one ment, cloud resources may be configired to pass digital models of real and virtual worlds between users, as described above in reference to "passable worlds", with the models being ed by the individual users based upon parameters and textures. This reduces bandwidth relative to the passage of realtime video, a" ows rendering of virtual viewpoints of a scene, and a" ows millions or more users :o participate in one vir :ual gathering wi':hout sending each of them data that they need to see (such as video), because their views are rendered by their local compu':ing resources.
The virtual reality system (\‘V'Qs II) may be configured to register the user loca:ion and field of view (together known as the "pose") h one or more of the following: realtime metric computer vision using the cameras, aneous localization and mapping techniques, maps, and data from sensors such as gyros, accelerometers, compass, barometer, GPS, radio signal strength triangulation, signal time of flight analysis, LlDAR ranging, RADAQ ranging, odometry, and sonar ranging. The wearable device syStem may be configured to simultaneously map and orient. For example, in unknown environments, the VRS may be ured to collect informa':ion abou': the environment, ascertaining fiducia' points suitable for user pose calculations, other points for world modeling, images for ing texture maps of the world. Fiducial points may be used to optically calculate pose. As the wor:_d is mapped with greater detail, more objeC':s may be segmented out and given their own texture maps, but the world still preferab'y is representable a low spatia' resolution in simple po'ygons with low cion cexLure maps. Other sensors, such as those discussed above, may be utilized to support this modeling . The world may be intrinsically fraCtal i n that moving or otherwise g a better view (through viewpoints, "supervision" modes, zooming, etc) reguest high—resolution information from the cloud resources. Moving closer to objects captures higher resolu':ion data, and this may be sent to the cloud, which may calculate and/or insert the new data at interstitial si tes in the world model. ing to Figure "6, a wearable system may be configured to capture image information and extraCt fiducials and recognized poin :s (52) . The wearable local system may calculate pose using one of the pose calculation techniques mentioned below. The clo Jd (54) may be configured to use images and fiducials to segment 3—D objects from more static 3—D background; images provide textures maps for objects and the world res may be realtime videos). The cloud resources (56) may be ured so score and make b:_e static fiducials and textures for world registration. The cloud resources may be configired to groom the point c:_oud for optimal point density for registration. The cloud resources (60) may store and make available object fiducials and textures for object registration and manipulation; the cloud may groom point clouds for optimal y for registration. The could resource may be configired (62) to use all valid points and es to generate fraCtal solid models of objects; the cloud may groom point cloud information for optimal fidJcial density. The clould resource (64) may be configured to query users for training on identity of segmented objeCts and the world; an ontology se may use the answers to imbue objects and the world with actionable properties.
The ing specific modes of registration and mapping e the terms "O—pose", which represents pose determined from the optical or camera system; "s—pose", which represents pose determined from the sensors (i.e., such as a combination of GPS, gyro, compass, accelerometer, etc data, as discassed above); and "MLC", which represents the cloud computing and data management resource. l. Orient: make a basic map of a new environment Purpose: ish pose if environment is not mapped or (the equivalent) if nOt connected to the MLC. 0 ExtraCt points from image, track from frame to frame, ilate fiducials using S—pose. 0 Jses S—pos b caus th r ar no als 0 Filter out bad fiducials based on persistence. 0 This is the most basic mode: it will always work for low—precision pose. With a little time and some relative motion it will establish a minimum fiducial set for O—pose and/or mapping. 0 Jump out of this mode as soon as O—pose is reliable. 2. Map and O—Pose: map an environment Purpose: establish high—precision pose, map the nment, and provide the map (with images) to the MLC. 0 Calculate O—pose from mature world fiducials. Use S— pose as check of O—pose solution and to speed computation (O—pose is a non—linear gradient search). 0 Mature fiducials may come from MLC, or be those locally determined.
EXtract points from image, track from frame to frame, 'triangula':e fiducials using O—pose.
Filter ou': bad fiducials based on persistence. e M 1C with fiducials and pose—tagged images.
Last three steps need not happen real—time. 3. 0— Pose: determine pose Purpose: establish high—precision pose in an already mapped environment using minimum processing power.
Jse historic S— and O—pose (n—1, n—2, n—3, etc.) to estimate pose at n.
Jse pose at n to project fiducials into image captured at n, then create image mask from the tion.
Extract points from the masked regions ssing burden greatly reduced by only searching/extracting points from the masked subsets of image).
Calculate O—pose from extraCted points and mature world als.
Use 8— and O—pose at n to eStimate pose at n+1.
Option: provide pose—tagged images/video to MLC cloud. 4. Sup r R s: d t rmin sup r r solution imagery and fiducials Purpose: create super—resolution imagery and fiducials.
Composite pose—tagged images to create super— resolution images.
Use super—resolution images to e fiducial position estimation.
Iterate O—pose estimates from super reso:_ution fiducials and imagery.
Option Loop the above steps on a wearab:_e device (in real t ime) or the MQC (for better world).
In one embodiment, the VLS system may be configured to have certain base functionality, as well as functionali :y facilitated by "apps" or ations that may be distribu ,ed through the VLS to provide certain specialized onalities. For example, the fol lowing apps may be installed to the t VLS to provide specialized functionality: Painterly renderings app. Artis:s create image transforms that represent the world they see it. Users enable these transforms, thus viewing the world Wthrough" the ar :ists eyes.
Table top ng app. Users "build" objects from physical objects put on a table.
Virtual presence app. Users pass virtual model of space to other user, who then moves aro and space using virtual avatar.
Avatar emotion app. Measurements of subtle voice inflection, minor head movement, body temperature, heart rate, etc. animate subtle effects on virtual—presence avatars.
Digitizing hjmar sLa te a tion and passing that to remOte avatar uses less bandwidth then video. Additionally, such data is map—able to r on—h iman avatars capable of emOtion Ex. A dog avatar can show exci :ement by wagging its tail based on excited vocal tior S.
An efficier t mesh type network may be desirable for moving data, as opposed to sending everything back to a server. Many mesh networks, r owever, have suboptimal mance because positional information and topology is not well characterized.
In one embodimer tr the system may be utilized to determine the location of all users with relatively high precision, and thus a mesh network configuration may be utilized for high performance.
In one embodiment the system may be ed for searching.
With augmented reality, for example, users will generate and leave content related to many aspects of the physical world.
Much of this content is not text, and thus is not easily searched by typical methods. The system may be configured to provide a ty for keeping track of al and social network content for searching and reference es.
In one embodiment, if the display device tracks 2—D points through successive frames, then fits a vector—valued on to the time evolution of those points, it is possible to sample the veCtor valued funCtion at any point in time (e.g. between frames) or at some point in the near future (by projecting the veCtor—valued funCtion forward in time. This allows creation of high—resolution post—processing, and prediction of future pose before the next image is actual captured (e.g., doubling the registration speed is possible without doubling the camera frame rate).
For body—fixed rendering (as opposed to head—fixed or world—fixed renderings) an te view of body is desired.
Rather than measuring the body, in one embodiment is le to derive its location h the average position of a users head. If the user’s face points forward most of the time, a multi—day e of head position will reveal that direction.
In conjunction with the gravity veCtor, this provides a reasonably stable coordinate frame for body—fixed rendering.
Using current measures of head position with t to this long—duration coordinate frame allows consistent rendering of objects on/around a users body — with no extra instrumentation.
For implementation of this embodiment, single register averages of head direction—vector may be started, and a running sum of data divided by delta—t will give current average head position.
Keeping five or so registers, started on day n—5, day n—4, day n—3, day n—2, day n—l allows use of rolling es of only the past "n II days.
In one embodiment, a scene may be scaled down and presented to a user in a smaller—than—actual space. For example, in a situation wherein there is a scene that must be rendered in a huge space (i.e., such as a soccer stadium), there may be no equivalent huge space t, or such a large space may be enient to a user. In one embodiment the system may be configured to reduce the scale of the scene, so that the user may watch it in miniature. For example, one could have a gods— eye—view video game, or a world championship soccer game, play out in an unscaled field — or scaled down and presented on a living room floor. The system may be configured to simply shift the rendering perspective, scale, and associated accommodation distance.
The system may also be configured to draw a user’s attention to specific items within a presented scene by manipulating focus of virtual or augmented reality objects, by highlighting them, ng the contraSt, brightness, scale, etc.
Preferably the system may be configured to accomplish the following modes: Open space rendering: 0 Grab key points from ured environment, then fill in the space between with ML ings. 0 Potential venues: stages, output spaces, large indoor spaces (stadiums).
Object wrapping: WO 85639 0 'Qecognize 3D object in the real world, then augment them 0 "Recognition" here means identifying a 3D blob with high enough precision to anchor imagery to. 0 There are two types of recognition: 1) Classifying the type of an object (ex. a "face"); 2) Classifying a particular instance of an object (ex. Joe, a person). o Rui'd recognizers software objects for various things: walls, ceilings, floors, faces, roads, sky, skyscrapers, ranch houses, tables, , cars, road signs, bi"boards, doors, windows, bookshelves, etc 0 Some recognizers are Type I, and have generic functionality, e.g. "put my video on that wall", "that is a dog" 0 Other recognizers are Type , and have specific functionality, e.g. "my TV is on _my_ living room wall 3.2 feet from the ceiling", "that is Fido" (this is a more capable version of the generic izer) 0 Building recognizer as software objects allows metered release of functionality, and finer grained control of experience Body centered rendering o Render virtual objects fixed to the users body. 0 Some things should float around the user's body, like a digital too'be't. o This es knowing where the body is, rather than just the head. May get body position ably accurate by having a erm average of users head 2012/062500 position (heads usually point forward parallel to the ground). 0 A trivial case is objects floating around the head.
Transparency/cutaway 0 For Type recognized objects, show cut—aways 0 Link Type recognized objec :s to an online database of 3D models. 0 Should start with objects that have commonly available 3D models, such as cars and p JbliC utilities.
Virtual presence 0 Paint remote people's s into open spaces. 0 A subset of "open space rendering" (above). 0 Users create rough ry of local environment and i tera tively send both geometry and texture maps cOO thers. 0 Users must grant permission for others to enter their environment. 0 Subtle voice gieies, hand tracking, and head motion are sent to remote avatar. Avatar is animated from these fuzzy inputs. 0 The above minimize bandwidth. 0 Make a wall a "portal" to r room 0 As with other method, pass geometry and texture map . 0 Instead of showing avatar in local room, designate recognized object (e.g. a wall) as a portal to the other's environment. In this way multiple people could sit in their own rooms, loo
Virtual viewpoints Dense l model of area is created when a group of cameras (people) view a scene from different perspectives. This rich digital model is renderable from any vantage point that at least one camera can see .
Examp'e. People at a wedding. Scene is jointly modeled by all attendees. Recognizers differentiate and texture map stationary objects differently than moving ones (e.g. walls have stable texture map, people have higher frequency moving teXtire maps.) With rich digital model updated in real time, scene is renderable from any Ctive. Attendee in back can fly in the air to the front row for a better view.
Attendees can show their moving avatar, or have their perspeCtive hidden. te attendees can find a "seat" either with their avatar or if the organi7ers permit, invisibly.
Lik ly r guir s xtr m ly high bandwidth. Notionally, high frequency data is steamed through the crowd on a high—speed local wireless. Low frequency data comes from the MLC.
Because all at s have high precision position information, making an optimal routing path for local networking is trivial.
Messaging Simple silent messaging may be desirable For this and other ations, it may be desirable to have a finger chording keyboard. o e glove solutions may offer enhanced performance.
Full Virtual Reality (VQ): 0 With vision system ed, show a view not ying on the real world. 0 Registration system is still necessary to track head position. 0 "Couch mode" allows user to fly. 0 "Walking mode" re—renders objects in the real world as virtual ones so user does not e with real world. 0 Rendering body parts is essential for suspension of disbelieve. This implies having method for tracking and rendering body parts in FOV. 0 Non—see through visor is a form of VR with many image enhancement advantages not possible with direct overlay 0 Wide FOV, perhaps even the ability to look to rear Various forms of H 0 super vision": telescope, see through, infrared, God's eye, etc.
In one embodiment a system for virtual and/or augmented user experience is ured such that remote avatars associated with users may be animated based at least in part upon data on a wearable device with input from sources such as voice inflection analysis and facial recognition analysis, as conducted by pertinent software modules. For example, referring back to Figure 12, the bee avatar (2) may be animated to have a friendly smile based upon facial recognition of a smile upon the user’s face, or based upon a friendly tone of voice or speaking, as determined by software configured to analyze voice inputs to microphones which may capture voice samples locally from the user. Further, the avatar character may be animated in a manner in which the avatar is likely to express a certain emotion. For e, in an embodiment wherein the avatar is a dog, a happy smile or tone detected by system local to the human user may be expressed in the avatar as a wagging tail of the dog avatar.
Various ary embodiments of the invention are described herein. Reference is made to these examples in a non— limiting sense. They are provided to illustrate more broadly applicable aspects of the invention. Various changes may be made to the invention bed and lents may be substituted withoat departing from the true spirit and scope of the invention. In addition, many modifications may be made to adapt a particular situation, material, composition of matter, process, process act(s) or step(s) to the objective(s), spirit or scope of the present invention. r, as will be appreciated by those with skill in the art that each of the individual variations bed and illustrated herein has discrete components and features which may be readily separated from or combined with the features of any of the other several embodiments without departing from the scope or spirit of the t inventions. A" such modifications are intended to be within the scope of claims associated with this disclosure.
The invention includes methods that may be performed using the subj ct d vic s. Th m thods may comprise the act of providing such a suitable device. Such provision may be performed by the end user. In Other words, the "providing" act m r ly r guir s th nd user , access, approach, position, set—up, activate, power—up or Otherwise aCt to e the requisite device in the subject method. Methods recited herein may be carried out in any order of 'he recited events which is logically le, as well as in tr e recited order of events.
Exemplary aspects of the invention, together with details regarding material seleCtion and mar ufactire have been set forth above. As for other details of the present invention, these may be appreciated in tion with tr e above—referenced patents and publications as well as generally kr own or appreciated by those with skill in the art. The san e may hold true with respect to method—based aspects of the inver tior in terms of additional acts as common'y or logica' ly employed.
In addition, though the invention r as been described in reference to several examples optiona' 1y inc0rporating various features, the invention is nOt to be linited to that which is described or indicated as contemplated with respeCt to each variation of the ion. Various charges may be made to the ion described and eguivalents (whether recited herein or DO" included for the sake of some y) may be substituted withoat departing from the true spirit and scope of the irvention. In addition, where a range of values is provided, it is tood that every ening valu n r I b tw th upp ar d lower limit of that range and any other stated or ir tervening value in that stated range, is encompassed within tte invention.
Also, it is contemplated that any optional feature of the it ventive variations described may be set forth and claimed it dependently, or in combina :ion with any one or more of the f atur s d scrib d h r in. Reference to a singular item, ir cludes the possibility that there are plural of the same items t. More ically, as used herein and in claims associated hereto, the singular forms "a, H "an," "said," and H the H include plural referents unless the specifically stated otherwise. In other words, use of the articles allow for "at least one" of the subject item in the description above as well as claims associated with this disclosure. "t is further noted that such claims may be d to exclude any optional t.
As such, this statement is intended to serve as antecedent basis for use of such exclusive terminology as "solely," "only" and the like in tion with the recitation of claim elements, or use of a "negative" limitation.
Without the use of such exclusive terminology, the term "comprising" in claims associated with this disclosure shall allow for the inclusion of any onal element——irrespective of whether a given number of elements are enumerated in such claims, or the on of a feature could be regarded as transforming the nature of an element set forth in such claims.
Lxcept as specifically defined herein, all technical and scientific terms used herein are to be given as broad a commonly Jnderstood meaning as possible while maintaining claim validity.
The breadth of the present ion is not to be limited to the examples provided and/or the subject specification, but rather only by the scope of claim language associated with this disclosure.
Claims (18)
1. A system for ng two or more users to interact within a virtual world comprising virtual world data, comprising: a computer network comprising one or more computing devices, the one or more computing devices comprising memory, processing circuitry, and software stored at least in part in the memory and able by the sing circuitry to process at least a portion of the virtual world data; and a user device having a wearable user display component, wherein the user device is operatively coupled to the computer network, wherein at least a first portion of the virtual world data comprises a l object rendered from and representing a physical object local to a first user, the computer network is operable to transmit the first portion of the virtual world data to the user device associated with a second user, and the wearable user display component visually displays the l object to the second user, such that a virtual representation of the physical object local to the first user is visually presented to the second user at the second user’s location.
2. The system of claim 1, wherein the first and second users are in different physical locations.
3. The system of claim 1, wherein the first and second users are in substantially the same physical location.
4. The system of claim 1, wherein at least a portion of the virtual world changes in response to a change in the l world data.
5. The system of claim 1, wherein at least a portion of the virtual world changes in se to a change in the physical object.
6. The system of claim 5, wherein the change in the portion of the virtual world represents the virtual object having a predetermined relationship with the al object.
7. The system of claim 6, wherein the change in the n of the virtual world is ted to the user device for presentation to the second user according to the predetermined relationship.
8. The system of claim 1, wherein the virtual world is operable to be rendered by at least one of a computer server or a user device.
9. The system of claim 1, wherein the virtual world is presented in a two-dimensional format.
10. The system of claim 1, wherein the virtual world is presented in a dimensional format.
11. The system of claim 1, wherein the user device is operable to provide an interface for enabling interaction between a user and the virtual world in an augmented reality mode.
12. The system of claim 1, wherein the user device is operable to provide an interface for enabling interaction between a user and the virtual world in a virtual reality mode.
13. The system of claim 1, wherein the user device is operable to provide an interface for enabling interaction between a user and the l world in a combination ted and l reality mode.
14. The system of claim 1, wherein the virtual world data is itted over a data network.
15. The system of claim 1, wherein the computer network is operable to receive at least a portion of the virtual world data from a user device.
16. The system of claim 1, wherein at least a portion of the virtual world data is transmitted to the user device and comprises instructions for generating at least a portion of the virtual world.
17. The system of claim 1, wherein at least a portion of the virtual world data is itted to a gateway for at least one of processing or distribution.
18. The system of claim 17, wherein at least one of the one or more computing devices are operable to s virtual world data distributed by the gateway.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| NZ732039A NZ732039B2 (en) | 2011-10-28 | 2012-10-29 | System and method for augmented and virtual reality |
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201161552941P | 2011-10-28 | 2011-10-28 | |
| US61/552,941 | 2011-10-28 | ||
| NZ62418112 | 2012-10-29 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| NZ718380A NZ718380A (en) | 2017-06-30 |
| NZ718380B2 true NZ718380B2 (en) | 2017-10-03 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| AU2023200357B2 (en) | System and method for augmented and virtual reality | |
| NZ718380B2 (en) | System and method for augmented and virtual reality | |
| NZ748087A (en) | System and method for augmented and virtual reality | |
| NZ748087B2 (en) | System and method for augmented and virtual reality | |
| NZ732039B2 (en) | System and method for augmented and virtual reality | |
| NZ764226B2 (en) | System and method for augmented and virtual reality |