Mixed (e.g., augmented and/or virtual) reality devices, such as headsets or goggles, are rapidly developing to the point where these devices should soon be widely available for various consumer applications. For example, mixed reality headsets that display images of a mixed reality environment have been demonstrated at various events and application developers are preparing for their upcoming release. One issue that persists, however, is interacting with media within the context of the mixed reality environment. While conventional approaches utilize hand, head, and eye tracking, such approaches can difficult to implement, cost prohibitive, or work within limited specifications, under certain light conditions, and other such problems. What is needed is a system and method for interacting with media content within the context of a mixed reality environment.
Various embodiments in accordance with the present disclosure will be described with reference to the drawings, in which:
Systems and methods in accordance with the embodiments described herein overcome various deficiencies in existing approaches to controlling content in an electronic environment. In particular, various embodiments provide for controlling, managing, and/or otherwise interacting with mixed (e.g., virtual/augmented) reality content in response to input from a user, including voice inputs, device inputs, among other such inputs, in a mixed reality environment. For example, a mixed reality device, such as a headset or other such device can perform various operations in response to a voice command or other such input or instruction. In one such example, the device can receive a voice command and an application executing on the device or otherwise in communication with the device can analyze audio input data of the voice command to determine how to carry out the command. The command can be used to, for example, control the view of content in the environment, as may include controlling a user's “position” in the environment. The position can include, for example, a location in time, space, etc. in the environment as well as directionality and field of view of the user in the environment. Additionally, or alternatively, the user can navigate the environment or otherwise interact with the presentation of content in the environment from a particular view at a particular time based upon a current relative position and/or orientation of the user with respect to one or more reference features and/or motion of the device, as well as changes in that relative position and/or orientation of the user and/or device. In this way, the user can navigate the environment as if the user were looking through a window, enabling the user to view the mixed reality surroundings on a display screen of the device. As the user navigates the environment, a reference element (e.g., a transport control element, a multi-dimensional reference element) can be displayed as an overlay to the environment, and can provide a visual reference to the user's position in the environment. As the user continues to navigate the environment, the display of the reference element is updated based on the user's view position and/or view orientation in the environment. In this way, the reference element can provide a preview of the user's current view position and view orientation in the environment. In various embodiments, the user can control the environment that is presented. This can include, for example, using a voice or other such command to switch between virtual and/or augmented environments. In certain embodiments, the reference element or other such element can present a display (e.g., a preview, icon, etc.) of the active environments. In response to a user command (e.g., voice command) the user can cause one or more of the environments to be presented. In such an approach, the user may cause a view of one or more of an augmented environment or a virtual environment, and may switch between such environments.
Various other functions and advantages are described and suggested below in accordance with the various embodiments.
The example device 100 can also include one or more cameras 120, 122 or other image capture devices for capturing image data, including data for light reflected in the ambient or infrared spectrums, for example. One or more cameras can be included on an exterior of the device to help with motion tracking and determining environmental conditions. For example, locations of light sources, intensity of surrounding ambient light, objects or persons nearby, or any of various other objects or conditions can be determined that can be incorporated into the mixed reality scene, such as to make the lighting environmentally appropriate or to include things located around the user, among other such options. As mentioned, tracking the motion of objects represented in the captured image data can help with motion tracking as well, as rotation and translation data of surrounding objects can give an indication of the movement of the device itself.
Further, the inclusion of one or more cameras 120, 122 on the inside of the device can help to determine information such as the expression or gaze direction of the user. In this example, the device can include at least one IR emitter 124, such as an IR LED, that is capable of emitting IR radiation inside the device that can be reflected by the user. IR can be selected because it is not visible to the user, and thus will not be a distraction, and also does not pose any known health risks to the user. The IR emitter 124 can emit radiation that can be reflected by the user's face and detected by one or more IR detectors or other image capture elements 120, 122. In some embodiments the captured image data can be analyzed to determine the expression of the user, as may be determinable by variations in the relative locations of facial features of the user represented in the captured image data. In some embodiments, the location of the user's pupils can be determined, which can enable a determination of the gaze direction of the user. The gaze direction of the user can, in some embodiments, affect how objects near to, or away from, the center of the user's field of view are rendered.
As mentioned, the device can include at least one microphone 130. The microphone can be located on the front, side, inside, or some other place on the device. Persons of ordinary skill in the art will recognize, however, that the one or more microphones may alternatively be located on a separate device in communication with the mixed reality device. The microphone can capture audio input data from spoken commands that includes a request. An application executing on the device or otherwise in communication with the device can analyze the audio input data to determine how to carry out the request. For example,
In this example, the viewport can display content in a configurable user interface. The user interface is configurable in that the media layers, content, and other graphical elements can be repositioned, resized, updated, among other such configurations. The content can be layered. The content can be layered in that there can be one or more media layers including content, were the media layers can be proximate to one another and/or overlapping.
In accordance with various embodiments, the viewport can display a user interface overlay that includes at least a header section 144 and a footer section 146, mixed reality content displayed in media layers 148, and a multi-dimensional reference element, transport control element, or other such reference element 150. As will be described further herein, a reference element can provide a visual reference to the user's “position” in the environment. An example user interface overlay is a heads-up display (HUD). Persons of ordinary skill in the art will recognize, however, that other user interface overlays are contemplated in accordance with the various embodiments described herein. A heads-up display can be any transparent display that presents data without requiring users to look away from their usual viewpoints. In various embodiments, the user interface overlay can be in a fixed position (while in other embodiments the user interface can be user defined and/or otherwise configurable). As shown in
The content can be displayed in one or more media layers 148, where each media layer can display content from one of a plurality of content providers. The content can include video and/or image data, graphics, text, live streams (e.g., video, graphics, or other data streams), mixed reality conferences, mixed reality classrooms, and other virtual and/or augmented reality content. The media layers can present content in, for example, 4:3 proportions, 16:9 high definition proportions, a 360-degree panorama, in 360 degree spherical proportions, among other such display formats. The media layers can be shown or hidden and can be fixed, in a user defined position, or a combination of fixed and user defined positions. The media layers can include different media types, as may include video, audio, motion graphics, static images, information/data graphics, for example. In various embodiments, the content can be associated with a theme. Themes can include, for example, an educational theme where users can explore and interact with educational content and collaborate with other users, an exploration theme where users can explore various places both fictional and nonfictional, an interactive them where users can interact, an office theme where users can perform work-based actions, a combination of themes, among other such themes. Effects can be applied to one or more of the media layers, such as a hide/show effect, a visual opacity effect, a visual blur effect, a color saturation effect, and an audio mute (on/off) effect. When applied to a media layer, the effect can be applied to all or a portion of the media content displayed by that media layer.
In accordance with various embodiments, a number of different interfaces can be provided, where each interface can display categories. Selecting a category provides access to additional functionality and content. The categories can be associated with a particular interface, content, environment, and/or a combination thereof and/or globally accessible. In one example, categories can be used to navigate between environments and to navigate within a particular environment. This can include, for example, using the categories to show/hide content, communicate with the environment, content, and users, control a view of the environment, etc. As described, a reference element can be displayed as an overlay to the environment. A view of the reference element can be associated with the environment. For example, in one embodiment the reference element provides a view of the user's position and orientation in the environment along a time axis. In another embodiment, the reference element provides a view of the user's position and orientation in the environment along a spatial axis.
A user can invoke functionality within the mixed reality environment. This can include, for example, invoking a note taking application to dictate notes relative to a specific timestamp within the content duration of the mixed environment, communicating with users of the mixed environment, and controlling other aspects of the mixed environment using voice commands and/or gestures. In accordance with various embodiments, a user can invoke a note taking application using voice commands, air gesture-based commands, and/or using a handset or hand-held controller to invoke the note taking app. The notes can be captured through speech, where the user dictates the notes they would like transcribed, or through gesture-based input, where the notes are inputted into the note application using air gesture-based approaches. In any such situation, the notes can be contextual, where the notes are based on time and location within the duration of the content timeline and can be drawn in context, based on the time and location within the duration of the content timeline. The notes can be shared between users in the mixed environment and/or outside the mixed environment. Sharing the notes can include, for example, using speech commands, air gesture-based commands, and/or a handset or hand-held controller.
In accordance with various embodiments, users in the environment can communicate with other users in the environment, with users outside the environment, or in other such environments. Communication can include, for example, communicating with an avatar associated with a user, communicating directly a user, group communication between users, among other such types of communication. In various embodiments, peer-to-peer communication and/or group communication can be useful in educational settings, business settings, etc. For example, a specific user can use voice commands to initiate a ‘presenter mode’, take all users to a same location in time and perspective within the duration of the media content in the mixed environment, query or display information for the purpose of collaboration (e.g., controlling speech commands/interaction for others—moderator to audience). A presenter mode can grant a presenter (or presenters) presentation control over an audience. Presentation control can include, for example, taking users to a same location in time and perspective within the mixed environment, controlling a presentation volume, controlling presentation content, controlling aspects of a presentation venue, controlling interaction rights between members in the audience, among other such controls. It should be understood that any number of interfaces can be provided, where each interface can display categories, graphical elements, content, etc. that enable access to different types of media within the mixed environment. In certain embodiments, a user can control the environment that is presented. This can include, for example, using a voice or other such command to switch between virtual and/or augmented environments. In various embodiments, the reference element or other such element can present a display (e.g., a preview, icon, etc.) of the active environments. In response to a user command (e.g., voice command) the user can cause one or more of the environments to be presented. In such an approach, the user may cause a view of one or more of an augmented environment or a virtual environment, and may switch between such environments. It should be further noted that any one of a number of voice commands can be used to interact with the content, the mixed environment, and/or users in the mixed environment.
In accordance with various embodiments, the content and the interactions with the content and/or environment can be performed using voice commands, using input from a handset or hand-held controller, using input from a gesture performed using a feature of the user or other object, among other such input approaches.
In this example, a user may make an utterance 202, such as an utterance that includes a spoken command for the speech processing service to perform some task, such as to control the presentation of content in the environment. It should be noted, however, that controlling the presentation of content and/or the environment can be accomplished a number of ways. In this example, the user may speak the utterance into (or in the presence of) the device 102. The device 102 can correspond to a wide variety of electronic devices. In some embodiments, the device may be a computing device that includes one or more processors and a memory which may contain software applications executed by the processors. The device may include or be in communication with an audio input component for accepting speech input on which to perform speech recognition, such as a microphone 206. The device may also include or be in communication with an output component for presenting responses or other information from the speech processing service 220, such as a speaker 208. The software of the device may include hardware components and/or software for establishing communications over wireless communication networks or directly with other computing devices.
The content provider 210 can correspond to an online service that provides access to content. The content provider can comprise one or more media libraries or databases 212. It is important to note that although shown as being included with the content provider 210, in some embodiments, the one or more media libraries 212 can be separate from the content provider 210. In other words, in some cases, the one or more media libraries 212 can reside on one or more servers external to one or more servers on which the media service 210 resides. For example, the media libraries can be stored in media content data store 217 provided by a third party content provider 215. The one or more media libraries 212, 217 can store, in part, data representative of content. The data representative of the content can be accessible (e.g., downloading, streaming, etc.) to the device 102. The device 102 can acquire (e.g., download, stream, etc.) the data from the content provider 210 and/or the third party content provider 215 and, as a result, play the content. In accordance with various embodiments, a user can subscribe to content channels, where each channel can correspond to content from one or more content providers. Example content includes, for example, 360° video, graphics, text, interactive video content, etc. A user can subscribe to a mixed classroom channel. Within the mixed reality classroom environment, the user can subscribe to other channels corresponding to classes offered through the mixed reality classroom channel. Each mixed classroom can be associated with an interface, and that interface can display categories to enable access to media elements that enable some level of interaction within the mixed reality classroom. In this example, categories can correspond to a note taking application, a class schedule application, or any number of different types of applications. In another example, a user interface for exploring geographic regions can be provided, where the user interface can include categories specific to exploration. Example categories include a map application allowing access to different types of maps, views of those maps, access to information, among other such categories.
The speech processing service 220 can receive a user utterance 202 via communication network 209. The speech processing service 220 can be a network-accessible service in communication with the device 102 via the communication network, such as a cellular telephone network or the Internet. A user may use the device 102 to submit utterances, receive information, and initiate various processes, either on the device or at the speech processing service 220. For example, as described, the user can issue spoken commands to the device 102 in order to control, interact, or otherwise manage the playback of the content.
The speech processing service 220 may include an automatic speech recognition (ASR) module 222 that performs automatic speech recognition on audio data regarding user utterances, a natural language understanding (NLU) module 228 that performs natural language understanding on transcriptions generated by the ASR module 222, a context interpreter 224 that applies contextual rules to current NLU results based on prior interpretations and dialog acts, a natural language generation (“NLG”) module that converts certain dialog acts into user-understandable communications (e.g., text that can be “read” to the user by a text-to-speech 226 or “TTS” component), among other such modules.
The speech processing service 220 may include any number of server computing devices, desktop computing devices, mainframe computers, and the like. Each individual device may implement one of the modules or components of the speech processing service 220. In some embodiments, the speech processing service 220 can include several devices physically or logically grouped together to implement one of the modules or components of the speech processing service 220. For example, the speech processing service 220 can include various modules and components combined on a single device, multiple instances of a single module or component, etc. In one specific, non-limiting embodiment, the speech processing service 220 may include a server or group of servers configured with ASR and/or NLU modules 222, 228, a server or group of servers configured with a context interpreter 224 and/or a text-to-speech 226, etc. In multi-device implementations, the various devices of the speech processing service 220 may communicate via an internal communication network, such as a corporate or university network configured as a local area network (“LAN”) or a wide area network (“WAN”). In some cases, the devices of the speech processing service 220 may communicate over an external network, such as the Internet, or a combination of internal and external networks.
In some embodiments, the features and services provided by the speech processing service 220 may be implemented as web services consumable via a communication network. In further embodiments, the speech processing service 220 is provided by one or more virtual machines implemented in a hosted computing environment. The hosted computing environment may include one or more rapidly provisioned and released computing resources, which computing resources may include computing, networking and/or storage devices. A hosted computing environment may also be referred to as a cloud computing environment.
In some embodiments, the features of the speech processing service 220 may be integrated into the device such that network connection and one or more separate computing systems are not necessary to perform the processes of the present disclosure. For example, a single device may include the microphone 206, the ASR module 222, the NLU module 228, the context interpreter 224, the text-to-speech 226 module, or some combination thereof.
As described, users may submit utterances that may include various commands, requests, and the like. The microphone 206 may capture utterance audio and provide it (or data derived therefrom) to the speech processing service 220. The ASR module 222 may generate ASR results for the utterance, such as a w-best list of transcriptions. Each transcription or portion thereof may be associated with some score, such as a confidence score or a likelihood that the transcription or portion thereof is correct. The w-best list or some other type of results may be provided to the NLU module 228 so that the user's intent may be determined. A w-best list of interpretations (e.g., intents) may be determined or generated by the NLU module 228 and provided to the context interpreter 224. The context interpreter 224 can process the NLU results (e.g., modify individual interpretations, filter interpretations, re-score or re-rank interpretations, etc.). In accordance with various embodiments, the result can be provided to the content provider to initiate playback of the content using the device. In certain embodiments, the result can include the text-to-speech 226 component can translate a semantic response into human-readable text, synthesized speech, etc. and the translated response can be provided to the device and played using the device.
As described, a reference element can be displayed as an overlay to the environment and/or content, and can provide a visual reference to the user's position within the mixed environment. The reference element can be a multi-dimensional reference element. In accordance with various embodiments, the dimensions can include a location dimension, a time dimension, a spatial dimension, or a combination thereof.
In accordance with various embodiments, the field of view can be represented by x, y, z, spherical coordinates with respect to the environment. The field of view can be updated by the user using a voice command, a gesture input, input from a handset or hand-held controller, or motion input from a change in orientation of the device. In a situation where the user requests a change in the field of view, the user's request can be analyzed to determine appropriate information from the request, and a number of mapping and spatial determination algorithms can be utilized to determine the appropriate spherical coordinates for the user's point of view in the environment. It should be noted that any suitable mapping algorithm may be employed in accordance with various embodiments.
In many embodiments, other graphical elements can be displayed. The graphical elements can be displayed proximate to the tracking element, or in another viewable area in the mixed reality environment. An example graphical element can be a volume control element, a media control element (e.g., a playhead), a microphone control element, a media recording control element, among other such graphical elements. In the example of a media control element, the media control element can visually indicate the active media control mode. For example, a pause/play graphical element that indicates whether the media content is playing or paused can be displayed, a progress bar that displays the overall progress through media content and its total running time can be displayed, a volume indicator that displays current sound level of the media content can be displayed, among other such information. Media control modes can include, for example, a play mode, a pause mode, a fast-forward mode, a rewind mode, a repeat mode, a loop mode, among other such modes. In accordance with various embodiments, the user can control the state of the environment using spoken commands or other such inputs, and the graphical presentation of the control element can indicate the state of the environment (e.g., whether the environment is paused, playing, etc.)
In various embodiments, a mixed reality device typically includes some type of motion and/or orientation detection sensor, such as an accelerometer, gyroscope, electronic compass, inertial sensor, magnetometer, and the like, which can provide data as to movement of the device resulting from movement of the user's head, in general. The viewspacer can be updated based on movement of the device such that as the user's field of view changes, the display of the viewspacer can be updated accordingly.
As shown in
In certain embodiments, a user may desire to reset the point of origin. In such a situation, the user can speak a command, e.g., “reset origin,” select a reset button on a hand-held controller, among other such options. It should be noted that although example coordinate systems are provided, those skilled in the art will understand that one of a number of coordinate systems can be used as well within the scope of the various embodiments. Accordingly, it should be noted that requests to “look up,” “look down,” and other such requests can be analyzed to determine corresponding coordinates operable in the context of the environment. Such analysis can include utilizing any number of transformation algorithms or other algorithms to determine three-dimensional (3D) space coordinates in the environment with respect to the user's point of view.
In accordance with various embodiments, a user can request a change in a view direction and/or view orientation using natural language, which can be converted to coordinates with respect to the environment. Example natural language requests included “look left ninety degrees,” “look up forty-five degrees,” “look down” (which may look down ninety degrees) “look left and up” which may use predetermined increments of fifteen degrees, for example, for each request. In accordance with various embodiments, the user can use natural language to describe the change in view direction and/or view orientation within the mixed reality environment to change the content viewed. As such, the request does not have to include specific coordinates or angle (e.g., look minus 90 degrees); rather, the request can be analyzed to determine the intent of the user's request with respect to the current field of view of the user. Example 420 of
In accordance with various embodiments, a user can change the depth vector of view orientation within the mixed reality environment using natural language. Example 460 of
In accordance with various embodiments, the user can navigate the environment from a particular view at a particular time as if the user were looking through a window, enabling the user to see an augmented reality of the environment. In this example, audio input data is received 512 by a microphone of the device. The audio input data corresponds to an utterance that includes instructions to provide a second view for a second position and a second field of view within the environment. For example, the utterance can be to “go to three minutes, forty-two seconds and look up.” A second view of the environment based on the request can be provided 514. The tracking element can be updated 516 to provide a second visual reference to the second position and the second field of view in the environment. This can include, for example, displaying the tracking element at the second position on the progress bar and providing a visual reference to the second field of view on the tracking element.
For example, as described above with respect to
In this example, a camera of the device can capture 612 still images or video of the user's surrounding environment. In some embodiments, the imaging will involve ambient light image or video capture, while in other embodiments a device can utilize infrared imaging, heat signature detection, or any other such approach. The device can analyze 614 the captured images to attempt to locate features of the environment, where those features in some embodiments include at least wall fixtures, furniture, objects, etc. In some embodiments, object recognition or any other such algorithm can be used to attempt to determine the presence of an object, or other portion or feature of the user's environment, in the field of view of at least one of the imaging elements.
Once the user features are located, the device can attempt to determine 616 aspects or information relating to those features such as the approximate location and size of the features. In this example, the determined aspects can be used to attempt to determine 618 a relative orientation between those features and the device, which can be useful in determining information such as a viewing location of a user. For example, software executing on the device (or otherwise in communication with the computing device) can obtain information such as the angular field of view of the camera, the zoom level at which the information is currently being captured, and any other such relevant information, which can enable the software to determine an approximate direction of the device with respect to those features. In many embodiments, direction information will be sufficient to provide adequate point-of-view dependent rendering.
Mixed reality image content (e.g., images, text, planes of content, etc.) can be displayed 620 based on the determined viewing direction of the user. The user can be provided a view of the environment that is based at least in part upon a current relative position and/or orientation of the device with respect to those features, as well as changes in that relative position and/or orientation. In this way, the device displays images in a way as if the user were looking through a window, enabling the user to see an augmented reality of the environment. The relative movements can be based upon factors such as the distance of the features to the device, a direction of movement of the user, a direction of change in orientation of the device, or other such factors. The relative movements can be selected such that the view appropriately changes with changes in relative position and/or orientation, and thus viewing angle, of the user.
The determined aspects of the user then can be monitored 622 over time, such as by continuing to capture and analyze image information to determine the relative position of the device. In at least some embodiments, an orientation-determining element such as an accelerometer or electronic gyroscope can be used to assist in tracking the relative location of the device and/or current relative orientation of the device. A change in the aspect, such as a change in position or orientation, can be determined 624, and the device can determine 626 whether that change requires an adjustment to the content to be displayed. For example, an application might require the device to be rotated a minimum amount before adjusting the displayed content, such as to account for a normal amount of user jitter or other such movement that may not be intended as input. Similarly, certain embodiments might not utilize continuous rotation, but might change views upon certain degrees of change in relative orientation of the device. If the orientation change is sufficient to warrant an adjustment, the device can determine and perform 628 the appropriate adjustment to the content, such as to provide the user a different view of the environment. As the view of the environment changes, a view of the multi-dimensional reference element can be updated to match the field of view of the user. For example, in response to the user's field of view within the environment shifting down to display content to below the user, the view of the multi-dimensional will update based on the user's current view direction and/or view orientation. As such, as the user's field of view changes, due to movement of the device, voice instructions, etc., the display of the reference element is updated accordingly.
In some embodiments, the device can have sufficient processing capability, and the imaging element and associated analytical algorithm(s) may be sensitive enough to distinguish between the motion of the device, motion of a user's head, motion of the user's eyes and other such motions, based on the captured images alone. In other embodiments, such as where it may be desirable for the process to utilize a fairly simple imaging element and analysis approach, it can be desirable to include at least one orientation determining element 710 that is able to determine a current orientation of the device 700. In one example, at least one orientation determining element is at least one single- or multi-axis accelerometer that is able to detect factors such as three-dimensional position of the device and the magnitude and direction of movement of the device, as well as vibration, shock, etc. Methods for using elements such as accelerometers to determine orientation or movement of a device are also known in the art and will not be discussed herein in detail. Other elements for detecting orientation and/or movement can be used as well within the scope of various embodiments for use as the orientation determining element. When the input from an accelerometer or similar element is used along with the input from the camera, the relative movement can be more accurately interpreted, allowing for a more precise input and/or a less complex image analysis algorithm.
In some embodiments, the device can include at least one additional input device 712 able to receive conventional input from a user. This conventional input can include, for example, a push button, touch pad, touch-sensitive element used with a display, wheel, joystick, keyboard, mouse, keypad or any other such device or element whereby a user can input a command to the device. Some devices also can include a microphone or other audio capture element that accepts voice or other audio commands. For example, a device might not include any buttons at all, but might be controlled only through a combination of visual and audio commands, such that a user can control the device without having to be in contact with the device. As will be discussed later herein, functionality of these additional input devices can also be adjusted or controlled based at least in part upon the determined gaze direction of a user or other such information.
In accordance with various embodiments, different approaches can be implemented in various environments in accordance with the described embodiments. For example,
The illustrative environment includes at least one backend server 808 and a data store 810. It should be understood that there can be several backend servers, layers or other elements, processes or components, which may be chained or otherwise configured, which can interact to perform tasks such as obtaining data from an appropriate data store. As used herein, the term “data store” refers to any device or combination of devices capable of storing, accessing and retrieving data, which may include any combination and number of data servers, databases, data storage devices and data storage media, in any standard, distributed or clustered environment. The backend server 808 can include any appropriate hardware and software for integrating with the data store 810 as needed to execute aspects of one or more applications for the client device and handling a majority of the data access and business logic for an application. The application server provides access control services in cooperation with the data store and is able to analyze audio date and other data as well as generate content such as text, graphics, audio and/or video to be transferred to the user, which may be served to the user by the Web server 806 in the form of HTML, XML or another appropriate structured language in this example. The handling of all requests and responses, as well as the delivery of content between the mixed reality device 104 and the backend server 808, can be handled by the Web server 806. It should be understood that the Web and application servers are not required and are merely example components, as structured code discussed herein can be executed on any appropriate device or host machine as discussed elsewhere herein.
The data store 810 can include several separate data tables, databases or other data storage mechanisms and media for storing data relating to a particular aspect. For example, the data store illustrated includes mechanisms for storing content (e.g., production data) 812 and user information 816, which can be used to serve content for the production side. The data store is also shown to include a mechanism for storing log or session data 814. It should be understood that there can be other information that may need to be stored in the data store, such as page image information and access rights information, which can be stored in any of the above listed mechanisms as appropriate or in additional mechanisms in the data store 810. The data store 810 is operable, through logic associated therewith, to receive instructions from the backend server 808 and obtain, update or otherwise process data in response thereto.
The server(s) may also be capable of executing programs or scripts in response to requests from user devices, such as by executing one or more Web applications that may be implemented as one or more scripts or programs written in any programming language, such as Java, C, C#or C++ or any scripting language, such as Perl, Python or TCL, as well as combinations thereof. The server(s) may also include database servers, including without limitation those commercially available from Oracle, Microsoft, Sybase, Apache Solr Postgres database, and IBM.
The environment can include a variety of data stores and other memory and storage media as discussed above. These can reside in a variety of locations, such as on a storage medium local to (and/or resident in) one or more of the computers or remote from any or all of the computers across the network. In a particular set of embodiments, the information may reside in a storage-area network (SAN) familiar to those skilled in the art. Similarly, any necessary files for performing the functions attributed to the computers, servers or other network devices may be stored locally and/or remotely, as appropriate. Where a system includes computerized devices, each such device can include hardware elements that may be electrically coupled via a bus, the elements including, for example, at least one central processing unit (CPU), at least one input device (e.g., a mouse, keyboard, a handset or hand-held controller, touch-sensitive display screen or keypad, microphone, camera, etc.) and at least one output device (e.g., a display device, printer or speaker). Such a system may also include one or more storage devices, such as disk drives, optical storage devices and solid-state storage devices such as random access memory (RAM) or read-only memory (ROM), as well as removable media devices, memory cards, flash cards, etc.
Such devices can also include a computer-readable storage media reader, a communications device (e.g., a modem, a network card (wireless or wired), an infrared communication device) and working memory as described above. The computer-readable storage media reader can be connected with, or configured to receive, a computer-readable storage medium representing remote, local, fixed and/or removable storage devices as well as storage media for temporarily and/or more permanently containing, storing, sending and retrieving computer-readable information. The system and various devices also typically will include a number of software applications, modules, services or other elements located within at least one working memory device, including an operating system and application programs such as a client application or Web browser. It should be appreciated that alternate embodiments may have numerous variations from that described above. For example, customized hardware might also be used and/or particular elements might be implemented in hardware, software (including portable software, such as applets) or both. Further, connection to other computing devices such as network input/output devices may be employed.
Storage media and computer readable media for containing code, or portions of code, can include any appropriate media known or used in the art, including storage media and communication media, such as but not limited to volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage and/or transmission of information such as computer readable instructions, data structures, program modules or other data, including RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disk (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices or any other medium which can be used to store the desired information and which can be accessed by a system device. Based on the disclosure and teachings provided herein, a person of ordinary skill in the art will appreciate other ways and/or methods to implement the various embodiments.
The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense. It will, however, be evident that various modifications and changes may be made thereunto without departing from the broader spirit and scope of the invention as set forth in the claims.
This application is a continuation of U.S. application Ser. No. 16/043,012, entitled “MULTI-DIMENSIONAL REFERENCE ELEMENT FOR MIXED REALITY ENVIRONMENTS,” filed Jul. 23, 2018, which is a continuation of, and claims priority to, U.S. application Ser. No. 15/594,370, entitled “MULTI-DIMENSIONAL REFERENCE ELEMENT FOR MIXED REALITY ENVIRONMENTS,” filed May 12, 2017, which is a continuation of, and claims priority to, U.S. Application No. 62/357,824, entitled “TRANSPORT CONTROLLER FOR VIRTUAL ENVIRONMENTS,” filed Jul. 1, 2017; and is related to co-pending U.S. patent application Ser. No. 16/012,521, entitled “MULTI-DIMENSIONAL REFERENCE ELEMENT FOR MIXED REALITY ENVIRONMENTS”, filed Jun. 19, 2018 which the full disclosure of these applications is incorporated herein by reference for all purposes.
Number | Name | Date | Kind |
---|---|---|---|
9210413 | Grinberg et al. | Dec 2015 | B2 |
9282309 | Cosic | Mar 2016 | B1 |
9818228 | Lanier et al. | Nov 2017 | B2 |
10042604 | Fallon et al. | Aug 2018 | B2 |
20080276178 | Fadell | Nov 2008 | A1 |
20100064239 | Crawford et al. | Mar 2010 | A1 |
20130117377 | Miller | May 2013 | A1 |
20140002496 | Lamb | Jan 2014 | A1 |
20140098137 | Fein | Apr 2014 | A1 |
20140184496 | Gribetz et al. | Jul 2014 | A1 |
20150081294 | Hsu et al. | Mar 2015 | A1 |
20170354883 | Benedetto et al. | Dec 2017 | A1 |
20180318716 | Benedetto | Nov 2018 | A1 |
Entry |
---|
Notice of Allowance for U.S. Appl. No. 16/012,521 by USPTO dated Jan. 28, 2020. |
USPTO Non-Final Office Action dated Dec. 27, 2018, for U.S. Appl. No. 16/043,012, filed Jul. 23, 2018, 8 pages. |
Number | Date | Country | |
---|---|---|---|
20190324720 A1 | Oct 2019 | US |
Number | Date | Country | |
---|---|---|---|
62357824 | Jul 2016 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 16043012 | Jul 2018 | US |
Child | 16457771 | US | |
Parent | 15594370 | May 2017 | US |
Child | 16043012 | US |