Searching for and retrieving relevant information using computing devices is a common task. Typical computing devices that are used to find and display information may include smartphones, tablets, notebook computers, and the like. Such computing devices, however, are typically limited to connecting a user to relevant information via dedicated graphical user interfaces and corresponding display elements, such as web search portals, hyperlinks, etc. These well-known interfaces and display elements generated by a corresponding computing device are tied to the device, and generally embody little or no context linking them to the user or the user's environment. Further, typical computing devices are fairly limited in their capacity to understand an environment in which they are used and/or to link user activity within the environment to information relevant to the user.
Various embodiments are disclosed herein that relate to systems and methods for interacting with a physical object in a mixed reality environment. For example, one disclosed embodiment provides a method for interacting with a physical object in a mixed reality environment. The method includes providing a head-mounted display device operatively connected to a computing device, with the head-mounted display device including a display system for presenting the mixed reality environment and a plurality of input sensors including a camera for capturing an image of the physical object. A physical object is identified based on the captured image, and an interaction context is determined for the identified physical object based on one or more aspects of the mixed reality environment.
The method includes querying a stored profile for the physical object to determine a plurality of interaction modes for the physical object. The method includes programmatically selecting a selected interaction mode from the plurality of interaction modes based on the interaction context. A user input directed at the physical object is received via one of the input sensors of the head-mounted display device. The user input is interpreted to correspond to a virtual action based on the selected interaction mode.
The method further includes executing the virtual action with respect to a virtual object that is associated with the physical object to thereby modify the virtual object's appearance. The method then displays the virtual object via the head-mounted display device with the modified appearance.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. Furthermore, the claimed subject matter is not limited to implementations that solve any or all disadvantages noted in any part of this disclosure.
The mixed reality interaction system 10 includes a mixed reality display program 32 that may generate a virtual environment 34 for display via a display device, such as the head-mounted display (HMD) device 36, to create a mixed reality environment 38. As described in more detail below, the virtual environment 34 may include one or more virtual objects, such as virtual object1 40, virtual object2 42, and geo-located target virtual object 52. Such virtual objects may include one or more virtual images, such as three-dimensional holographic objects and other virtual objects, as well as as two-dimensional virtual images, that are generated and displayed by HMD device 36.
The computing device 22 may take the form of a desktop computing device, a mobile computing device such as a smart phone, laptop, notebook or tablet computer, network computer, home entertainment computer, interactive television, gaming system, or other suitable type of computing device. Additional details regarding the components and computing aspects of the computing device 22 are described in more detail below with reference to
The computing device 22 may be operatively connected with the HMD device 36 using a wired connection, or may employ a wireless connection via WiFi, Bluetooth, or any other suitable wireless communication protocol. For example, the computing device 22 may be communicatively coupled to a network 16. The network 16 may take the form of a local area network (LAN), wide area network (WAN), wired network, wireless network, personal area network, or a combination thereof, and may include the Internet.
As described in more detail below, the computing device 22 may communicate with one or more other computing devices, such as server 20, via network 16. Additionally, the example illustrated in
With reference now also to
With reference to
The transparent display 44 may also be configured to enable a user to view a physical, real-world object, such as physical object1 54 and/or physical object2 58, in the physical environment 50 through one or more partially transparent pixels that are displaying a virtual object representation. As shown in
The HMD device 36 may also include various sensors and related systems. For example, the HMD device 36 may include an eye-tracking system 62 that utilizes at least one inward facing sensor 216. The inward facing sensor 216 may be an image sensor that is configured to acquire image data in the form of eye-tracking data 66 from a user's eyes. Provided the user has consented to the acquisition and use of this information, the eye-tracking system 62 may use this information to track a position and/or movement of the user's eyes.
In one example, the eye-tracking system 62 includes a gaze detection subsystem configured to detect a direction of gaze of each eye of a user. The gaze detection subsystem may be configured to determine gaze directions of each of a user's eyes in any suitable manner. For example, the gaze detection subsystem may comprise one or more light sources, such as infrared light sources, configured to cause a glint of light to reflect from the cornea of each eye of a user. One or more image sensors may then be configured to capture an image of the user's eyes.
Images of the glints and of the pupils as determined from image data gathered from the image sensors may be used to determine an optical axis of each eye. Using this information, the eye-tracking system 62 may then determine a direction and/or at what physical object or virtual object the user is gazing. Such eye-tracking data 66 may then be provided to the computing device 22. It will be understood that the gaze detection subsystem may have any suitable number and arrangement of light sources and image sensors.
The HMD device 36 may also include sensor systems that receive physical environment data 60 from the physical environment 50. For example, the HMD device 36 may include an optical sensor system 68 that utilizes at least one outward facing sensor 212, such as an optical sensor, to capture image data 74. Outward facing sensor 212 may detect movements within its field of view, such as gesture-based inputs or other movements performed by a user 46 or by a person or physical object within the field of view. Outward facing sensor 212 may also capture two-dimensional image information and depth information from physical environment 50 and physical objects within the environment. For example, outward facing sensor 212 may include a depth camera, a visible light camera, an infrared light camera, and/or a position tracking camera.
The HMD device 36 may include depth sensing via one or more depth cameras. In one example, each depth camera may include left and right cameras of a stereoscopic vision system. Time-resolved images from one or more of these depth cameras may be registered to each other and/or to images from another optical sensor such as a visible spectrum camera, and may be combined to yield depth-resolved video.
In other examples a structured light depth camera may be configured to project a structured infrared illumination, and to image the illumination reflected from a scene onto which the illumination is projected. A depth map of the scene may be constructed based on spacings between adjacent features in the various regions of an imaged scene. In still other examples, a depth camera may take the form of a time-of-flight depth camera configured to project a pulsed infrared illumination onto a scene and detect the illumination reflected from the scene. It will be appreciated that any other suitable depth camera may be used within the scope of the present disclosure.
Outward facing sensor 212 may capture images of the physical environment 50 in which a user 46 is situated. In one example, the mixed reality display program 32 may include a 3D modeling system that uses such input to generate a virtual environment 34 that models the physical environment 50 surrounding the user 46.
The HMD device 36 may also include a position sensor system 72 that utilizes one or more motion sensors 220 to capture position data 76, and thereby enable motion detection, position tracking and/or orientation sensing of the HMD device. For example, the position sensor system 72 may be utilized to determine a direction, velocity and acceleration of a user's head. The position sensor system 72 may also be utilized to determine a head pose orientation of a user's head. In one example, position sensor system 72 may comprise an inertial measurement unit configured as a six-axis or six-degree of freedom position sensor system. This example position sensor system may, for example, include three accelerometers and three gyroscopes to indicate or measure a change in location of the HMD device 36 within three-dimensional space along three orthogonal axes (e.g., x, y, z), and a change in an orientation of the HMD device about the three orthogonal axes (e.g., roll, pitch, yaw).
Position sensor system 72 may also support other suitable positioning techniques, such as GPS or other global navigation systems. Further, while specific examples of position sensor systems have been described, it will be appreciated that other suitable position sensor systems may be used. In some examples, motion sensors 220 may also be employed as user input devices, such that a user may interact with the HMD device 36 via gestures of the neck and head, or even of the body. The HMD device 36 may also include a microphone system 80 that includes one or more microphones 224 that capture audio data 82. In other examples, audio may be presented to the user via one or more speakers 228 on the HMD device 36.
The HMD device 36 may also include a processor 230 having a logic subsystem and a storage subsystem, as discussed in more detail below with respect to
It will be appreciated that the HMD device 36 and related sensors and other components described above and illustrated in
With reference now to
In the example illustrated in
Using this image data 74, the mixed reality interaction program 14 may identify one or more of these physical objects. For example, the mixed reality interaction program 14 may identify the photograph 316 and the face of the user's spouse in the photograph by comparing image data 74 of the face to stored face image data and corresponding identities located on server 20. In this example, the mixed reality interaction program 14 may include a face detection subsystem that detects face images in the image data 74. To detect a face image in the image data 74, the face detection subsystem may use any suitable face detection technologies and/or algorithms including local binary patterns (LBP), principal component analysis (PCA), independent component analysis (ICA), evolutionary pursuit (EP), Elastic Bunch Graph Matching (EBGM), or other suitable algorithm or combination of algorithms.
The face detection program may access object profile data 92 on server 20 to match image data 74 including the face in photograph 316 with one or more images and related user profile information corresponding to user's spouse. It will be appreciated that the face detection program may use any suitable facial recognition techniques to match image data 74 with stored images of the user's spouse.
The mixed reality interaction program 14 also determines an interaction context 84 for the framed photograph 316 based on one or more aspects of the mixed reality environment 38. With reference again to
In some examples and with reference to
In one example, the mixed reality interaction program determines that a current time of day is 10:30 am in the mixed reality environment 38. It will be appreciated that the time of day may be determined, for example, by an internal clock within computing device 22 or may be received from an external source via data feeds 86. Accordingly, in the present example the mixed reality interaction program 14 uses the current time of day of 10:30 am to determine a Business-Time interaction context for the photograph 316.
Having identified the face of the user's spouse in the photograph 316, the mixed reality interaction program 14 may then query a stored profile of the user's spouse in object profile data 92 to determine a plurality of interaction modes 88 that are available for the photograph 316. As described in more detail below, each of the plurality of interaction modes 88 may correspond to a different virtual action 90 that may be taken with respect to the photograph 316. In the present example, the available interaction modes 88 may include a Family Calendar interaction mode and a Family Reunion Planning interaction mode. In other examples, the mixed reality interaction program 14 may create a new profile for the photograph 316 that associates one or more interaction modes with the photograph. For example, the mixed reality interaction program 14 may enable the user 304 to create a new profile for the photograph 316 when, for example, a relationship status has changed.
Next, based on the determined interaction context, the mixed reality interaction program 14 may programmatically select a selected interaction mode. In the present example, with the determined interaction context being Business-Time, the mixed reality interaction program 14 programmatically selects a Family Calendar interaction mode. In one example, the Business-Time interaction context may be defined as a time of day falling between 8:00 am and 6:00 pm. The mixed reality interaction program 14 may be configured to pair the Business-Time interaction context with the Family Calendar interaction mode with respect to the photograph 316.
Another interaction context, a Personal-Time interaction context, may be defined as a time of day falling between 6:01 pm and 7:59 am. The mixed reality interaction program 14 may be configured to pair the Personal-Time interaction context with a Family Reunion Planning interaction mode with respect to the photograph 316.
In the present example, the mixed reality interaction program 14 may receive a user input from user 304 that is directed at the photograph 316. For example, the mixed reality interaction program 14 may receive eye-tracking data 66 from the HMD device 200 indicating that the user 304 is gazing at the photograph 316, as indicated by gaze line 336. In other examples, the user input may take one or more other forms including, for example, position data 76 and image data 74. The position data 76 may include head pose data indicating that the user 304 is facing the photograph 316. The image data 74 may include image data showing the user 304 pointing or gesturing at the photograph 316. It will be appreciated that other forms of user input may similarly be utilized.
The mixed reality interaction program 14 may then interpret the user 304 gazing at the photograph 316 to correspond to a virtual action 90. The virtual action 90 may be based on the selected interaction mode, in this example the Family Calendar interaction mode. The virtual action 90 may comprise presenting to the user 304 a virtual object in the form of the user's family calendar stored in a calendar application. It will be appreciated that the user's family calendar is associated with the photograph 316 of the user's spouse.
The mixed reality interaction program 14 may then execute the virtual action 90 with respect to a virtual instantiation of the user's family calendar to modify an appearance of the calendar. For example, to comfortably display the user's family calendar to the user 304, the mixed reality interaction program 14 may control the mixed reality display program 32 to scale the virtual instantiation of the calendar to a predetermined size. The mixed reality interaction program 14 may then display the virtual instantiation of the user's family calendar with the modified appearance, as indicated at 340, via the mixed reality display program 32 and HMD device 200.
In other examples, the mixed reality interaction program 14 may enable the user 304 to create and add new virtual actions 90 that are associated with the photograph 316. For example, the user 304 may create a virtual action that includes highlighting family members' birthdays on the family calendar. Thereafter, when the user 304 gazes at the photograph 316, the mixed reality interaction program 14 will highlight family members' birthdays on the displayed family calendar.
In one example, the mixed reality interaction program 14 may geo-locate the family calendar 340 in physical proximity to the photograph 316. As shown in
In another example, the user 304 may use his right hand 344 to point at the basketball 332 near wall 348. The mixed reality interaction program 14 may identify the basketball, determine an interaction context for the basketball, query a stored profile for the basketball, and programmatically select a selected interaction mode based on the interaction context in a manner similar to that described above for the photograph 316. A camera in the HMD device 200 may capture image data 74 showing the user's right hand 344 pointing at the basketball 332. The mixed reality interaction program 14 may interpret this user input to correspond to displaying a website of the user's favorite basketball team.
The mixed reality interaction program 14 may then modify image data of the website to, for example, enhance the contrast of the displayed website when displayed above the basketball and in front of the wall 348. The mixed reality interaction program 14 may then display a holographic version of the modified website 352 above the basketball 332. The website 352 may also be geo-located to the basketball 332 such that it follows the basketball to different locations in the office 308, as indicated by basketball 332′ and website 352′ located near the left rear corner of the office.
In some examples, the mixed reality interaction program 14 may be unable to determine the identity of a physical object, or may determine an incomplete identity of the object. For example, the mixed reality interaction program 14 may not recognize a visitor 342 who enters the office 308. The mixed reality interaction program 14 may also determine that the user 304 currently has a meeting in the office 308 scheduled in the user's calendar with a John Doe. Based on this meeting, the mixed reality interaction program 14 may then query the user 304, “Is this John Doe?” via text displayed on the HMD device 200. The user 304 may provide a confirmation of the identity of the visitor 342 by, for example, nodding, speaking “Yes”, or by any other suitable input.
In another example, where the user 304 does not confirm that the visitor 342 is John Doe, the mixed reality interaction program 14 may present another query to the user requesting the identity of the visitor. When the user 304 answers and provides an identity of the visitor, such as, “This is John Smith,” the program may then associate the identity John Smith with the visitor. It will also be appreciated that such identity confirmation processes may be used with any other physical objects.
In another example, the mixed reality interaction program 14 may determine a change in the interaction context 84 and may correspondingly change the interaction mode 86. For example, the user 304 may be working in the office 308 late one night. At 7:01 pm the mixed reality interaction program 14 determines that the interaction context changes from Business-Time to Personal-Time. Accordingly, the mixed reality interaction program 14 may programmatically select the Family Reunion Planning interaction mode with respect to the photograph 316.
The mixed reality interaction program 14 may then interpret the user 304 gazing at the photograph 316 to correspond to a virtual action 90 that is based on the Family Reunion Planning interaction mode. In this example, the virtual action 90 may comprise highlighting the dates 364 of the user's family reunion gathering in the user's family calendar 340. The mixed reality interaction program 14 may then execute the virtual action with respect to the calendar 340 to modify an appearance of the calendar. For example, the mixed reality interaction program 14 may control the mixed reality display program 32 to highlight in flashing color the dates 364 of the family reunion gathering in the calendar 340. The mixed reality interaction program 14 may then render and display the calendar 340 with the highlighted dates 364 via the mixed reality display program 32.
In another example, after determining a change in the interaction context 84 to the Family Reunion Planning interaction mode, the mixed reality interaction program 14 may execute a different virtual action 90 with respect to a different virtual object that is associated with the photograph 316. For example, the mixed reality interaction program 14 may display a virtual family reunion To-Do List 360 via the mixed reality display program 32 and HMD device 200 to the user 304. As with the family calendar 340, the mixed reality interaction program 14 may control the mixed reality display program 32 to scale a virtual instantiation of the family reunion To-Do List 360 to a predetermined size. The mixed reality interaction program 14 may then display the To-Do List 360, via the mixed reality display program 32 with the modified appearance.
In another example, the user 304 may desire to manually switch between the Family Calendar interaction mode and the Family Reunion Planning interaction mode. The user may request that the current Family Calendar interaction mode be modified by, for example, speaking “Switch to Family Reunion Planning.” The mixed reality interaction program 14 interprets this user input as a request to modify the interaction mode, and changes the interaction mode accordingly. The user may then point at the photograph 316, which is captured as image data 74 via the HMD device 200. The mixed reality interaction program 14 interprets this user input as corresponding to a virtual action 90 based on the Family Reunion Planning interaction mode, such as displaying the virtual family reunion To-Do List 360. The mixed reality interaction program 14 may then execute the virtual action and display the family reunion To-Do List 360 with a modified appearance as described above.
In another example, the mixed reality interaction program 14 may display a target virtual object that may function to enable user interaction with another virtual object in a manner similar to that described above. For example, the mixed reality interaction program 14 may display a geo-located target virtual object 52 in the form of a holographic wizard 370 located on table 324 in the mixed reality environment 38. The mixed reality interaction program 14 may then determine a Business-Time interaction context for the wizard 370 based on one or more aspects of the mixed reality environment 38.
The mixed reality interaction program may query a stored profile of the holographic wizard 370 in the object profile data 92 to determine a plurality of interaction modes 88 that are available for the wizard. In the present example, the available interaction modes 88 may include a Stock Market interaction mode and a Movie Listings interaction mode. Next, based on the determined interaction context, the mixed reality interaction program 14 may programmatically select a selected interaction mode. In the present example, with the determined interaction context being Business-Time, the mixed reality interaction program 14 programmatically selects the Stock Market interaction mode.
In the present example, the mixed reality interaction program 14 may receive a user input from user 304 that is directed at the holographic wizard 370, such as position data 76 including head pose data indicating that the user's face is oriented toward the wizard 370. The mixed reality interaction program 14 may then interpret the user 304 facing the wizard 370 to correspond to a virtual action 90 that is based on the selected interaction mode, in this example the Stock Market interaction mode, and is associated with the wizard 370. The virtual action 90 may comprise presenting a stock market summary 374 via the mixed reality display program 32 and HMD device 200 to the user 304.
The mixed reality interaction program 14 may then execute the virtual action 90 with respect to the stock market summary to, for example, highlight quotes of stocks owned by the user 304, such as the XYZ stock quote 376. The mixed reality interaction program 14 may control the mixed reality display program 32 to highlight the XYZ stock quote 376. The mixed reality interaction program 14 may then display the stock market summary 374 via the mixed reality display program 32.
In another example, the mixed reality interaction program 14 may also use a user input to create an association between a physical object and a selected interaction mode. With continued reference to
Using image data 74, the mixed reality interaction program 14 may recognize the user's rotation of the basketball 332 as a trigger to display to the user 304 the available interaction modes 88 for the basketball. Such interaction modes 88 may include, for example, displaying the Anytown Ants website, displaying a scoreboard of current basketball games, and displaying a calendar showing upcoming games in the user's basketball league. The user 304 may then select the Anytown Ants website interaction mode to associate with the basketball 332 via user input received by the HMD device 200. Accordingly, the mixed reality interaction program 14 may then be configured to associate the basketball 332 with the Anytown Ants website interaction mode. Subsequently, the mixed reality interaction program 14 may execute a virtual action with respect to the Anytown Ants website that is associated with the basketball 332 when user input directed at the basketball 332 is received, as described above.
It will be appreciated that the present system may enhance a user's ability to associate particular information sources, portals, etc. with objects in the mixed reality environment 38, whether physical objects or virtual objects. For example, by linking the holographic wizard 370 with a displayed stock market summary, the user may more easily remember to use the wizard to see the stock market summary during business hours. The user may, for example, memorize the phrase, “I'm a Wizard of the stock market” to provide an easily-remembered cognitive link between the holographic wizard 370 in the user's office 308 and the stock market summary.
In another example, the mixed reality interaction program 14 may generate audio feedback that is perceived by the user 304 as originating from a virtual object or physical object in the office 308. The mixed reality interaction program 14 may utilize a three-dimensional audio positioning technique, such as a head-related transfer function, to generate such audio feedback via speakers 228 of the HMD 200. In one example, the mixed reality interaction program 14 may generate audio comprising a broadcast of an Anytown Ants basketball game that is perceived by the user 304 as originating from the virtual website 352 or the basketball 332.
In another example, the mixed reality interaction program 14 may be configured to take a virtual action with respect to an object that is placed on the table 324. With reference to
In another example, the mixed reality interaction program 14 may be configured to take a virtual action when a state of an object changes. For example, the mixed reality interaction program 14 may identify that the user 304 has begun drinking his regular cup of morning coffee at 6:30 am. The program may monitor the amount of coffee remaining in the user's cup. If a predetermined amount of coffee is remaining in the cup and the user attempts to check email, the program may prevent or dissuade the user from checking email. For example, upon detecting an attempt to check email, the program may display a message to the user asking, “Wouldn't you like to finish your relaxing cup of coffee first?”
In another example, a document related to a work project managed by the user 304 may be linked to the user, such as in the object profile data 92. A fellow team member of the work project may also wear an HMD device 200 that is communicatively coupled to a mixed reality interaction program 14. When the fellow team member sees the user 304, the team member's mixed reality interaction program 14 recognizes the user 304 and displays the document related to the work project via the team members' HMD device 200.
In another example, a team member may virtually deliver a document to the user 304 via leaving a physical or virtual object on the user's desk 312. For example, a team member of the user 304 may associate the document with a cardboard cutout of the letter “D.” The team member may leave the cutout D on the user's desk 312 while the user 304 is away. Upon returning to the office 308, the user's HMD device 200 may recognize the cutout D. The HMD device 200 may indicate to the user 304 that the cutout D is actively linked to virtual information by, for example, animating the cutout D, such as by causing the cutout D to glow when viewed. The user 304 may request to view the linked virtual information, and the HMD device 200 may then access the document linked to the cutout D, and may display the document for the user 304.
In another example, the user 304 may provide a user input that applies to multiple virtual objects associated with multiple physical objects. For example and with reference to
In another example, when the user 304 gazes at the basketball 332, the mixed reality interaction program 14 may interpret the user's gaze to correspond with displaying over the basketball a virtual volume control knob. The volume control knob may be virtually rotated by the user 304 to adjust the volume of the broadcast of the Anytown Ants basketball game to which the user is listening. The current volume may also be displayed as a digital volume indicator 380. In another example, the user 304 may pick up and physically rotate the basketball 332 to correspondingly adjust the volume of the broadcast via the virtual volume control knob.
In another example, while the user 304 is away from the office 308, the visitor 342 may pick up and rotate the basketball 332 to lower the volume of the basketball game broadcast that is being delivered by speakers in the room 308. When the user 304 returns to the office 308, the mixed reality interaction program 14 may identify the new orientation of the basketball 332 and correspondingly lower the volume of the broadcast being delivered to the user via HMD 200. The program may also correspondingly modify the volume indicator 380.
With reference to
At 414 the method 400 includes determining an interaction context for the identified physical object based on one or more aspects of the mixed reality environment. At 416, the aspects of the mixed reality environment may comprise information received from one or more data feeds. At 418 the method 400 includes querying a stored profile for the physical object to determine a plurality of interaction modes for the object. At 420 the method 400 includes programmatically selecting a selected interaction mode from the plurality of interaction modes based on the interaction context. At 422 the method 400 includes receiving a user input directed at the physical object via one of the input sensors of the HMD device. At 424 the method 400 includes interpreting the user input to correspond to a virtual action based on the selected interaction mode.
At 426 the method 400 includes executing the virtual action with respect to a virtual object associated with the physical object to thereby modify an appearance of the virtual object. And at 428 the method 400 includes displaying the virtual object via the HMD device with the modified appearance. With reference now to
In another example, at 434 the method 400 may include, where the selected interaction mode is a first selected interaction mode and the virtual action is a first virtual action, determining a change in the interaction context. At 436 the method 400 may include, based on the change, programmatically selecting a second selected interaction mode from a plurality of interaction mode. At 438 the method 400 may include interpreting user input to correspond to a second virtual action based on the second selected interaction mode. At 440 the method 400 may include executing the second virtual action with respect to the virtual object associated with the physical object to modify the appearance of the virtual object. And at 442 the method 400 may include displaying the virtual object via the HMD device with the modified appearance.
In another example, at 444 the method 400 may include executing a second virtual action with respect to a second virtual object that is associated with the physical object to modify the appearance of the second virtual object. At 446 the method 400 may include displaying the second virtual object via the HMD device with the modified appearance.
In another example, at 448 the method 400 may include receiving a second user input via an input sensor of the HMD device. At 450 the method 400 may include, where the selected interaction mode is a first selected interaction mode, interpreting the second user input to correspond to a request to modify the first selected interaction mode. With reference now to
At 458 the method 400 may include executing the second virtual action with respect to the virtual object associated with the physical object to modify the appearance of the virtual object. At 460 the method may include displaying the virtual object via the HMD device with the modified appearance.
In another example, at 462 the method 400 may include displaying a geo-located target virtual object in the mixed reality environment. At 464 the method 400 may include determining an interaction context for the geo-located target virtual object based on one or more aspects of the mixed reality environment. At 466 the method may include querying a stored profile for the geo-located target virtual object to determine a plurality of interaction modes for the geo-located target virtual object. At 468 the method 400 may include programmatically selecting a selected interaction mode for the geo-located target virtual object based on the interaction context. At 470 the method 400 may include receiving a second user input directed at the geo-located target virtual object via an input sensor of the HMD device.
At 472 the method may include interpreting the second user input to correspond to a second virtual action based on the selected interaction mode. At 474 the method 400 may include executing the second virtual action with respect to the geo-located target virtual object to modify the appearance of the geo-located target virtual object. And at 476 the method 400 may include displaying the geo-located target virtual object via the HMD device with the modified appearance.
It will be appreciated that method 400 is provided by way of example and is not meant to be limiting. Therefore, it is to be understood that method 400 may include additional and/or alternative steps than those illustrated in
As shown in
Logic subsystem 504 may include one or more physical devices configured to execute one or more instructions. For example, the logic subsystem 504 may be configured to execute one or more instructions that are part of one or more applications, services, programs, routines, libraries, objects, components, data structures, or other logical constructs. Such instructions may be implemented to perform a task, implement a data type, transform the state of one or more devices, or otherwise arrive at a desired result.
The logic subsystem 504 may include one or more processors that are configured to execute software instructions. Additionally or alternatively, the logic subsystem may include one or more hardware or firmware logic machines configured to execute hardware or firmware instructions. Processors of the logic subsystem may be single core or multicore, and the programs executed thereon may be configured for parallel or distributed processing. The logic subsystem may optionally include individual components that are distributed throughout two or more devices, which may be remotely located and/or configured for coordinated processing. One or more aspects of the logic subsystem may be virtualized and executed by remotely accessible networked computing devices configured in a cloud computing configuration.
Storage subsystem 508 may include one or more physical, persistent devices configured to hold data and/or instructions executable by the logic subsystem 504 to implement the herein described methods and processes. When such methods and processes are implemented, the state of storage subsystem 508 may be transformed (e.g., to hold different data).
Storage subsystem 508 may include removable media and/or built-in devices. Storage subsystem 508 may include optical memory devices (e.g., CD, DVD, HD-DVD, Blu-Ray Disc, etc.), semiconductor memory devices (e.g., RAM, EPROM, EEPROM, etc.) and/or magnetic memory devices (e.g., hard disk drive, floppy disk drive, tape drive, MRAM, etc.), among others. Storage subsystem 508 may include devices with one or more of the following characteristics: volatile, nonvolatile, dynamic, static, read/write, read-only, random access, sequential access, location addressable, file addressable, and content addressable.
In some embodiments, aspects of logic subsystem 504 and storage subsystem 508 may be integrated into one or more common devices through which the functionally described herein may be enacted, at least in part. Such hardware-logic components may include field-programmable gate arrays (FPGAs), program- and application-specific integrated circuits (PASIC/ASICs), program- and application-specific standard products (PSSP/ASSPs), system-on-a-chip (SOC) systems, and complex programmable logic devices (CPLDs), for example.
It is to be appreciated that storage subsystem 508 includes one or more physical, persistent devices. In contrast, in some embodiments aspects of the instructions described herein may be propagated in a transitory fashion by a pure signal (e.g., an electromagnetic signal, an optical signal, etc.) that is not held by a physical device for at least a finite duration. Furthermore, data and/or other forms of information pertaining to the present disclosure may be propagated by a pure signal via computer-readable communication media.
When included, display subsystem 512 may be used to present a visual representation of data held by storage subsystem 508. As the above described methods and processes change the data held by the storage subsystem 508, and thus transform the state of the storage subsystem, the state of the display subsystem 512 may likewise be transformed to visually represent changes in the underlying data. The display subsystem 512 may include one or more display devices utilizing virtually any type of technology. Such display devices may be combined with logic subsystem 504 and/or storage subsystem 508 in a shared enclosure, or such display devices may be peripheral display devices. The display subsystem 512 may include, for example, the display system 48 and transparent display 44 of the HMD device 36.
When included, communication subsystem 516 may be configured to communicatively couple computing system 500 with one or more networks and/or one or more other computing devices. Communication subsystem 516 may include wired and/or wireless communication devices compatible with one or more different communication protocols. As nonlimiting examples, the communication subsystem 516 may be configured for communication via a wireless telephone network, a wireless local area network, a wired local area network, a wireless wide area network, a wired wide area network, etc. In some embodiments, the communication subsystem may allow computing system 500 to send and/or receive messages to and/or from other devices via a network such as the Internet.
Sensor subsystem 520 may include one or more sensors configured to sense different physical phenomenon (e.g., visible light, infrared light, sound, acceleration, orientation, position, etc.) as described above. Sensor subsystem 520 may be configured to provide sensor data to logic subsystem 504, for example. As described above, such data may include eye-tracking information, image information, audio information, ambient lighting information, depth information, position information, motion information, user location information, and/or any other suitable sensor data that may be used to perform the methods and processes described above.
When included, input subsystem 522 may comprise or interface with one or more sensors or user-input devices such as a game controller, gesture input detection device, voice recognizer, inertial measurement unit, keyboard, mouse, or touch screen. In some embodiments, the input subsystem 522 may comprise or interface with selected natural user input (NUI) componentry. Such componentry may be integrated or peripheral, and the transduction and/or processing of input actions may be handled on- or off-board. Example NUI componentry may include a microphone for speech and/or voice recognition; an infrared, color, stereoscopic, and/or depth camera for machine vision and/or gesture recognition; a head tracker, eye tracker, accelerometer, and/or gyroscope for motion detection and/or intent recognition; as well as electric-field sensing componentry for assessing brain activity.
The term “program” may be used to describe an aspect of the mixed reality interaction system 10 that is implemented to perform one or more particular functions. In some cases, such a program may be instantiated via logic subsystem 504 executing instructions held by storage subsystem 508. It is to be understood that different programs may be instantiated from the same application, service, code block, object, library, routine, API, function, etc. Likewise, the same program may be instantiated by different applications, services, code blocks, objects, routines, APIs, functions, etc. The term “program” is meant to encompass individual or groups of executable files, data files, libraries, drivers, scripts, database records, etc.
It is to be understood that the configurations and/or approaches described herein are exemplary in nature, and that these specific embodiments or examples are not to be considered in a limiting sense, because numerous variations are possible. The specific routines or methods described herein may represent one or more of any number of processing strategies. As such, various acts illustrated may be performed in the sequence illustrated, in other sequences, in parallel, or in some cases omitted. Likewise, the order of the above-described processes may be changed.
The subject matter of the present disclosure includes all novel and nonobvious combinations and subcombinations of the various processes, systems and configurations, and other features, functions, acts, and/or properties disclosed herein, as well as any and all equivalents thereof.