EP3881165B1 - Virtual content display opportunity in mixed reality - Google Patents
Virtual content display opportunity in mixed reality Download PDFInfo
- Publication number
- EP3881165B1 EP3881165B1 EP19836003.4A EP19836003A EP3881165B1 EP 3881165 B1 EP3881165 B1 EP 3881165B1 EP 19836003 A EP19836003 A EP 19836003A EP 3881165 B1 EP3881165 B1 EP 3881165B1
- Authority
- EP
- European Patent Office
- Prior art keywords
- virtual content
- content item
- display device
- virtual
- head
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/017—Head mounted
- G02B27/0172—Head mounted characterised by optical features
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
- G06F3/013—Eye tracking input arrangements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/017—Gesture based interaction, e.g. based on a set of recognized hand gestures
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
- G06Q30/0242—Determining effectiveness of advertisements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
- G06Q30/0251—Targeted advertisements
- G06Q30/0255—Targeted advertisements based on user history
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
- G06Q30/0251—Targeted advertisements
- G06Q30/0261—Targeted advertisements based on user location
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
- G06Q30/0277—Online advertisement
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating three-dimensional [3D] models or images for computer graphics
- G06T19/006—Mixed reality
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/0101—Head-up displays characterised by optical features
- G02B2027/0138—Head-up displays characterised by optical features comprising image capture systems, e.g. camera
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/0101—Head-up displays characterised by optical features
- G02B2027/014—Head-up displays characterised by optical features comprising information/image processing systems
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/017—Head mounted
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/0179—Display position adjusting means not related to the information to be displayed
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
- G06F3/012—Head tracking input arrangements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0482—Interaction with lists of selectable items, e.g. menus
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04845—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating three-dimensional [3D] models or images for computer graphics
- G06T19/20—Editing of three-dimensional [3D] images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/10—Terrestrial scenes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/131—Protocols for games, networked simulations or virtual reality
Definitions
- a user wears a head mounted device equipped with a see-through display that displays holograms superimposed over the user's view of the real world.
- the holograms can represent information that augment the user's experience of the real-world environment.
- Holograms may be "screen-locked” to appear in a fixed position relative to the display, or "world-locked” to appear in a fixed position relative to the real world environment.
- content can be displayed at any location within the three dimensional environment. Further, a user may freely change their position and viewpoint when walking through the environment.
- the world-locked holograms visible to the user at any given time are dependent on the user's movement and gaze orientation and the world-locked location of the holograms.
- US 2013/293530 A1 relates to an augmented reality system that provides augmented product and environment information to a wearer of a see through head mounted display.
- the augmentation information may include advertising, inventory, pricing and other information about products a wearer may be interested in. Interest is determined from wearer actions and a wearer profile.
- WO 2018/031050 A1 discloses a method and system for generating a customized augmented reality environment, comprising generating a signature for a multimedia content, determining, based on the generated signature, a selection of an augmented reality character, wherein each augmented reality character is associated with a character signature, identifying at least a potential placement location in the multimedia content element, wherein each potential placement location is associated with a portion of the generated signature, correlating between the potential placement location signature portion and the character signature to select, for each augmented reality character, a placement location in the multimedia content element, and generating a customized augmented reality environment, wherein the customized augmented reality environment includes each augmented reality character superimposed on the multimedia content element at the respective placement location.
- a head-mounted display device including an at least partially see-through display, one or more input devices including one or more image sensors configured to collect imaging data of a physical environment, one or more communication devices, and a processor.
- the processor may be configured to output for display on the display a mixed reality experience including one or more virtual objects superimposed upon the physical environment.
- the processor may be further configured to transmit the imaging data to a server computing device via the one or more communication devices.
- the processor may be further configured to receive, from the server computing device, an identification of a virtual content item display opportunity.
- the identification of the virtual content item display opportunity may include a determination that the mixed reality experience and one or more physical features identified from the imaging data satisfy one or more spatial and/or temporal constraints.
- the processor may be further configured to transmit a request for one or more virtual content items to the server computing device based on the identification of the virtual content item display opportunity.
- the processor may be further configured to receive the one or more virtual content items from the server computing device.
- the processor may be further configured to output the one or more virtual content items for display on the display at one or more respective dynamically positioned content locations in the physical environment.
- digital advertisements are typically presented as banner advertisements on webpages, or alternatively as videos.
- Banner advertisements are presented in a fixed location on a two dimensional screen that is being viewed by a user, however in mixed reality environments the user is free to look in any direction when interacting with the environment so there is no guarantee that a user will be looking in the direction of content such as an advertisement when it is displayed.
- banner advertisements are typically visible to users for brief periods of time.
- users of a mixed reality systems frequently interact with the mixed reality environments for longer periods of time in comparison to non-mixed-reality webpages and videos.
- banner advertisements may obstruct users' views of mixed reality environments and make it more difficult for the users to interact with physical and/or virtual objects. This obstruction of the users' views of objects may also occur when existing systems and methods for presenting video advertisements are used.
- the head-mounted display device 10 of FIG. 1 may include memory 12 and/or a processor 14.
- the memory 12 may include volatile and/or non-volatile memory and may be operatively coupled to the processor 14.
- the head-mounted display device 10 may further include one or more input devices, which may be included in the head-mounted display device 10 or communicatively coupled to the head-mounted display device 10.
- the one or more input devices may include one or more image sensors 30 configured to collect imaging data 50 of a physical environment 24.
- the one or more input devices may further include an inward-facing image sensor 31 configured to collect inward-facing imaging data 51 of a user.
- the one or more input devices may further include a position sensor 32 configured to determine a position of the head-mounted display device 10 in the physical environment.
- the one or more input devices may further include a microphone 33.
- One or more other input devices such as a touchscreen, a trackpad, a mouse, a joystick, a keyboard, and/or a button may be included in or communicatively coupled to the head-mounted display device 10 in some embodiments.
- the head-mounted display device 10 may further include one or more output devices, which may include an at least partially see-through display 20.
- the one or more output devices may further include one or more of a speaker 36, a haptic feedback device 38, and/or one or more other output devices.
- the head-mounted display device 10 may further include one or more communication devices 16 via which the processor 14 of the head-mounted display device 10 may send data to and/or receive data from one or more other computing devices. This communication may occur over a network 80.
- the functions of the memory 12 and processor 14 of the head-mounted display device 10 may be performed at least in part by an offboard computing system with which the head-mounted display device 10 communicates via the one or more communication devices 16.
- the offboard computing system is a server computing device 110.
- FIG. 2 shows an example embodiment of the head-mounted display device 10 in which the head-mounted display device 10 takes the form of wearable glasses or goggles, but it will be appreciated that other forms are possible.
- the head-mounted display device 10 may include an output device suite including a display 20.
- the head-mounted display device 10 may be configured in an augmented reality configuration to present an augmented reality environment, and thus the display 20 may be an at least partially see-through stereoscopic display configured to visually augment an appearance of a physical environment 24 being viewed by the user through the display 20.
- the display 20 may include one or more regions that are transparent (e.g. optically clear) and may include one or more regions that are opaque or semi-transparent. In other examples, the display 20 may be transparent (e.g. optically clear) across an entire usable display surface of the display 20.
- the output device suite of the head-mounted display device 10 may, for example, include an image production system that is configured to display one or more virtual objects 22 to the user with the display 20.
- the processor 14 may be configured to output for display on the display 20 a mixed reality experience 40 including one or more virtual objects 22 superimposed upon the physical environment 24.
- the virtual objects 22 are visually superimposed onto the physical environment 24 that is visible through the display 20 so as to be perceived at various depths and locations.
- the head-mounted display device 10 may use stereoscopy to visually place a virtual object 22 at a desired depth by displaying separate images of the virtual object 22 to both of the user's eyes. Using this stereoscopy technique, the head-mounted display device 10 may control the displayed images of the virtual objects 22, such that the user will perceive that the virtual objects 22 exist at a desired depth and location in the viewed physical environment 24.
- the output device suite of the head-mounted display device 10 may further include one or more speakers 36 configured to emit sound.
- the head-mounted display device 10 may include at least a left speaker 36A and a right speaker 36B situated such that the left speaker 36A may be located proximate the user's left ear and the right speaker 36B may be located proximate the user's right ear when the head-mounted display device 10 is worn.
- the one or more speakers 36 may emit stereo sound output.
- the output device suite may further include one or more haptic feedback devices 38 configured to provide tactile output (e.g. vibration).
- the head-mounted display device 10 may include an input device suite including one or more input devices.
- the input device suite of the head-mounted display device 10 may include one or more imaging sensors.
- the input device suite includes an outward-facing optical sensor 30 that may be configured to detect the real-world background from a similar vantage point (e.g., line of sight) as observed by the user through the display 20 in an augmented reality configuration.
- the input device suite may additionally include an inward-facing optical sensor 31 that may be configured to detect a gaze direction of the user's eyes.
- the outward facing optical sensor 30 and/or the inward-facing optical sensor 31 may include one or more component sensors, including an RGB camera and a depth camera.
- the RGB camera may be a high definition camera or have another resolution.
- the depth camera may be configured to project non-visible light and capture reflections of the projected light, and based thereon, generate an image comprised of measured depth data for each pixel in the image.
- This depth data may be combined with color information from the image captured by the RGB camera, into a single image representation including both color data and depth data, if desired.
- the input device suite of the head-mounted display device 10 may further include a position sensor system that may include one or more position sensors 32 such as accelerometer(s), gyroscope(s), magnetometer(s), global positioning system(s), multilateration tracker(s), and/or other sensors that output position data 52 as a position, orientation, and/or movement of the relevant sensor.
- the input device suite may further include one or more microphones 33 configured to collect sound data 53.
- Optical sensor information received from the one or more imaging sensors and/or position data 52 received from position sensors 32 may be used to assess a position and orientation of the vantage point of head-mounted display device 10 relative to other environmental objects.
- the position and orientation of the vantage point may be characterized with six degrees of freedom (e.g., world-space X, Y, Z, pitch, roll, yaw).
- the vantage point may be characterized globally or independent of the real-world background.
- the position and/or orientation may be determined by the processor 14 of the head-mounted display device 10 and/or by an off-board computing system.
- the optical sensor information and the position sensor information may be used by the head-mounted display system to perform analysis of the real-world background, such as depth analysis, surface reconstruction, environmental color and lighting analysis, or other suitable operations.
- the optical and positional sensor information may be used to create a virtual model of the real-world background.
- the position and orientation of the vantage point may be characterized relative to this virtual space.
- the virtual model may be used to determine positions of virtual objects 22 in the virtual space and add additional virtual objects 22 to be displayed to the user at a desired depth and location.
- the virtual model is a three-dimensional model and may be referred to as "world space,” and may be contrasted with the projection of world space viewable on the display 20, which is referred to as "screen space.” Additionally, the optical sensor information received from the one or more image sensors 30 may be used to identify and track objects in the field of view of the one or more image sensors 30. The optical sensors may also be used to identify machine recognizable visual features in the physical environment 24 and use the relative movement of those features in successive frames to compute a frame to frame relative pose change for the head mounted display device 10 within the world space of the virtual model.
- the head-mounted display device 10 may further include a communication system including one or more communication devices 16, which may include one or more receivers 16A and/or one or more transmitters 16B.
- the one or more receivers 16A may be configured to receive data from the offboard computing system
- the one or more transmitters 16B may be configured to send data to the off-board computing system.
- the head-mounted display device 10 may communicate with the off-board computing system via a network, which may be a wireless local- or wide-area network. Additionally or alternatively, the head-mounted display device 10 may communicate with the off-board computing system via a wired connection.
- the head-mounted display device 10 may be further configured to communicate with a server computing system via the communication system.
- the processor 14 may be further configured to transmit the imaging data 50 to a server computing device 110 via the one or more communication devices such that the server computing device 110 may identify one or more physical features 26 in the physical environment 24 based on the imaging data 50.
- identification of the one or more physical features 50 may be performed at least in part at the processor 14 of the head-mounted display device 10.
- the one or more physical feature identifications 54 may be made using a machine learning algorithm.
- the physical environment 24 may be developed based on the one or more physical feature identifications 54 of the one or more physical features 26.
- the virtual model may include one or more geometric features of each of the one or more physical features 26.
- the processor 14 may be further configured to transmit the inward-facing imaging data to the server computing device 110. Additionally or alternatively, in embodiments in which the one or more input devices of the head-mounted display device 10 include one or more position sensors 32 and/or one or more microphones 33, the processor 14 may be further configured to transmit position data 52 received from the one or more position sensor 32 and/or sound data 53 received from the one or more microphones 33 respectively to the server computing device 110.
- the processor 14 may be further configured to receive, from the server computing device 110, a determination of a gaze direction 64 of the user based on the inward-facing imaging data 51.
- the gaze direction 64 may be determined at the processor 14.
- the gaze direction 64 may be correlated with the position and orientation of the head-mounted display device 10 itself as determined using position data 52 and imaging data 50.
- the processor 14 may be further configured to receive an indication of a change in position 67 from the server computing device 110.
- the mixed reality experience 40 may include one or more virtual objects 22 superimposed upon the physical environment 24.
- the one or more virtual objects 22 may be received from the server computing device 110.
- the processor 14 and/or the server computing device 110 may be configured to modify the one or more virtual objects 22 included in the mixed reality experience 40 over time according to rules specified by the mixed reality experience 40.
- the mixed reality experience 40 may include a physics engine configured to model responses of the one or more virtual objects 22 to features of the physical environment 24 and/or events occurring in the physical environment 24.
- the physics engine may additionally or alternatively model interactions of the one or more virtual objects 22 with each other.
- the processor 14 may be further configured to modify the one or more virtual objects 22 based on user input received from the one or more input devices.
- the mixed reality experience 40 may be an interactive experience.
- the server computing device 110 may be further configured to identify a virtual content item display opportunity 44.
- the virtual content item display opportunity 44 may be a set of conditions in the physical environment 24 and/or the mixed reality experience 40 that are conducive to displaying a virtual content item 60 on the display 20 of the head-mounted display device 10.
- the server computing device 110 may be configured to identify the virtual content item display opportunity 44 at least in part by determining that the one or more identified physical features 26 have a predetermined set of geometric characteristics.
- the virtual content item display opportunity 44 may occur when a substantially flat and vertical surface of sufficient size to accommodate the virtual poster is determined to be present in the physical environment 24.
- the virtual content item display opportunity 44 may occur when a road is determined to be present in the physical environment 24.
- the server computing device 110 may be configured to identify the virtual content item display opportunity 44 at least in part by determining that the one or more identified physical features 26 satisfy one or more spatial and/or temporal constraints 42.
- the one or more spatial and/or temporal constraints 42 may include one or more position constraints 42A on respective positions at which the one or more virtual content items 60 may be displayed.
- the one or more position constraints 42A may specify, for each virtual content item 60, a subset of the physical environment 24 within which the virtual content item 60 is eligible to be displayed.
- the one or more position constraints 42A may specify that a virtual content item 60 may be displayed at one or more locations that do not overlap a preexisting virtual object 22 or physical feature 26.
- the one or more spatial and/or temporal constraints 42 may include one or more timing constraints 42B on respective times at which the one or more virtual content items 60 may be displayed.
- the server computing device 110 may determine based on the mixed reality experience 40 that the user is engaged in an activity (e.g. a video call) that would be undesirable to interrupt.
- the timing constraint 42B may specify a maximum duration for which the virtual content item 60 may be displayed.
- the one or more constraints may further include one or more size constraints 42C on respective sizes of the one or more virtual content items 60 and/or one or more shape constraints 42D on respective shapes of the one or more virtual content items 60.
- the one or more size constraints 42C and the one or more shape constraints 42D may, for example, specify that a virtual content item 60 may be displayed at one or more surfaces or volumes that can accommodate the virtual content item 60 without the virtual content item 60 overlapping one or more virtual objects 22 and/or physical features 26.
- Other constraints 42 may additionally or alternatively be applied when identifying virtual content display opportunities 44.
- the server computing device 110 may identify one or more candidate locations at which the virtual content item 60 may be displayed in the physical environment 24.
- Example candidate locations 70 in the physical environment 24 are shown in FIG. 3A according to one example embodiment.
- the candidate locations 70 may be locations at which the virtual content item 60 is anchored.
- the candidate locations 70 are all located on substantially flat horizontal surfaces.
- one or more candidate locations on vertical surfaces or surfaces of other shapes may be identified.
- One or more candidate locations may additionally or alternatively be floating candidate locations positioned apart from surfaces in the physical environment 24.
- FIG. 3A also shows an example candidate area 72.
- the virtual content item 60 may be anchored at any point within the candidate area 72.
- one or more candidate lines and/or candidate volumes may be identified along which or within which a virtual object may be displayed.
- the processor 14 may be further configured to transmit a request for one or more virtual content items 60 to the server computing device 110 based on the identification of the virtual content item display opportunity 44. After sending the request, the processor 14 may receive the one or more virtual content items 60 from the server computing device 110.
- the request sent from the head-mounted display device 10 to the server computing device 110 and the response sent from the server computing device 110 to the head-mounted display device are discussed in further detail below with reference to FIG. 8 .
- the processor 14 may be further configured to output the one or more virtual content items 60 for display on the display 20 based on the identification of the virtual content item display opportunity 44, as shown in FIG. 3B .
- Each virtual content item 60 may be displayed at a respective dynamically positioned content location 68 in the physical environment 24 selected from among the one or more candidate locations 70 by the server computing device 110.
- the server computing device 110 may apply one or more rules and/or heuristics to determine a candidate location 70 of the one or more candidate locations 70 at which to display the virtual content item 60. In one example, the server computing device 110 may assign a score to each candidate location 70 and select the candidate location 70 that has the highest score.
- the score of a candidate location 70 may be based on one or more properties of the candidate location 70 such as distance from the user 90, angular displacement from the gaze direction 64, proximity to one or more virtual objects 22, size of a candidate area 72, user-specified preferences, one or more physical feature identifications 54, and/or one or more other scoring criteria.
- the score may be a weighted score expressed as a sum of a plurality of scoring criteria with respective weights.
- the virtual content item 60 which depicts a soft drink bottle, is displayed at the candidate location 70 closest to the user 90.
- the virtual content item display opportunity 44 may occur when an event or activity other than a physical feature 26 detected with the image sensor 30 is present in the physical environment 24 or the mixed reality experience 40.
- the server computing device 110 may determine based on the imaging data 50 and/or position data 52 received from the position sensor 32 that a user 90 is running.
- the virtual content item display opportunity 44 may include a physical feature identification 54 in addition to an event or activity identification in some embodiments.
- the server computing device 110 may further determine that the physical feature identification 54 includes an identification of a road. In response to this determination, the server computing device 110 may determine that a virtual content item display opportunity 44 exists for a virtual content item 60 depicting a motorcycle driving alongside the user 90.
- the processor 14 may be further configured to output the virtual content item 60 for display on the display 20.
- the virtual content item 60 may be output for display at a dynamically positioned content location 68 in the physical environment 24, which may be located within a candidate area 72.
- the dynamically positioned content location 68 may move as the user 90 moves through the physical environment 24 so that the virtual content item 60 remains near the user.
- the dynamically positioned content location 68 may remain within a predetermined threshold distance of the user 90.
- the dynamically positioned content location 68 may be anchored to a physical feature 26 in the physical environment 24 such that the virtual content item 60 remains located on, or at a predetermined offset from, the physical feature 26.
- the physical feature 26 to which the virtual content item 60 is anchored is the road.
- the processor 14 may not output the virtual content item 60 to the display 20 for display immediately upon receiving the virtual content item 60 from the server computing device 110. Instead, the processor 14 may wait for a trigger condition 69 to occur before the virtual content item 60 is displayed. For example, the processor 14 may display the virtual content item 60 after a predetermined period of time has elapsed.
- the trigger condition 69 may be an event that occurs in the physical environment 24 or the mixed reality experience 40, such as a video ending.
- the processor 14 may be further configured to receive, via the one or more input devices, a user interaction 62 with a virtual content item 60 of the one or more virtual content items 60.
- the server computing device 110 may determine that the data received from the one or more input devices of the head-mounted display device 10 includes a user interaction 62.
- the user interaction 62 may include a gesture selecting the virtual content item 60.
- the processor is configured to determine a gaze direction 64 of the user 90, the user interaction 62 may include gazing at the virtual content item 60.
- the user interaction 62 may additionally or alternatively include a change in the position of the head-mounted display device 10 as detected by the position sensor 32, a voice input as detected by the microphone 33, and/or some other type of input.
- the user interaction 62 may include inputs from a plurality of input devices. Any of the input devices discussed above with reference to FIGS. 1 and 2 may be used, alone or in combination, to provide the user interaction 62.
- the processor 14 may be further configured to modify at least one virtual object 22 in response to the user interaction 62.
- the at least one virtual object 22 modified in response to the user interaction 62 may be the virtual content item 60.
- the modified virtual object 22 may be another virtual object 22 included in the mixed reality experience 40.
- the user 90 may select an option to display additional information (e.g. by navigating to a webpage, rotating the virtual content item 60, or expanding a collapsed graphical element).
- the user 90 may select an option to dismiss the virtual content item 60.
- the processor 14 may be further configured to transmit an indication of the user interaction 62 to the server computing device 110 via the one or more communication devices 16. This indication may be transmitted over the network 80.
- the processor 14 may be configured to transmit sensor data to the server computing device 110, which may determine that the sensor data indicates a user interaction 62.
- the head-mounted display device 10 may receive additional data from the server computing device 110, such as one or more assets included in a webpage. The additional data may encode the updated virtual object.
- the indication of the user interaction 62 may be transmitted to the server computing device 110 without the head-mounted display device 10 receiving additional data in response.
- the one or more virtual content items 60 may include one or more advertisements.
- the server computing device 110 may collect data on rates and types of user interaction 62 with the one or more advertisements.
- the one or more virtual content items 60 may be configured to interact with the one or more virtual objects 22 of the mixed reality experience 40. In such interactions, the one or more virtual content items 60 may be modified based on one or more properties of the one or more virtual objects 22. Additionally or alternatively, the one or more virtual objects 22 may be modified based on one or more properties of the one or more virtual content items 60. In embodiments in which movement of the one or more virtual objects is governed by a physics engine included in the mixed reality experience 40, the physics engine may also control movement of the one or more virtual content items 60. For example, a virtual object 22 and a virtual content item 60 may collide and bounce off each other.
- the user 90 may select a portion of the virtual content item 60 by manipulating a virtual object 22 that acts as a virtual cursor.
- the virtual content item 60 may be incorporated into the mixed reality experience in a way that leads to less of an interruption in the mixed reality experience 40 than existing systems and methods for introducing virtual content items 60 into mixed reality experiences 40.
- each of the virtual content items 60 may interact with any or all of the other virtual content items 60 and/or the virtual objects 22.
- a plurality of virtual content items 60 may be concurrently integrated into the mixed reality experience 40.
- FIGS. 5A-B show the physical environment 24, virtual object 22, and virtual content item 60 of FIGS. 3A-B in an example of an interaction between the virtual object 22 and the virtual content item 60.
- the processor 14 of the head-mounted display device 10 receives imaging data 50 from the one or more imaging sensors 30 and transmits the imaging data 50 to the server computing device 110.
- the processor 14 then receives, from the server computing device 10, an indication of a user interaction 62 including a gesture 66.
- the gesture 66 is a gesture to select the virtual content item 60 and move the virtual content item 60 toward the virtual object 22, which represents a bag.
- the processor 14 may modify the dynamically located position 68 of the virtual content item 60 and cause the bottle (virtual content item 60) to appear to be placed inside the bag (virtual obj ect 22).
- the virtual obj ect 22 may interact with the virtual content item 60 such that the virtual content item 60 is hidden.
- the user interaction 62 placing the bottle (virtual content item 60) into the bag (virtual object 22) may be an "add to cart" action selecting the soft drink for purchasing.
- the server computing device 110 is shown in further detail with reference to FIG. 6 .
- the server computing device 110 may include one or more communication devices 116 communicatively coupled to the head-mounted display device 10.
- the one or more communication devices 116 may be communicatively coupled to the head-mounted display device 10 over the network 80.
- the server computing device 110 may, in some embodiments, include one or more input devices and/or one or more output devices.
- the server computing device 110 may further include memory 112, which may include volatile and/or non-volatile memory.
- the server computing device 110 may further include a processor 114.
- the processor 114 of the server computing device 110 may be configured to receive, via the one or more communication devices 116, imaging data 50 from the head-mounted display device 10.
- the processor 114 of the server computing device 110 may further receive one or more of inward-facing imaging data 51, position data 52, and/or sound data 53 from the head-mounted display device 10.
- the processor 114 of the server computing device 110 may be configured to identify the one or more physical features 26 in the physical environment of the head-mounted display device 10.
- the one or more physical features 26 may also be identified based on one or more of the inward-facing imaging data 51, the position data 52, the sound data 53, and/or data collected at other input devices of the head-mounted display device 10.
- the processor 114 may be further configured to identify a virtual content item display opportunity 44.
- the identification of the virtual content item display opportunity 44 may include a determination that one or more physical features 26 identified at the head-mounted display device 10 satisfy one or more spatial and/or temporal constraints 42.
- the one or more spatial and/or temporal constraints 42 may include one or more position constraints 42A, timing constraints 42B, size constraints 42C, and/or shape constraints 42D on a virtual content item 60.
- the processor 114 of the server computing device 110 may be further configured to select one or more virtual content items 60 from a plurality of virtual content items 60.
- the plurality of virtual content items 60 may be stored in the memory 112.
- the one or more virtual content items 60 may be selected based on the one or more constraints 42 included in the indication of the virtual content item display opportunity 44.
- the plurality of virtual content items 60 may include a first subset of one or more virtual content items 60 that satisfy all the constraints 42 for at least one virtual content item opportunity 44 and a second subset of one or more virtual content items 60 that, for each virtual content item display opportunity identified by the head-mounted display device, do not satisfy at least one constraint.
- the processor 114 of the server computing device 110 may then select the virtual content item 60 from the first subset.
- the processor 114 of the server computing device 110 may be further configured to select one or more respective dynamically positioned content locations 68 at which the one or more virtual content items 60 are configured to be displayed in a physical environment 24 of the head-mounted display device 10.
- the dynamically positioned content location 68 of a virtual content item 60 may be selected from among a plurality of candidate locations for the virtual content item 60. In some embodiments, the dynamically positioned content location 68 may move over time.
- the processor 114 may further select one or more respective trigger conditions 69 for the one or more virtual content items 60.
- the processor 114 may be further configured to convey the one or more virtual content items 60 to the head-mounted display device 10.
- the processor 114 may also convey the one or more respective dynamically positioned content locations 68 and/or trigger conditions 69 to the head-mounted display device.
- the one or more virtual content items 60, the one or more dynamically positioned content locations 68, and/or the one or more trigger conditions 69 may be conveyed to the head-mounted display device over the network 80.
- the processor 114 of the server computing device 110 may be further configured to receive, via the one or more communication devices 116, a user interaction 62 with a virtual content item 60 of the one or more virtual content items 60 from the head-mounted display device 10.
- the user interaction 62 may indicate that the user 90 has gazed at the virtual content item 60 for a predetermined period of time.
- the user interaction 62 may indicate that the user 90 has selected an option to receive additional information from the server computing device 110.
- the server computing device 110 may store the indication of the user interaction 62 in interaction history 150.
- the virtual content item 60 is an advertisement
- data stored in the interaction history 150 may be analyzed to determine the effectiveness of the advertisement.
- the data stored in the interaction history 150 may be used as training data for a machine learning algorithm.
- FIG. 7A shows a flowchart of a method 200 that may be performed at a head-mounted display device.
- the method 200 may be performed at the head-mounted display device 10 of FIG. 1 or at some other head-mounted display device.
- the method 200 may include collecting imaging data of a physical environment.
- the imaging data may be collected by one or more outward-facing time-of-flight and/or RGB cameras included in the head-mounted display device. Additionally or alternatively, the imaging data may be collected by another sensor device external to the head-mounted display device and communicated to the head-mounted display device.
- the method 200 may further include outputting a mixed reality experience for display on an at least partially see-through display.
- the mixed reality experience may include one or more virtual objects superimposed upon the physical environment.
- the method 200 may further include transmitting the imaging data to a server computing device.
- the imaging data may be transmitted to the server computing device via one or more communication devices included in the head-mounted display device.
- the method 200 may further include receiving, from the server computing device, an identification of a virtual content item display opportunity.
- the virtual content item display opportunity may include a determination that the one or more physical features identified based on the imaging data satisfy one or more spatial and/or temporal constraints.
- the one or more spatial and/or temporal constraints may include one or more position constraints on respective positions at which the one or more virtual content items are displayed.
- the one or more spatial and/or temporal constraints may additionally or alternatively include one or more timing constraints on respective times at which the one or more virtual content items are displayed.
- the one or more spatial and/or temporal constraints may additionally or alternatively include one or more size constraints on respective sizes of the one or more virtual content items and/or one or more shape constraints on respective shapes of the one or more virtual content items.
- the virtual content item display opportunity may be identified at least in part by determining that the one or more identified physical features have a predetermined set of geometric characteristics.
- the method 200 may further include, at step 210, transmitting a request for one or more virtual content items to the server computing device based on the identification of the virtual content item display opportunity.
- the method may further include receiving the one or more virtual content items from the server computing device.
- the head-mounted display device may access one or more virtual content items stored locally in memory. In such embodiments, the one or more virtual content items may be displayed without contacting a server computing device.
- the method 200 may further include outputting the one or more virtual content items for display on the display at the one or more respective dynamically positioned content locations in the physical environment.
- the one or more virtual content items may be output from display based on the identification of the virtual content item display opportunity.
- the one or more virtual content items may be output for display at respective dynamically positioned content locations that satisfy the one or more spatial and/or temporal constraints.
- the one or more virtual content items may be configured to interact with the one or more virtual objects of the mixed reality experience.
- the one or more virtual content items may be incorporated into the mixed reality experience as newly added virtual objects rather than forming a separate but concurrent mixed reality experience.
- FIG. 7B shows additional steps that may be performed in some embodiments when performing the method 200 of FIG. 7A .
- the method 200 may further include receiving, via one or more input devices, a user interaction with a virtual content item of the one or more virtual content items.
- the one or more input devices may include one or more input devices included in, and/or external to, the head-mounted display device.
- receiving the user interaction may include, at step 218, collecting inward-facing imaging data of a user via an inward-facing camera included in the head-mounted display device.
- the user interaction may include gazing at the virtual content item.
- the user interaction may additionally or alternatively include, at step 220, collecting position data of the head-mounted display device.
- the method 200 may further include transmitting an indication of the user interaction to the server computing device via one or more communication devices included in the head-mounted display device.
- step 222 may include, at step 224, transmitting the inward-facing imaging data to the server computing device.
- step 222 may include, at step 226, transmitting the position data to the server computing device.
- the server computing device may be the same as or different from the server computing device of steps 210 and 212.
- the indication of the user interaction may be transmitted to the server computing device over a network.
- the method 200 may further include modifying at least one virtual object in response to the user interaction.
- the at least one virtual object modified in response to the user interaction may include at least one virtual content item of the one or more virtual content items, and/or at least one other virtual object included in the mixed reality experience.
- step 228 may include step 230.
- the method may include receiving, from the server computing device, a determination of a gaze direction of the user based on the inward-facing imaging data.
- the user interaction may include gazing at the virtual content item.
- step 228 may include step 232.
- the method 200 may include receiving, from the server computing device, a determination of a change in position of the head-mounted display device based on the position data.
- the user interaction may include the change in position.
- step 228 may include step 234.
- the method 200 may include receiving, from the server computing device, a determination that the imaging data includes a gesture selecting the virtual content item. For example, in response to a user interaction including a dragging gesture, a virtual content item may be relocated to a new position. If the new position is already occupied by a virtual object, that virtual object may also be relocated so that it does not overlap with the virtual content item.
- the virtual content item is an advertisement.
- the request 310 in the example of FIG. 8 includes a plurality of parameters. These parameters may include an adtype 312 which specifies a type of advertisement to display.
- the adtype 312 may indicate that the advertisement is a tabletop advertisement configured to be displayed on a table or other substantially flat, horizontal surface.
- the adtype 312 may indicate that the advertisement is a wall poster configured to be displayed on a substantially flat vertical surface.
- the adtype 312 may indicate that the advertisement includes a plurality of virtual content items to be displayed at different dynamically positioned locations.
- the advertisement may include a virtual person standing on a flat surface and may further include a virtual vehicle driving along a road.
- the parameters included in the request 310 may further include a list 314 of virtual content item display opportunities 44 indicating one or more dynamically positioned content locations at which the advertisement may be displayed, such as a tabletop, a chair top, a road, or a wall.
- the parameters of the request 310 may further include a user identification (uid) 316 that indicates the user 90 of the head-mounted display device 10 from which the request 310 is sent. In some embodiments, a new uid 316 may be generated for each session in which the head-mounted display device 10 is used.
- the request 310 may further include a parameter indicating a sceneID 318 may include information about the mixed reality experience 40 and/or one or more physical features 26 identified in the physical environment 24.
- the parameters included in the request 310 may further include a size 320 of the advertisement.
- the size 320 may indicate a size category such as small, medium, or large. Additionally or alternatively, the size 320 may indicate one or more dimensions of the advertisement.
- the request 310 may include one or more other parameters in some embodiments.
- the response 330 sent from the server computing device 110 to the head-mounted display device 10 may include a plurality of parameters, which may include a format 332.
- the format 332 may indicate the advertisement type of the advertisement sent from the server computing device 110 to the head-mounted display device 10.
- the response 330 may further include a list of creatives 334 per experience.
- the list of creatives 334 per experience may include information specifying an appearance of each virtual content item 60 to be displayed at the head-mounted display device 10.
- the term "creative" as used herein refers to data typically stored in a file that includes content that has been created by an artist.
- creative 334 may include one or more of an image, a color, a three dimensional shape, and a sequence of animated frames or a video.
- Creative 334 may further include sound data, haptic feedback data, or other information specifying how the virtual content item 60 is presented via another output device of the head-mounted display device 10.
- the response 330 may further include an assetBundleUrl 336 that indicates a unique resource locator (URL) at which the creative 334 may be accessed.
- the response 330 may further include a rotation 338 indicating a rotation performed on the virtual content item 60 relative to a default orientation. Additionally or alternatively, the response 330 may include a scale 340 indicating a scale factor applied to the virtual content item 60 relative to a default size.
- the parameters of the response 330 may further include a trackingUrl 342 indicating one or more URLs that may be accessed in response to user interaction 62 with the virtual content item 60.
- trackingUrl 342 may include URLs such as gazeTracking 342A to be accessed when the user 90 gazes at the advertisement and/or gesture Tracking 342B to be accessed when the user 90 makes a gesture manipulating the advertisement.
- the trackingUrl 342 may further include disposeTracking 342C to be accessed when the advertisement ceases to be displayed, rotateTracking 342D to be accessed when the advertisement is rotated, moveTracking 342E to be accessed when the advertisement is moved, and/or occlusionTracking 342F to be accessed when the advertisement is occluded by a physical or virtual object.
- Other URLs may be included in trackingURL 342 in some embodiments.
- the response 330 may include one or more other parameters in some embodiments.
- Example code specifying the response 330 is shown below:
- a virtual content item provider may specify the one or more parameters of the response 330 and the one or more constraints 42 on the placement of a virtual content item 60, which may be stored in the memory 112 of the server computing device 100.
- the virtual content item provider may be an advertiser who wishes to show an advertisement to a user 90 when a predetermined type of virtual content item display opportunity 60 occurs.
- an advertiser may target an advertisement to be displayed when the user 90 is in a physical environment 24 that includes a television and at least one horizontal surface.
- the virtual content item provider may further specify one or more candidate location selection criteria based on which the dynamically positioned location 68 of the virtual content item 60 may be selected from a plurality of candidate locations 70.
- the virtual content item provider may additionally or alternatively specify one or more characteristics of a set of users 90 to whom the advertisement is targeted.
- the virtual content item provider may choose to display the virtual content item 60 to the user 90 based on an indication that the user 90 has previously purchased the soft drink being advertised.
- a plurality of virtual content item providers may bid on a virtual content item display opportunity 60 as they would bid on other forms of advertising space.
- the above embodiments are discussed with reference to a head-mounted display device, other embodiments may be implemented with a display device that is not head-mounted.
- the systems and methods discussed above may alternatively be used with a wall- or stand-mounted display device or a handheld display device.
- the display device may provide a mixed-reality experience by displaying an image of the physical environment on the display along with one or more virtual objects.
- a wall- or stand-mounted display device may act as a "window" into another area of the physical environment, such as an area behind a wall, and may display the one or more virtual objects overlapping the image of the other area of the physical environment.
- the image of the other area of the physical environment may be received from one or more imaging sensors located in the other area of the physical environment and communicatively coupled to the display device.
- the handheld display device may include an outward-facing imaging sensor configured to image a region of the physical environment behind the display.
- the one or more imaging sensors may include one or more depth cameras and/or one or more RGB cameras.
- the three-dimensional environment displayed on the display device may be a three-dimensional virtual environment.
- the display device may include one or more imaging sensors configured to detect a gaze direction and/or body position of the user.
- the handheld display device may include a user-facing imaging sensor configured to image the user.
- the one or more imaging sensors configured to detect the gaze direction and/or body position of the user may include one or more depth cameras and/or RGB cameras.
- the display device may further include one or more position sensors configured to detect the position and orientation of the display device relative to the user.
- the handheld display device may display the region of the physical environment behind the display with one or more virtual objects superimposed onto the image of the physical environment.
- the methods and processes described herein may be tied to a computing system of one or more computing devices.
- such methods and processes may be implemented as a computer-application program or service, an application-programming interface (API), a library, and/or other computer-program product.
- API application-programming interface
- FIG. 9 schematically shows a non-limiting embodiment of a computing system 400 that can enact one or more of the methods and processes described above.
- Computing system 400 is shown in simplified form.
- Computing system 400 may embody the head-mounted display device 10 described above and illustrated in FIGS. 1 and 2 and/or the server computing device described above and illustrated in FIG. 6 .
- Computing system 400 may take the form of one or more personal computers, server computers, tablet computers, home-entertainment computers, network computing devices, gaming devices, mobile computing devices, mobile communication devices (e.g., smart phone), and/or other computing devices, and wearable computing devices such as smart wristwatches and head mounted augmented reality devices.
- Computing system 400 includes a logic processor 402 volatile memory 404, and a non-volatile storage device 406.
- Computing system 400 may optionally include a display subsystem 408, input subsystem 410, communication subsystem 412, and/or other components not shown in FIG. 9 .
- Logic processor 402 includes one or more physical devices configured to execute instructions.
- the logic processor may be configured to execute instructions that are part of one or more applications, 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 components, achieve a technical effect, or otherwise arrive at a desired result.
- the logic processor may include one or more physical processors (hardware) configured to execute software instructions. Additionally or alternatively, the logic processor may include one or more hardware logic circuits or firmware devices configured to execute hardware-implemented logic or firmware instructions. Processors of the logic processor 402 may be single-core or multi-core, and the instructions executed thereon may be configured for sequential, parallel, and/or distributed processing. Individual components of the logic processor optionally may be distributed among two or more separate devices, which may be remotely located and/or configured for coordinated processing. Aspects of the logic processor may be virtualized and executed by remotely accessible, networked computing devices configured in a cloud-computing configuration. In such a case, these virtualized aspects are run on different physical logic processors of various different machines, it will be understood.
- Non-volatile storage device 406 includes one or more physical devices configured to hold instructions executable by the logic processors to implement the methods and processes described herein. When such methods and processes are implemented, the state of non-volatile storage device 406 may be transformed-e.g., to hold different data.
- Non-volatile storage device 406 may include physical devices that are removable and/or built-in.
- Non-volatile storage device 406 may include optical memory (e.g., CD, DVD, HD-DVD, Blu-Ray Disc, etc.), semiconductor memory (e.g., ROM, EPROM, EEPROM, FLASH memory, etc.), and/or magnetic memory (e.g., hard-disk drive, floppy-disk drive, tape drive, MRAM, etc.), or other mass storage device technology.
- Non-volatile storage device 406 may include nonvolatile, dynamic, static, read/write, read-only, sequential-access, location-addressable, file-addressable, and/or content-addressable devices. It will be appreciated that non-volatile storage device 406 is configured to hold instructions even when power is cut to the non-volatile storage device 406.
- Volatile memory 404 may include physical devices that include random access memory. Volatile memory 404 is typically utilized by logic processor 402 to temporarily store information during processing of software instructions. It will be appreciated that volatile memory 404 typically does not continue to store instructions when power is cut to the volatile memory 404.
- logic processor 402, volatile memory 404, and non-volatile storage device 406 may be integrated together into one or more hardware-logic components.
- 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), and complex programmable logic devices (CPLDs), for example.
- FPGAs field-programmable gate arrays
- PASIC / ASICs program- and application-specific integrated circuits
- PSSP / ASSPs program- and application-specific standard products
- SOC system-on-a-chip
- CPLDs complex programmable logic devices
- module may be used to describe an aspect of computing system 400 typically implemented in software by a processor to perform a particular function using portions of volatile memory, which function involves transformative processing that specially configures the processor to perform the function.
- a module, program, or engine may be instantiated via logic processor 402 executing instructions held by non-volatile storage device 406, using portions of volatile memory 404.
- modules, programs, and/or engines may be instantiated from the same application, service, code block, object, library, routine, API, function, etc.
- the same module, program, and/or engine may be instantiated by different applications, services, code blocks, objects, routines, APIs, functions, etc.
- the terms “module,” “program,” and “engine” may encompass individual or groups of executable files, data files, libraries, drivers, scripts, database records, etc.
- display subsystem 408 may be used to present a visual representation of data held by non-volatile storage device 406.
- the visual representation may take the form of a graphical user interface (GUI).
- GUI graphical user interface
- the state of display subsystem 408 may likewise be transformed to visually represent changes in the underlying data.
- Display subsystem 408 may include one or more display devices utilizing virtually any type of technology. Such display devices may be combined with logic processor 402, volatile memory 404, and/or non-volatile storage device 406 in a shared enclosure, or such display devices may be peripheral display devices.
- input subsystem 410 may comprise or interface with one or more user-input devices such as a keyboard, mouse, touch screen, or game controller.
- the input subsystem may comprise or interface with selected natural user input (NUI) componentry.
- NUI natural user input
- Such componentry may be integrated or peripheral, and the transduction and/or processing of input actions may be handled on- or off-board.
- 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; and/or any other suitable sensor.
- communication subsystem 412 may be configured to communicatively couple various computing devices described herein with each other, and with other devices.
- Communication subsystem 412 may include wired and/or wireless communication devices compatible with one or more different communication protocols.
- the communication subsystem may be configured for communication via a wireless telephone network, or a wired or wireless local- or wide-area network, such as a HDMI over Wi-Fi connection.
- the communication subsystem may allow computing system 400 to send and/or receive messages to and/or from other devices via a network such as the Internet.
- head-mounted display device including an at least partially see-through display, one or more input devices including one or more image sensors configured to collect imaging data of a physical environment, one or more communication devices and a processor.
- the processor may be configured to output for display on the display a mixed reality experience including one or more virtual objects superimposed upon the physical environment.
- the processor may be further configured to transmit the imaging data to a server computing device via the one or more communication devices.
- the processor may be further configured to receive, from the server computing device, an identification of a virtual content item display opportunity.
- the identification of the virtual content item display opportunity may include a determination that the mixed reality experience and one or more physical features identified from the imaging data satisfy one or more spatial and/or temporal constraints.
- the processor may be further configured to transmit a request for one or more virtual content items to the server computing device based on the identification of the virtual content item display opportunity.
- the processor may be further configured to receive the one or more virtual content items from the server computing device.
- the processor may be further configured to output the one or more virtual content items for display on the display at one or more respective dynamically positioned content locations in the physical environment.
- the processor may be further configured to receive, via the one or more input devices, a user interaction with a virtual content item of the one or more virtual content items.
- the processor may be further configured to modify at least one virtual object in response to the user interaction.
- the processor may be further configured to transmit an indication of the user interaction to the server computing device via the one or more communication devices.
- the one or more input devices may include an inward-facing image sensor configured to collect inward-facing imaging data of a user.
- the processor may be further configured to transmit the inward-facing imaging data to the server computing device.
- the processor may be further configured to receive, from the server computing device, a determination of a gaze direction of the user based on the inward-facing imaging data.
- the user interaction may include gazing at the virtual content item.
- the one or more input devices may include a position sensor configured to collect position data of the head-mounted display device.
- the user interaction may include a change in position of the head-mounted display device.
- the processor may be further configured to transmit the position data to the server computing device.
- the user interaction may include a gesture selecting the virtual content item.
- the one or more virtual content items may be configured to interact with the one or more virtual objects of the mixed reality experience.
- the identification of the virtual content item display opportunity may include a determination that the one or more identified physical features have a predetermined set of geometric characteristics.
- the one or more spatial and/or temporal constraints may be selected from the group consisting of one or more position constraints on respective positions at which the one or more virtual content items are displayed, one or more timing constraints on respective times at which the one or more virtual content items are displayed, one or more size constraints on respective sizes of the one or more virtual content items, and one or more shape constraints on respective shapes of the one or more virtual content items.
- the one or more virtual content items may include one or more advertisements.
- a method for use with a head-mounted display device may include collecting imaging data of a physical environment.
- the method may further include outputting for display on an at least partially see-through display a mixed reality experience including one or more virtual objects superimposed upon the physical environment.
- the method may further include transmitting the imaging data to a server computing device.
- the method may further include receiving, from the server computing device, an identification of a virtual content item display opportunity.
- the identification of the virtual content item display opportunity may include a determination that the mixed reality experience and one or more physical features identified from the imaging data satisfy one or more spatial and/or temporal constraints.
- the method may further include transmitting a request for one or more virtual content items to the server computing device based on the identification of the virtual content item display opportunity.
- the method may further include receiving the one or more virtual content items from the server computing device.
- the method may further include outputting the one or more virtual content items for display on the display at one or more respective dynamically positioned content locations in the physical environment.
- the method may further include receiving, via one or more input devices, a user interaction with a virtual content item of the one or more virtual content items.
- the method may further include transmitting an indication of the user interaction to the server computing device.
- the method may further include collecting inward-facing imaging data of a user.
- the method may further include transmitting the inward-facing imaging data to the server computing device.
- the method may further include receiving, from the server computing device, a determination of a gaze direction of the user based on the inward-facing imaging data.
- the user interaction may include gazing at the virtual content item.
- the user interaction may include a gesture selecting the virtual content item.
- the one or more virtual content items may be configured to interact with the one or more virtual objects of the mixed reality experience.
- the one or more spatial and/or temporal constraints may be selected from the group consisting of one or more position constraints on respective positions at which the one or more virtual content items are displayed, one or more timing constraints on respective times at which the one or more virtual content items are displayed, one or more size constraints on respective sizes of the one or more virtual content items, and one or more shape constraints on respective shapes of the one or more virtual content items.
- a server computing device including one or more communication devices communicatively coupled to a display device and a processor configured to receive imaging data from the display device.
- the processor may be further configured to, based on the imaging data, identify one or more physical features in the physical environment of the display device.
- the processor may be further configured to identify a virtual content item display opportunity at least in part by determining that the one or more physical features identified at the display device satisfy one or more spatial and/or temporal constraints.
- the processor may be further configured to select, based on the virtual content item display opportunity, one or more virtual content items from a plurality of virtual content items.
- the processor may be further configured to select, based on the virtual content item display opportunity, one or more respective dynamically positioned content locations at which to display the one or more virtual content items in the physical environment of the display device.
- the processor may be further configured to convey the one or more virtual content items and one or more respective dynamically positioned content locations to the display device.
- the processor may be further configured to receive a user interaction with a virtual content item of the one or more virtual content items from the display device.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Development Economics (AREA)
- Strategic Management (AREA)
- Finance (AREA)
- Human Computer Interaction (AREA)
- Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- Game Theory and Decision Science (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Optics & Photonics (AREA)
- User Interface Of Digital Computer (AREA)
Description
- In a typical mixed reality system, a user wears a head mounted device equipped with a see-through display that displays holograms superimposed over the user's view of the real world. The holograms can represent information that augment the user's experience of the real-world environment. Holograms may be "screen-locked" to appear in a fixed position relative to the display, or "world-locked" to appear in a fixed position relative to the real world environment. Unlike conventional two dimensional computer displays which display content within the confines of the two dimensional display, in a mixed reality application content can be displayed at any location within the three dimensional environment. Further, a user may freely change their position and viewpoint when walking through the environment. Thus, the world-locked holograms visible to the user at any given time are dependent on the user's movement and gaze orientation and the world-locked location of the holograms. This presents a challenge to third party content providers who desire to place content within such mixed reality environments for viewing by users. Without proper placement, the third party content may be missed by the user.
-
US 2013/293530 A1 relates to an augmented reality system that provides augmented product and environment information to a wearer of a see through head mounted display. The augmentation information may include advertising, inventory, pricing and other information about products a wearer may be interested in. Interest is determined from wearer actions and a wearer profile. -
WO 2018/031050 A1 discloses a method and system for generating a customized augmented reality environment, comprising generating a signature for a multimedia content, determining, based on the generated signature, a selection of an augmented reality character, wherein each augmented reality character is associated with a character signature, identifying at least a potential placement location in the multimedia content element, wherein each potential placement location is associated with a portion of the generated signature, correlating between the potential placement location signature portion and the character signature to select, for each augmented reality character, a placement location in the multimedia content element, and generating a customized augmented reality environment, wherein the customized augmented reality environment includes each augmented reality character superimposed on the multimedia content element at the respective placement location. - It is the object of the present invention to reduce interruptions during the incorporation of virtual content items into mixed reality experiences.
- The object is solved by the subject matter of the independent claims which define the present invention. Preferred embodiments of the present invention are defined by the dependent claims.
- According to one aspect of the present disclosure, a head-mounted display device is provided, including an at least partially see-through display, one or more input devices including one or more image sensors configured to collect imaging data of a physical environment, one or more communication devices, and a processor. The processor may be configured to output for display on the display a mixed reality experience including one or more virtual objects superimposed upon the physical environment. The processor may be further configured to transmit the imaging data to a server computing device via the one or more communication devices. The processor may be further configured to receive, from the server computing device, an identification of a virtual content item display opportunity. The identification of the virtual content item display opportunity may include a determination that the mixed reality experience and one or more physical features identified from the imaging data satisfy one or more spatial and/or temporal constraints. The processor may be further configured to transmit a request for one or more virtual content items to the server computing device based on the identification of the virtual content item display opportunity. The processor may be further configured to receive the one or more virtual content items from the server computing device. The processor may be further configured to output the one or more virtual content items for display on the display at one or more respective dynamically positioned content locations in the physical environment.
- 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.
-
-
FIG. 1 shows a schematic view of a head-mounted display device, according to one embodiment of the present disclosure. -
FIG. 2 shows an example embodiment of the head-mounted display device that takes the form of wearable glasses or goggles, according to the embodiment ofFIG. 1 . -
FIG. 3A-B shows an example physical environment including a plurality of candidate locations for displaying a virtual content item, according to the embodiment ofFIG. 1 . -
FIG. 4 shows an example physical environment in which a virtual content item is displayed, according to the embodiment ofFIG. 1 . -
FIGS 5A-B show the example physical environment ofFIGS 3A-B in an example in which a user interacts with the virtual content item. -
FIG. 6 shows a schematic view of a server computing device, according to the embodiment ofFIG. 1 . -
FIG. 7A shows a flowchart of an example method that may be performed at a head-mounted display device, according to the embodiment ofFIG. 1 . -
FIG. 7B shows additional steps that may be performed when performing the method ofFIG. 7A . -
FIG. 8 schematically shows an example request sent by a head-mounted display device and an example response sent by a server computing device, according to the embodiment ofFIG. 1 . -
FIG. 9 shows a schematic view of an example computing environment in which the computer device ofFIG. 1 may be enacted. - The inventor of the subject application has recognized that existing systems and methods for presenting content such as digital advertisements on two dimensional screens are not suitable for three dimensional mixed reality environments. According to existing systems and methods, digital advertisements are typically presented as banner advertisements on webpages, or alternatively as videos. Banner advertisements are presented in a fixed location on a two dimensional screen that is being viewed by a user, however in mixed reality environments the user is free to look in any direction when interacting with the environment so there is no guarantee that a user will be looking in the direction of content such as an advertisement when it is displayed. In addition, banner advertisements are typically visible to users for brief periods of time. However, users of a mixed reality systems frequently interact with the mixed reality environments for longer periods of time in comparison to non-mixed-reality webpages and videos. Thus, a rate at which the users view new advertisements may be lower than would be desirable when methods of displaying banner advertisements on webpages and in videos are applied to mixed reality environments. In addition, banner advertisements may obstruct users' views of mixed reality environments and make it more difficult for the users to interact with physical and/or virtual objects. This obstruction of the users' views of objects may also occur when existing systems and methods for presenting video advertisements are used.
- In order to address the problems discussed above, a head-mounted
display device 10 is provided, as shown inFIG. 1 . The head-mounteddisplay device 10 ofFIG. 1 may includememory 12 and/or aprocessor 14. Thememory 12 may include volatile and/or non-volatile memory and may be operatively coupled to theprocessor 14. The head-mounteddisplay device 10 may further include one or more input devices, which may be included in the head-mounteddisplay device 10 or communicatively coupled to the head-mounteddisplay device 10. The one or more input devices may include one ormore image sensors 30 configured to collectimaging data 50 of aphysical environment 24. In some embodiments, the one or more input devices may further include an inward-facingimage sensor 31 configured to collect inward-facingimaging data 51 of a user. The one or more input devices may further include aposition sensor 32 configured to determine a position of the head-mounteddisplay device 10 in the physical environment. In some embodiments, the one or more input devices may further include amicrophone 33. One or more other input devices such as a touchscreen, a trackpad, a mouse, a joystick, a keyboard, and/or a button may be included in or communicatively coupled to the head-mounteddisplay device 10 in some embodiments. The head-mounteddisplay device 10 may further include one or more output devices, which may include an at least partially see-throughdisplay 20. The one or more output devices may further include one or more of aspeaker 36, ahaptic feedback device 38, and/or one or more other output devices. The head-mounteddisplay device 10 may further include one ormore communication devices 16 via which theprocessor 14 of the head-mounteddisplay device 10 may send data to and/or receive data from one or more other computing devices. This communication may occur over anetwork 80. The functions of thememory 12 andprocessor 14 of the head-mounteddisplay device 10 may be performed at least in part by an offboard computing system with which the head-mounteddisplay device 10 communicates via the one ormore communication devices 16. In the example ofFIG. 1 , the offboard computing system is aserver computing device 110. - The input and output devices that may be included in the head-mounted display device are discussed in further detail below with reference to
FIG. 2. FIG. 2 shows an example embodiment of the head-mounteddisplay device 10 in which the head-mounteddisplay device 10 takes the form of wearable glasses or goggles, but it will be appreciated that other forms are possible. The head-mounteddisplay device 10 may include an output device suite including adisplay 20. In some embodiments, the head-mounteddisplay device 10 may be configured in an augmented reality configuration to present an augmented reality environment, and thus thedisplay 20 may be an at least partially see-through stereoscopic display configured to visually augment an appearance of aphysical environment 24 being viewed by the user through thedisplay 20. In some examples, thedisplay 20 may include one or more regions that are transparent (e.g. optically clear) and may include one or more regions that are opaque or semi-transparent. In other examples, thedisplay 20 may be transparent (e.g. optically clear) across an entire usable display surface of thedisplay 20. - The output device suite of the head-mounted
display device 10 may, for example, include an image production system that is configured to display one or morevirtual objects 22 to the user with thedisplay 20. Theprocessor 14 may be configured to output for display on the display 20 amixed reality experience 40 including one or morevirtual objects 22 superimposed upon thephysical environment 24. In the augmented reality configuration with an at least partially see-through display, thevirtual objects 22 are visually superimposed onto thephysical environment 24 that is visible through thedisplay 20 so as to be perceived at various depths and locations. In one embodiment, the head-mounteddisplay device 10 may use stereoscopy to visually place avirtual object 22 at a desired depth by displaying separate images of thevirtual object 22 to both of the user's eyes. Using this stereoscopy technique, the head-mounteddisplay device 10 may control the displayed images of thevirtual objects 22, such that the user will perceive that thevirtual objects 22 exist at a desired depth and location in the viewedphysical environment 24. - The output device suite of the head-mounted
display device 10 may further include one ormore speakers 36 configured to emit sound. In some embodiments, the head-mounteddisplay device 10 may include at least aleft speaker 36A and aright speaker 36B situated such that theleft speaker 36A may be located proximate the user's left ear and theright speaker 36B may be located proximate the user's right ear when the head-mounteddisplay device 10 is worn. Thus, the one ormore speakers 36 may emit stereo sound output. The output device suite may further include one or morehaptic feedback devices 38 configured to provide tactile output (e.g. vibration). - The head-mounted
display device 10 may include an input device suite including one or more input devices. The input device suite of the head-mounteddisplay device 10 may include one or more imaging sensors. In one example, the input device suite includes an outward-facingoptical sensor 30 that may be configured to detect the real-world background from a similar vantage point (e.g., line of sight) as observed by the user through thedisplay 20 in an augmented reality configuration. The input device suite may additionally include an inward-facingoptical sensor 31 that may be configured to detect a gaze direction of the user's eyes. It will be appreciated that the outward facingoptical sensor 30 and/or the inward-facingoptical sensor 31 may include one or more component sensors, including an RGB camera and a depth camera. The RGB camera may be a high definition camera or have another resolution. The depth camera may be configured to project non-visible light and capture reflections of the projected light, and based thereon, generate an image comprised of measured depth data for each pixel in the image. This depth data may be combined with color information from the image captured by the RGB camera, into a single image representation including both color data and depth data, if desired. - The input device suite of the head-mounted
display device 10 may further include a position sensor system that may include one ormore position sensors 32 such as accelerometer(s), gyroscope(s), magnetometer(s), global positioning system(s), multilateration tracker(s), and/or other sensors thatoutput position data 52 as a position, orientation, and/or movement of the relevant sensor. The input device suite may further include one ormore microphones 33 configured to collectsound data 53. - Optical sensor information received from the one or more imaging sensors and/or
position data 52 received fromposition sensors 32 may be used to assess a position and orientation of the vantage point of head-mounteddisplay device 10 relative to other environmental objects. In some embodiments, the position and orientation of the vantage point may be characterized with six degrees of freedom (e.g., world-space X, Y, Z, pitch, roll, yaw). The vantage point may be characterized globally or independent of the real-world background. The position and/or orientation may be determined by theprocessor 14 of the head-mounteddisplay device 10 and/or by an off-board computing system. - Furthermore, the optical sensor information and the position sensor information may be used by the head-mounted display system to perform analysis of the real-world background, such as depth analysis, surface reconstruction, environmental color and lighting analysis, or other suitable operations. In particular, the optical and positional sensor information may be used to create a virtual model of the real-world background. In some embodiments, the position and orientation of the vantage point may be characterized relative to this virtual space. Moreover, the virtual model may be used to determine positions of
virtual objects 22 in the virtual space and add additionalvirtual objects 22 to be displayed to the user at a desired depth and location. The virtual model is a three-dimensional model and may be referred to as "world space," and may be contrasted with the projection of world space viewable on thedisplay 20, which is referred to as "screen space." Additionally, the optical sensor information received from the one ormore image sensors 30 may be used to identify and track objects in the field of view of the one ormore image sensors 30. The optical sensors may also be used to identify machine recognizable visual features in thephysical environment 24 and use the relative movement of those features in successive frames to compute a frame to frame relative pose change for the head mounteddisplay device 10 within the world space of the virtual model. - The head-mounted
display device 10 may further include a communication system including one ormore communication devices 16, which may include one ormore receivers 16A and/or one ormore transmitters 16B. In embodiments in which the head-mounteddisplay device 10 communicates with an off-board computing system, the one ormore receivers 16A may be configured to receive data from the offboard computing system, and the one ormore transmitters 16B may be configured to send data to the off-board computing system. In some embodiments, the head-mounteddisplay device 10 may communicate with the off-board computing system via a network, which may be a wireless local- or wide-area network. Additionally or alternatively, the head-mounteddisplay device 10 may communicate with the off-board computing system via a wired connection. The head-mounteddisplay device 10 may be further configured to communicate with a server computing system via the communication system. - Returning to
FIG. 1 , theprocessor 14 may be further configured to transmit theimaging data 50 to aserver computing device 110 via the one or more communication devices such that theserver computing device 110 may identify one or morephysical features 26 in thephysical environment 24 based on theimaging data 50. In other embodiments, identification of the one or morephysical features 50 may be performed at least in part at theprocessor 14 of the head-mounteddisplay device 10. In some embodiments, the one or morephysical feature identifications 54 may be made using a machine learning algorithm. Thephysical environment 24 may be developed based on the one or morephysical feature identifications 54 of the one or more physical features 26. The virtual model may include one or more geometric features of each of the one or more physical features 26. - In embodiments in which the one or more input devices of the head-mounted
display device 10 further include an inward-facingimage sensor 31 configured to collect inward-facingimaging data 51 of the user, theprocessor 14 may be further configured to transmit the inward-facing imaging data to theserver computing device 110. Additionally or alternatively, in embodiments in which the one or more input devices of the head-mounteddisplay device 10 include one ormore position sensors 32 and/or one ormore microphones 33, theprocessor 14 may be further configured to transmitposition data 52 received from the one ormore position sensor 32 and/orsound data 53 received from the one ormore microphones 33 respectively to theserver computing device 110. In such embodiments, theprocessor 14 may be further configured to receive, from theserver computing device 110, a determination of agaze direction 64 of the user based on the inward-facingimaging data 51. In other embodiments, thegaze direction 64 may be determined at theprocessor 14. Thegaze direction 64 may be correlated with the position and orientation of the head-mounteddisplay device 10 itself as determined usingposition data 52 andimaging data 50. In embodiments in which positiondata 32 is transmitted to the server computing device, theprocessor 14 may be further configured to receive an indication of a change in position 67 from theserver computing device 110. - As discussed above, the
mixed reality experience 40 may include one or morevirtual objects 22 superimposed upon thephysical environment 24. The one or morevirtual objects 22 may be received from theserver computing device 110. Theprocessor 14 and/or theserver computing device 110 may be configured to modify the one or morevirtual objects 22 included in themixed reality experience 40 over time according to rules specified by themixed reality experience 40. For example, themixed reality experience 40 may include a physics engine configured to model responses of the one or morevirtual objects 22 to features of thephysical environment 24 and/or events occurring in thephysical environment 24. The physics engine may additionally or alternatively model interactions of the one or morevirtual objects 22 with each other. Theprocessor 14 may be further configured to modify the one or morevirtual objects 22 based on user input received from the one or more input devices. Thus, themixed reality experience 40 may be an interactive experience. - Based on the
mixed reality experience 40 and/or theidentification 54 of the one or morephysical features 26 in thephysical environment 24, theserver computing device 110 may be further configured to identify a virtual contentitem display opportunity 44. The virtual contentitem display opportunity 44 may be a set of conditions in thephysical environment 24 and/or themixed reality experience 40 that are conducive to displaying avirtual content item 60 on thedisplay 20 of the head-mounteddisplay device 10. In some embodiments, theserver computing device 110 may be configured to identify the virtual contentitem display opportunity 44 at least in part by determining that the one or more identifiedphysical features 26 have a predetermined set of geometric characteristics. For example, in an embodiment in which thevirtual content item 60 is a virtual poster, the virtual contentitem display opportunity 44 may occur when a substantially flat and vertical surface of sufficient size to accommodate the virtual poster is determined to be present in thephysical environment 24. As another example, in an embodiment in which thevirtual content item 60 is a virtual vehicle, the virtual contentitem display opportunity 44 may occur when a road is determined to be present in thephysical environment 24. - The
server computing device 110 may be configured to identify the virtual contentitem display opportunity 44 at least in part by determining that the one or more identifiedphysical features 26 satisfy one or more spatial and/ortemporal constraints 42. The one or more spatial and/ortemporal constraints 42 may include one ormore position constraints 42A on respective positions at which the one or morevirtual content items 60 may be displayed. The one ormore position constraints 42A may specify, for eachvirtual content item 60, a subset of thephysical environment 24 within which thevirtual content item 60 is eligible to be displayed. For example, the one ormore position constraints 42A may specify that avirtual content item 60 may be displayed at one or more locations that do not overlap a preexistingvirtual object 22 orphysical feature 26. Additionally or alternatively, the one or more spatial and/ortemporal constraints 42 may include one ormore timing constraints 42B on respective times at which the one or morevirtual content items 60 may be displayed. For example, theserver computing device 110 may determine based on themixed reality experience 40 that the user is engaged in an activity (e.g. a video call) that would be undesirable to interrupt. As another example, thetiming constraint 42B may specify a maximum duration for which thevirtual content item 60 may be displayed. The one or more constraints may further include one ormore size constraints 42C on respective sizes of the one or morevirtual content items 60 and/or one or more shape constraints 42D on respective shapes of the one or morevirtual content items 60. The one ormore size constraints 42C and the one or more shape constraints 42D may, for example, specify that avirtual content item 60 may be displayed at one or more surfaces or volumes that can accommodate thevirtual content item 60 without thevirtual content item 60 overlapping one or morevirtual objects 22 and/or physical features 26.Other constraints 42 may additionally or alternatively be applied when identifying virtualcontent display opportunities 44. - When the
server computing device 110 determines that a virtual contentitem display opportunity 44 occurs, theserver computing device 110 may identify one or more candidate locations at which thevirtual content item 60 may be displayed in thephysical environment 24.Example candidate locations 70 in thephysical environment 24 are shown inFIG. 3A according to one example embodiment. Thecandidate locations 70 may be locations at which thevirtual content item 60 is anchored. In the example ofFIG. 3A , thecandidate locations 70 are all located on substantially flat horizontal surfaces. However, in other embodiments, one or more candidate locations on vertical surfaces or surfaces of other shapes may be identified. One or more candidate locations may additionally or alternatively be floating candidate locations positioned apart from surfaces in thephysical environment 24.FIG. 3A also shows anexample candidate area 72. Thevirtual content item 60 may be anchored at any point within thecandidate area 72. In other embodiments, one or more candidate lines and/or candidate volumes may be identified along which or within which a virtual object may be displayed. - In response to receiving the identification of the virtual content
item display opportunity 44, theprocessor 14 may be further configured to transmit a request for one or morevirtual content items 60 to theserver computing device 110 based on the identification of the virtual contentitem display opportunity 44. After sending the request, theprocessor 14 may receive the one or morevirtual content items 60 from theserver computing device 110. The request sent from the head-mounteddisplay device 10 to theserver computing device 110 and the response sent from theserver computing device 110 to the head-mounted display device are discussed in further detail below with reference toFIG. 8 . - After receiving the one or more
virtual content items 60, theprocessor 14 may be further configured to output the one or morevirtual content items 60 for display on thedisplay 20 based on the identification of the virtual contentitem display opportunity 44, as shown inFIG. 3B . Eachvirtual content item 60 may be displayed at a respective dynamically positionedcontent location 68 in thephysical environment 24 selected from among the one ormore candidate locations 70 by theserver computing device 110. Theserver computing device 110 may apply one or more rules and/or heuristics to determine acandidate location 70 of the one ormore candidate locations 70 at which to display thevirtual content item 60. In one example, theserver computing device 110 may assign a score to eachcandidate location 70 and select thecandidate location 70 that has the highest score. The score of acandidate location 70 may be based on one or more properties of thecandidate location 70 such as distance from theuser 90, angular displacement from thegaze direction 64, proximity to one or morevirtual objects 22, size of acandidate area 72, user-specified preferences, one or morephysical feature identifications 54, and/or one or more other scoring criteria. In some embodiments, the score may be a weighted score expressed as a sum of a plurality of scoring criteria with respective weights. In the example ofFIG. 3B , thevirtual content item 60, which depicts a soft drink bottle, is displayed at thecandidate location 70 closest to theuser 90. - In some embodiments, the virtual content
item display opportunity 44 may occur when an event or activity other than aphysical feature 26 detected with theimage sensor 30 is present in thephysical environment 24 or themixed reality experience 40. For example as shown inFIG. 4 , theserver computing device 110 may determine based on theimaging data 50 and/orposition data 52 received from theposition sensor 32 that auser 90 is running. The virtual contentitem display opportunity 44 may include aphysical feature identification 54 in addition to an event or activity identification in some embodiments. For example, theserver computing device 110 may further determine that thephysical feature identification 54 includes an identification of a road. In response to this determination, theserver computing device 110 may determine that a virtual contentitem display opportunity 44 exists for avirtual content item 60 depicting a motorcycle driving alongside theuser 90. In response to receiving the virtual contentitem display opportunity 44 including this determination, theprocessor 14 may be further configured to output thevirtual content item 60 for display on thedisplay 20. Thevirtual content item 60 may be output for display at a dynamically positionedcontent location 68 in thephysical environment 24, which may be located within acandidate area 72. The dynamically positionedcontent location 68 may move as theuser 90 moves through thephysical environment 24 so that thevirtual content item 60 remains near the user. For example, the dynamically positionedcontent location 68 may remain within a predetermined threshold distance of theuser 90. The dynamically positionedcontent location 68 may be anchored to aphysical feature 26 in thephysical environment 24 such that thevirtual content item 60 remains located on, or at a predetermined offset from, thephysical feature 26. In the embodiment ofFIG. 4 , thephysical feature 26 to which thevirtual content item 60 is anchored is the road. - In some embodiments, the
processor 14 may not output thevirtual content item 60 to thedisplay 20 for display immediately upon receiving thevirtual content item 60 from theserver computing device 110. Instead, theprocessor 14 may wait for atrigger condition 69 to occur before thevirtual content item 60 is displayed. For example, theprocessor 14 may display thevirtual content item 60 after a predetermined period of time has elapsed. In other embodiments, thetrigger condition 69 may be an event that occurs in thephysical environment 24 or themixed reality experience 40, such as a video ending. - Returning to
FIG. 1 , theprocessor 14 may be further configured to receive, via the one or more input devices, a user interaction 62 with avirtual content item 60 of the one or morevirtual content items 60. Theserver computing device 110 may determine that the data received from the one or more input devices of the head-mounteddisplay device 10 includes a user interaction 62. In some embodiments, the user interaction 62 may include a gesture selecting thevirtual content item 60. Additionally or alternatively, in embodiments in which the processor is configured to determine agaze direction 64 of theuser 90, the user interaction 62 may include gazing at thevirtual content item 60. The user interaction 62 may additionally or alternatively include a change in the position of the head-mounteddisplay device 10 as detected by theposition sensor 32, a voice input as detected by themicrophone 33, and/or some other type of input. The user interaction 62 may include inputs from a plurality of input devices. Any of the input devices discussed above with reference toFIGS. 1 and2 may be used, alone or in combination, to provide the user interaction 62. - In some embodiments, the
processor 14 may be further configured to modify at least onevirtual object 22 in response to the user interaction 62. The at least onevirtual object 22 modified in response to the user interaction 62 may be thevirtual content item 60. Additionally or alternatively, the modifiedvirtual object 22 may be anothervirtual object 22 included in themixed reality experience 40. For example, theuser 90 may select an option to display additional information (e.g. by navigating to a webpage, rotating thevirtual content item 60, or expanding a collapsed graphical element). As another example, theuser 90 may select an option to dismiss thevirtual content item 60. - In some embodiments, the
processor 14 may be further configured to transmit an indication of the user interaction 62 to theserver computing device 110 via the one ormore communication devices 16. This indication may be transmitted over thenetwork 80. Alternatively, theprocessor 14 may be configured to transmit sensor data to theserver computing device 110, which may determine that the sensor data indicates a user interaction 62. In response to sending the sensor data or the indication of the user interaction 62, the head-mounteddisplay device 10 may receive additional data from theserver computing device 110, such as one or more assets included in a webpage. The additional data may encode the updated virtual object. Additionally or alternatively, the indication of the user interaction 62 may be transmitted to theserver computing device 110 without the head-mounteddisplay device 10 receiving additional data in response. For example, in some embodiments, the one or morevirtual content items 60 may include one or more advertisements. In such embodiments, theserver computing device 110 may collect data on rates and types of user interaction 62 with the one or more advertisements. - The one or more
virtual content items 60 may be configured to interact with the one or morevirtual objects 22 of themixed reality experience 40. In such interactions, the one or morevirtual content items 60 may be modified based on one or more properties of the one or morevirtual objects 22. Additionally or alternatively, the one or morevirtual objects 22 may be modified based on one or more properties of the one or morevirtual content items 60. In embodiments in which movement of the one or more virtual objects is governed by a physics engine included in themixed reality experience 40, the physics engine may also control movement of the one or morevirtual content items 60. For example, avirtual object 22 and avirtual content item 60 may collide and bounce off each other. As another example, theuser 90 may select a portion of thevirtual content item 60 by manipulating avirtual object 22 that acts as a virtual cursor. Thus, thevirtual content item 60 may be incorporated into the mixed reality experience in a way that leads to less of an interruption in themixed reality experience 40 than existing systems and methods for introducingvirtual content items 60 into mixed reality experiences 40. In addition, when a plurality ofvirtual content items 60 are displayed, each of thevirtual content items 60 may interact with any or all of the othervirtual content items 60 and/or the virtual objects 22. Thus, a plurality ofvirtual content items 60 may be concurrently integrated into themixed reality experience 40. -
FIGS. 5A-B show thephysical environment 24,virtual object 22, andvirtual content item 60 ofFIGS. 3A-B in an example of an interaction between thevirtual object 22 and thevirtual content item 60. In the example ofFIGS. 5A-B , theprocessor 14 of the head-mounteddisplay device 10 receivesimaging data 50 from the one ormore imaging sensors 30 and transmits theimaging data 50 to theserver computing device 110. Theprocessor 14 then receives, from theserver computing device 10, an indication of a user interaction 62 including a gesture 66. The gesture 66 is a gesture to select thevirtual content item 60 and move thevirtual content item 60 toward thevirtual object 22, which represents a bag. In response to this gesture 66, theprocessor 14 may modify the dynamically locatedposition 68 of thevirtual content item 60 and cause the bottle (virtual content item 60) to appear to be placed inside the bag (virtual obj ect 22). Thus, thevirtual obj ect 22 may interact with thevirtual content item 60 such that thevirtual content item 60 is hidden. In the example ofFIGS 5A-B , the user interaction 62 placing the bottle (virtual content item 60) into the bag (virtual object 22) may be an "add to cart" action selecting the soft drink for purchasing. - The
server computing device 110 is shown in further detail with reference toFIG. 6 . Theserver computing device 110 may include one ormore communication devices 116 communicatively coupled to the head-mounteddisplay device 10. The one ormore communication devices 116 may be communicatively coupled to the head-mounteddisplay device 10 over thenetwork 80. Theserver computing device 110 may, in some embodiments, include one or more input devices and/or one or more output devices. Theserver computing device 110 may further includememory 112, which may include volatile and/or non-volatile memory. Theserver computing device 110 may further include aprocessor 114. - The
processor 114 of theserver computing device 110 may be configured to receive, via the one ormore communication devices 116,imaging data 50 from the head-mounteddisplay device 10. Theprocessor 114 of theserver computing device 110 may further receive one or more of inward-facingimaging data 51,position data 52, and/orsound data 53 from the head-mounteddisplay device 10. Based on theimaging data 50, theprocessor 114 of theserver computing device 110 may be configured to identify the one or morephysical features 26 in the physical environment of the head-mounteddisplay device 10. The one or morephysical features 26 may also be identified based on one or more of the inward-facingimaging data 51, theposition data 52, thesound data 53, and/or data collected at other input devices of the head-mounteddisplay device 10. Theprocessor 114 may be further configured to identify a virtual contentitem display opportunity 44. The identification of the virtual contentitem display opportunity 44 may include a determination that one or morephysical features 26 identified at the head-mounteddisplay device 10 satisfy one or more spatial and/ortemporal constraints 42. For example, the one or more spatial and/ortemporal constraints 42 may include one ormore position constraints 42A, timingconstraints 42B,size constraints 42C, and/or shape constraints 42D on avirtual content item 60. - The
processor 114 of theserver computing device 110 may be further configured to select one or morevirtual content items 60 from a plurality ofvirtual content items 60. The plurality ofvirtual content items 60 may be stored in thememory 112. The one or morevirtual content items 60 may be selected based on the one ormore constraints 42 included in the indication of the virtual contentitem display opportunity 44. For example, the plurality ofvirtual content items 60 may include a first subset of one or morevirtual content items 60 that satisfy all theconstraints 42 for at least one virtualcontent item opportunity 44 and a second subset of one or morevirtual content items 60 that, for each virtual content item display opportunity identified by the head-mounted display device, do not satisfy at least one constraint. Theprocessor 114 of theserver computing device 110 may then select thevirtual content item 60 from the first subset. - The
processor 114 of theserver computing device 110 may be further configured to select one or more respective dynamically positionedcontent locations 68 at which the one or morevirtual content items 60 are configured to be displayed in aphysical environment 24 of the head-mounteddisplay device 10. The dynamically positionedcontent location 68 of avirtual content item 60 may be selected from among a plurality of candidate locations for thevirtual content item 60. In some embodiments, the dynamically positionedcontent location 68 may move over time. Theprocessor 114 may further select one or morerespective trigger conditions 69 for the one or morevirtual content items 60. - The
processor 114 may be further configured to convey the one or morevirtual content items 60 to the head-mounteddisplay device 10. Theprocessor 114 may also convey the one or more respective dynamically positionedcontent locations 68 and/or triggerconditions 69 to the head-mounted display device. The one or morevirtual content items 60, the one or more dynamically positionedcontent locations 68, and/or the one ormore trigger conditions 69 may be conveyed to the head-mounted display device over thenetwork 80. - In some embodiments, the
processor 114 of theserver computing device 110 may be further configured to receive, via the one ormore communication devices 116, a user interaction 62 with avirtual content item 60 of the one or morevirtual content items 60 from the head-mounteddisplay device 10. For example, the user interaction 62 may indicate that theuser 90 has gazed at thevirtual content item 60 for a predetermined period of time. As another example, the user interaction 62 may indicate that theuser 90 has selected an option to receive additional information from theserver computing device 110. In some embodiments, theserver computing device 110 may store the indication of the user interaction 62 ininteraction history 150. In embodiments in which thevirtual content item 60 is an advertisement, data stored in theinteraction history 150 may be analyzed to determine the effectiveness of the advertisement. For example, the data stored in theinteraction history 150 may be used as training data for a machine learning algorithm. -
FIG. 7A shows a flowchart of amethod 200 that may be performed at a head-mounted display device. Themethod 200 may be performed at the head-mounteddisplay device 10 ofFIG. 1 or at some other head-mounted display device. Atstep 202, themethod 200 may include collecting imaging data of a physical environment. The imaging data may be collected by one or more outward-facing time-of-flight and/or RGB cameras included in the head-mounted display device. Additionally or alternatively, the imaging data may be collected by another sensor device external to the head-mounted display device and communicated to the head-mounted display device. Atstep 204, themethod 200 may further include outputting a mixed reality experience for display on an at least partially see-through display. The mixed reality experience may include one or more virtual objects superimposed upon the physical environment. Each virtual object superimposed upon the physical environment may be displayed such that it has an apparent location in the physical environment. Atstep 206, themethod 200 may further include transmitting the imaging data to a server computing device. The imaging data may be transmitted to the server computing device via one or more communication devices included in the head-mounted display device. - At
step 208, themethod 200 may further include receiving, from the server computing device, an identification of a virtual content item display opportunity. The virtual content item display opportunity may include a determination that the one or more physical features identified based on the imaging data satisfy one or more spatial and/or temporal constraints. For example, the one or more spatial and/or temporal constraints may include one or more position constraints on respective positions at which the one or more virtual content items are displayed. The one or more spatial and/or temporal constraints may additionally or alternatively include one or more timing constraints on respective times at which the one or more virtual content items are displayed. The one or more spatial and/or temporal constraints may additionally or alternatively include one or more size constraints on respective sizes of the one or more virtual content items and/or one or more shape constraints on respective shapes of the one or more virtual content items. In some embodiments, the virtual content item display opportunity may be identified at least in part by determining that the one or more identified physical features have a predetermined set of geometric characteristics. - In response to identifying the virtual content item display opportunity, the
method 200 may further include, atstep 210, transmitting a request for one or more virtual content items to the server computing device based on the identification of the virtual content item display opportunity. Atstep 212, the method may further include receiving the one or more virtual content items from the server computing device. In some embodiments, additionally or alternatively to contacting a server computing device and receiving the one or more virtual content items from the server device as in 210 and 212, the head-mounted display device may access one or more virtual content items stored locally in memory. In such embodiments, the one or more virtual content items may be displayed without contacting a server computing device.steps - At
step 214, themethod 200 may further include outputting the one or more virtual content items for display on the display at the one or more respective dynamically positioned content locations in the physical environment. The one or more virtual content items may be output from display based on the identification of the virtual content item display opportunity. For example, the one or more virtual content items may be output for display at respective dynamically positioned content locations that satisfy the one or more spatial and/or temporal constraints. In some embodiments, the one or more virtual content items may be configured to interact with the one or more virtual objects of the mixed reality experience. In such embodiments, the one or more virtual content items may be incorporated into the mixed reality experience as newly added virtual objects rather than forming a separate but concurrent mixed reality experience. -
FIG. 7B shows additional steps that may be performed in some embodiments when performing themethod 200 ofFIG. 7A . Atstep 216, themethod 200 may further include receiving, via one or more input devices, a user interaction with a virtual content item of the one or more virtual content items. The one or more input devices may include one or more input devices included in, and/or external to, the head-mounted display device. In some embodiments, receiving the user interaction may include, atstep 218, collecting inward-facing imaging data of a user via an inward-facing camera included in the head-mounted display device. The user interaction may include gazing at the virtual content item. The user interaction may additionally or alternatively include, atstep 220, collecting position data of the head-mounted display device. - In some embodiments, at
step 222, themethod 200 may further include transmitting an indication of the user interaction to the server computing device via one or more communication devices included in the head-mounted display device. In embodiments in which step 218 is performed,step 222 may include, atstep 224, transmitting the inward-facing imaging data to the server computing device. In embodiments in which step 220 is performed,step 222 may include, atstep 226, transmitting the position data to the server computing device. The server computing device may be the same as or different from the server computing device of 210 and 212. The indication of the user interaction may be transmitted to the server computing device over a network.steps - At
step 228, themethod 200 may further include modifying at least one virtual object in response to the user interaction. The at least one virtual object modified in response to the user interaction may include at least one virtual content item of the one or more virtual content items, and/or at least one other virtual object included in the mixed reality experience. In embodiments in which steps 218 and 224 are performed,step 228 may includestep 230. Atstep 230, the method may include receiving, from the server computing device, a determination of a gaze direction of the user based on the inward-facing imaging data. In such embodiments, the user interaction may include gazing at the virtual content item. - In embodiments in which steps 220 and 226 are performed,
step 228 may includestep 232. Atstep 232, themethod 200 may include receiving, from the server computing device, a determination of a change in position of the head-mounted display device based on the position data. In such embodiments, the user interaction may include the change in position. - In embodiments in which the imaging data collected at
step 202 and transmitted to the server computing device atstep 206 is determined to include a gesture selecting the virtual content item, step 228 may includestep 234. Atstep 234, themethod 200 may include receiving, from the server computing device, a determination that the imaging data includes a gesture selecting the virtual content item. For example, in response to a user interaction including a dragging gesture, a virtual content item may be relocated to a new position. If the new position is already occupied by a virtual object, that virtual object may also be relocated so that it does not overlap with the virtual content item. - An example implementation of a virtual
content item request 310 and a virtualcontent item response 330 are provided below with reference toFIG. 8 . In the following example, the virtual content item is an advertisement. Therequest 310 in the example ofFIG. 8 includes a plurality of parameters. These parameters may include anadtype 312 which specifies a type of advertisement to display. For example, theadtype 312 may indicate that the advertisement is a tabletop advertisement configured to be displayed on a table or other substantially flat, horizontal surface. Alternatively, theadtype 312 may indicate that the advertisement is a wall poster configured to be displayed on a substantially flat vertical surface. In some embodiments, theadtype 312 may indicate that the advertisement includes a plurality of virtual content items to be displayed at different dynamically positioned locations. For example, the advertisement may include a virtual person standing on a flat surface and may further include a virtual vehicle driving along a road. - The parameters included in the
request 310 may further include alist 314 of virtual contentitem display opportunities 44 indicating one or more dynamically positioned content locations at which the advertisement may be displayed, such as a tabletop, a chair top, a road, or a wall. The parameters of therequest 310 may further include a user identification (uid) 316 that indicates theuser 90 of the head-mounteddisplay device 10 from which therequest 310 is sent. In some embodiments, anew uid 316 may be generated for each session in which the head-mounteddisplay device 10 is used. Therequest 310 may further include a parameter indicating asceneID 318 may include information about themixed reality experience 40 and/or one or morephysical features 26 identified in thephysical environment 24. The parameters included in therequest 310 may further include asize 320 of the advertisement. Thesize 320 may indicate a size category such as small, medium, or large. Additionally or alternatively, thesize 320 may indicate one or more dimensions of the advertisement. In addition to the parameters listed above, therequest 310 may include one or more other parameters in some embodiments. - The
response 330 sent from theserver computing device 110 to the head-mounteddisplay device 10 may include a plurality of parameters, which may include aformat 332. Theformat 332 may indicate the advertisement type of the advertisement sent from theserver computing device 110 to the head-mounteddisplay device 10. Theresponse 330 may further include a list ofcreatives 334 per experience. The list ofcreatives 334 per experience may include information specifying an appearance of eachvirtual content item 60 to be displayed at the head-mounteddisplay device 10. The term "creative" as used herein refers to data typically stored in a file that includes content that has been created by an artist. For example, creative 334 may include one or more of an image, a color, a three dimensional shape, and a sequence of animated frames or a video. One example of a creative that includes a shape is a three dimensional object of an OBJ file type. Creative 334 may further include sound data, haptic feedback data, or other information specifying how thevirtual content item 60 is presented via another output device of the head-mounteddisplay device 10. - The
response 330 may further include anassetBundleUrl 336 that indicates a unique resource locator (URL) at which the creative 334 may be accessed. Theresponse 330 may further include arotation 338 indicating a rotation performed on thevirtual content item 60 relative to a default orientation. Additionally or alternatively, theresponse 330 may include ascale 340 indicating a scale factor applied to thevirtual content item 60 relative to a default size. - The parameters of the
response 330 may further include atrackingUrl 342 indicating one or more URLs that may be accessed in response to user interaction 62 with thevirtual content item 60. For example,trackingUrl 342 may include URLs such asgazeTracking 342A to be accessed when theuser 90 gazes at the advertisement and/orgesture Tracking 342B to be accessed when theuser 90 makes a gesture manipulating the advertisement. ThetrackingUrl 342 may further includedisposeTracking 342C to be accessed when the advertisement ceases to be displayed,rotateTracking 342D to be accessed when the advertisement is rotated,moveTracking 342E to be accessed when the advertisement is moved, and/or occlusionTracking 342F to be accessed when the advertisement is occluded by a physical or virtual object. Other URLs may be included intrackingURL 342 in some embodiments. In addition to the parameters listed above, theresponse 330 may include one or more other parameters in some embodiments. -
- In some embodiments, a virtual content item provider may specify the one or more parameters of the
response 330 and the one ormore constraints 42 on the placement of avirtual content item 60, which may be stored in thememory 112 of theserver computing device 100. For example, the virtual content item provider may be an advertiser who wishes to show an advertisement to auser 90 when a predetermined type of virtual contentitem display opportunity 60 occurs. For example, with reference to the example ofFIGS. 3A-B , an advertiser may target an advertisement to be displayed when theuser 90 is in aphysical environment 24 that includes a television and at least one horizontal surface. The virtual content item provider may further specify one or more candidate location selection criteria based on which the dynamically positionedlocation 68 of thevirtual content item 60 may be selected from a plurality ofcandidate locations 70. The virtual content item provider may additionally or alternatively specify one or more characteristics of a set ofusers 90 to whom the advertisement is targeted. In the example ofFIGS. 3A-B , the virtual content item provider may choose to display thevirtual content item 60 to theuser 90 based on an indication that theuser 90 has previously purchased the soft drink being advertised. In some embodiments, a plurality of virtual content item providers may bid on a virtual contentitem display opportunity 60 as they would bid on other forms of advertising space. - Although the above embodiments are discussed with reference to a head-mounted display device, other embodiments may be implemented with a display device that is not head-mounted. For example, the systems and methods discussed above may alternatively be used with a wall- or stand-mounted display device or a handheld display device. In such embodiments, the display device may provide a mixed-reality experience by displaying an image of the physical environment on the display along with one or more virtual objects. For example, a wall- or stand-mounted display device may act as a "window" into another area of the physical environment, such as an area behind a wall, and may display the one or more virtual objects overlapping the image of the other area of the physical environment. The image of the other area of the physical environment may be received from one or more imaging sensors located in the other area of the physical environment and communicatively coupled to the display device. Similarly, the handheld display device may include an outward-facing imaging sensor configured to image a region of the physical environment behind the display. The one or more imaging sensors may include one or more depth cameras and/or one or more RGB cameras. In other embodiments, the three-dimensional environment displayed on the display device may be a three-dimensional virtual environment.
- In addition, in wall- or stand-mounted and handheld embodiments, the display device may include one or more imaging sensors configured to detect a gaze direction and/or body position of the user. For example, the handheld display device may include a user-facing imaging sensor configured to image the user. The one or more imaging sensors configured to detect the gaze direction and/or body position of the user may include one or more depth cameras and/or RGB cameras. In handheld embodiments, the display device may further include one or more position sensors configured to detect the position and orientation of the display device relative to the user. Thus, in one example, the handheld display device may display the region of the physical environment behind the display with one or more virtual objects superimposed onto the image of the physical environment.
- In some embodiments, the methods and processes described herein may be tied to a computing system of one or more computing devices. In particular, such methods and processes may be implemented as a computer-application program or service, an application-programming interface (API), a library, and/or other computer-program product.
-
FIG. 9 schematically shows a non-limiting embodiment of acomputing system 400 that can enact one or more of the methods and processes described above.Computing system 400 is shown in simplified form.Computing system 400 may embody the head-mounteddisplay device 10 described above and illustrated inFIGS. 1 and2 and/or the server computing device described above and illustrated inFIG. 6 .Computing system 400 may take the form of one or more personal computers, server computers, tablet computers, home-entertainment computers, network computing devices, gaming devices, mobile computing devices, mobile communication devices (e.g., smart phone), and/or other computing devices, and wearable computing devices such as smart wristwatches and head mounted augmented reality devices. -
Computing system 400 includes alogic processor 402volatile memory 404, and anon-volatile storage device 406.Computing system 400 may optionally include adisplay subsystem 408,input subsystem 410,communication subsystem 412, and/or other components not shown inFIG. 9 . -
Logic processor 402 includes one or more physical devices configured to execute instructions. For example, the logic processor may be configured to execute instructions that are part of one or more applications, 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 components, achieve a technical effect, or otherwise arrive at a desired result. - The logic processor may include one or more physical processors (hardware) configured to execute software instructions. Additionally or alternatively, the logic processor may include one or more hardware logic circuits or firmware devices configured to execute hardware-implemented logic or firmware instructions. Processors of the
logic processor 402 may be single-core or multi-core, and the instructions executed thereon may be configured for sequential, parallel, and/or distributed processing. Individual components of the logic processor optionally may be distributed among two or more separate devices, which may be remotely located and/or configured for coordinated processing. Aspects of the logic processor may be virtualized and executed by remotely accessible, networked computing devices configured in a cloud-computing configuration. In such a case, these virtualized aspects are run on different physical logic processors of various different machines, it will be understood. -
Non-volatile storage device 406 includes one or more physical devices configured to hold instructions executable by the logic processors to implement the methods and processes described herein. When such methods and processes are implemented, the state ofnon-volatile storage device 406 may be transformed-e.g., to hold different data. -
Non-volatile storage device 406 may include physical devices that are removable and/or built-in.Non-volatile storage device 406 may include optical memory (e.g., CD, DVD, HD-DVD, Blu-Ray Disc, etc.), semiconductor memory (e.g., ROM, EPROM, EEPROM, FLASH memory, etc.), and/or magnetic memory (e.g., hard-disk drive, floppy-disk drive, tape drive, MRAM, etc.), or other mass storage device technology.Non-volatile storage device 406 may include nonvolatile, dynamic, static, read/write, read-only, sequential-access, location-addressable, file-addressable, and/or content-addressable devices. It will be appreciated thatnon-volatile storage device 406 is configured to hold instructions even when power is cut to thenon-volatile storage device 406. -
Volatile memory 404 may include physical devices that include random access memory.Volatile memory 404 is typically utilized bylogic processor 402 to temporarily store information during processing of software instructions. It will be appreciated thatvolatile memory 404 typically does not continue to store instructions when power is cut to thevolatile memory 404. - Aspects of
logic processor 402,volatile memory 404, andnon-volatile storage device 406 may be integrated together into one or more hardware-logic components. 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), and complex programmable logic devices (CPLDs), for example. - The terms "module," "program," and "engine" may be used to describe an aspect of
computing system 400 typically implemented in software by a processor to perform a particular function using portions of volatile memory, which function involves transformative processing that specially configures the processor to perform the function. Thus, a module, program, or engine may be instantiated vialogic processor 402 executing instructions held bynon-volatile storage device 406, using portions ofvolatile memory 404. It will be understood that different modules, programs, and/or engines may be instantiated from the same application, service, code block, object, library, routine, API, function, etc. Likewise, the same module, program, and/or engine may be instantiated by different applications, services, code blocks, objects, routines, APIs, functions, etc. The terms "module," "program," and "engine" may encompass individual or groups of executable files, data files, libraries, drivers, scripts, database records, etc. - When included,
display subsystem 408 may be used to present a visual representation of data held bynon-volatile storage device 406. The visual representation may take the form of a graphical user interface (GUI). As the herein described methods and processes change the data held by the non-volatile storage device, and thus transform the state of the non-volatile storage device, the state ofdisplay subsystem 408 may likewise be transformed to visually represent changes in the underlying data.Display subsystem 408 may include one or more display devices utilizing virtually any type of technology. Such display devices may be combined withlogic processor 402,volatile memory 404, and/ornon-volatile storage device 406 in a shared enclosure, or such display devices may be peripheral display devices. - When included,
input subsystem 410 may comprise or interface with one or more user-input devices such as a keyboard, mouse, touch screen, or game controller. In some embodiments, the input subsystem 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; and/or any other suitable sensor. - When included,
communication subsystem 412 may be configured to communicatively couple various computing devices described herein with each other, and with other devices.Communication subsystem 412 may include wired and/or wireless communication devices compatible with one or more different communication protocols. As non-limiting examples, the communication subsystem may be configured for communication via a wireless telephone network, or a wired or wireless local- or wide-area network, such as a HDMI over Wi-Fi connection. In some embodiments, the communication subsystem may allowcomputing system 400 to send and/or receive messages to and/or from other devices via a network such as the Internet. - According to one aspect of the present disclosure, head-mounted display device is provided, including an at least partially see-through display, one or more input devices including one or more image sensors configured to collect imaging data of a physical environment, one or more communication devices and a processor. The processor may be configured to output for display on the display a mixed reality experience including one or more virtual objects superimposed upon the physical environment. The processor may be further configured to transmit the imaging data to a server computing device via the one or more communication devices. The processor may be further configured to receive, from the server computing device, an identification of a virtual content item display opportunity. The identification of the virtual content item display opportunity may include a determination that the mixed reality experience and one or more physical features identified from the imaging data satisfy one or more spatial and/or temporal constraints. The processor may be further configured to transmit a request for one or more virtual content items to the server computing device based on the identification of the virtual content item display opportunity. The processor may be further configured to receive the one or more virtual content items from the server computing device. The processor may be further configured to output the one or more virtual content items for display on the display at one or more respective dynamically positioned content locations in the physical environment.
- According to this aspect, the processor may be further configured to receive, via the one or more input devices, a user interaction with a virtual content item of the one or more virtual content items.
- According to this aspect, the processor may be further configured to modify at least one virtual object in response to the user interaction.
- According to this aspect, the processor may be further configured to transmit an indication of the user interaction to the server computing device via the one or more communication devices.
- According to this aspect, the one or more input devices may include an inward-facing image sensor configured to collect inward-facing imaging data of a user. The processor may be further configured to transmit the inward-facing imaging data to the server computing device. The processor may be further configured to receive, from the server computing device, a determination of a gaze direction of the user based on the inward-facing imaging data. The user interaction may include gazing at the virtual content item.
- According to this aspect, the one or more input devices may include a position sensor configured to collect position data of the head-mounted display device. The user interaction may include a change in position of the head-mounted display device. The processor may be further configured to transmit the position data to the server computing device.
- According to this aspect, the user interaction may include a gesture selecting the virtual content item.
- According to this aspect, the one or more virtual content items may be configured to interact with the one or more virtual objects of the mixed reality experience.
- According to this aspect, the identification of the virtual content item display opportunity may include a determination that the one or more identified physical features have a predetermined set of geometric characteristics.
- According to this aspect, the one or more spatial and/or temporal constraints may be selected from the group consisting of one or more position constraints on respective positions at which the one or more virtual content items are displayed, one or more timing constraints on respective times at which the one or more virtual content items are displayed, one or more size constraints on respective sizes of the one or more virtual content items, and one or more shape constraints on respective shapes of the one or more virtual content items.
- According to this aspect, the one or more virtual content items may include one or more advertisements.
- According to another aspect of the present disclosure, a method for use with a head-mounted display device is provided. The method may include collecting imaging data of a physical environment. The method may further include outputting for display on an at least partially see-through display a mixed reality experience including one or more virtual objects superimposed upon the physical environment. The method may further include transmitting the imaging data to a server computing device. The method may further include receiving, from the server computing device, an identification of a virtual content item display opportunity. The identification of the virtual content item display opportunity may include a determination that the mixed reality experience and one or more physical features identified from the imaging data satisfy one or more spatial and/or temporal constraints. The method may further include transmitting a request for one or more virtual content items to the server computing device based on the identification of the virtual content item display opportunity. The method may further include receiving the one or more virtual content items from the server computing device. The method may further include outputting the one or more virtual content items for display on the display at one or more respective dynamically positioned content locations in the physical environment.
- According to this aspect, the method may further include receiving, via one or more input devices, a user interaction with a virtual content item of the one or more virtual content items.
- According to this aspect, the method may further include transmitting an indication of the user interaction to the server computing device.
- According to this aspect, the method may further include collecting inward-facing imaging data of a user. The method may further include transmitting the inward-facing imaging data to the server computing device. The method may further include receiving, from the server computing device, a determination of a gaze direction of the user based on the inward-facing imaging data. The user interaction may include gazing at the virtual content item.
- According to this aspect, the user interaction may include a gesture selecting the virtual content item.
- According to this aspect, the one or more virtual content items may be configured to interact with the one or more virtual objects of the mixed reality experience.
- According to this aspect, the one or more spatial and/or temporal constraints may be selected from the group consisting of one or more position constraints on respective positions at which the one or more virtual content items are displayed, one or more timing constraints on respective times at which the one or more virtual content items are displayed, one or more size constraints on respective sizes of the one or more virtual content items, and one or more shape constraints on respective shapes of the one or more virtual content items.
- According to another aspect of the present disclosure, a server computing device is provided, including one or more communication devices communicatively coupled to a display device and a processor configured to receive imaging data from the display device. The processor may be further configured to, based on the imaging data, identify one or more physical features in the physical environment of the display device. The processor may be further configured to identify a virtual content item display opportunity at least in part by determining that the one or more physical features identified at the display device satisfy one or more spatial and/or temporal constraints. The processor may be further configured to select, based on the virtual content item display opportunity, one or more virtual content items from a plurality of virtual content items. The processor may be further configured to select, based on the virtual content item display opportunity, one or more respective dynamically positioned content locations at which to display the one or more virtual content items in the physical environment of the display device. The processor may be further configured to convey the one or more virtual content items and one or more respective dynamically positioned content locations to the display device.
- According to this aspect, the processor may be further configured to receive a user interaction with a virtual content item of the one or more virtual content items from the display device.
- It will 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 and/or described may be performed in the sequence illustrated and/or described, in other sequences, in parallel, or omitted. Likewise, the order of the above-described processes may be changed.
- The subject matter of the present disclosure includes all novel and non-obvious combinations and sub-combinations 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.
Claims (15)
- A head-mounted display device (10), comprising:an at least partially see-through display (20);one or more input devices including one or more image sensors (30) configured to collect imaging data of a physical environment;one or more communication devices (16); anda processor (14) configured to:output for display on the display a mixed reality experience including one or more virtual objects (22) superimposed upon the physical environment;transmit the imaging data to a server computing device (110) via the one or more communication devices (16);receive, from the server computing device (110), an identification of a virtual content item display opportunity (44), wherein the identification of the virtual content item display opportunity (44) includes a determination that the mixed reality experience and one or more physical features (26) identified from the imaging data satisfy one or more spatial and/or temporal constraints (42);transmit a request for one or more virtual content items (60) to the server computing device (110) based on the identification of the virtual content item display opportunity (44);receive the one or more virtual content items (60) from the server computing device (110); andoutput, based on the identification of the virtual content item display opportunity (44), the one or more virtual content items (60) for display on the display (20) at one or more respective dynamically positioned content locations (68) in the physical environment that satisfy the one or more spatial and/or temporal constraints;wherein the identification of the virtual content item display opportunity (44) includes a determination that the one or more identified physical features (26) have a predetermined set of geometric characteristics, and wherein the one or more spatial and/or temporal constraints (42) comprise one or more size constraints (42C) on respective sizes of the one or more virtual content items (60).
- The head-mounted display device (10) of claim 1, wherein the processor (14) is further configured to receive, via the one or more input devices, a user interaction with a virtual content item of the one or more virtual content items (60).
- The head-mounted display device (10) of claim 2, wherein the processor (14) is further configured to modify at least one virtual object (22) in response to the user interaction.
- The head-mounted display device (10) of claim 2, wherein the processor (14) is further configured to transmit an indication of the user interaction to the server computing device (110) via the one or more communication devices (16).
- The head-mounted display device (10) of claim 4, wherein:the one or more input devices include an inward-facing image sensor (31) configured to collect inward-facing imaging data of a user; andthe processor (14) is further configured to:transmit the inward-facing imaging data to the server computing device (110); andreceive, from the server computing device (110), a determination of a gaze direction of the user based on the inward-facing imaging data, wherein the user interaction includes gazing at the virtual content item (60).
- The head-mounted display device (10) of claim 4, wherein:the one or more input devices include a position sensor (32) configured to collect position data of the head-mounted display device (10);the user interaction includes a change in position of the head-mounted display device (10); andthe processor (14) is further configured to transmit the position data to the server computing device (110).
- The head-mounted display device (10) of claim 2, wherein the user interaction includes a gesture selecting the virtual content item (60).
- The head-mounted display device (10) of claim 1, wherein the one or more virtual content items (60) are configured to interact with the one or more virtual objects (22) of the mixed reality experience.
- The head-mounted display device (10) of claim 1, wherein the one or more spatial and/or temporal constraints (42) further comprise one or more of:one or more position constraints on respective positions at which the one or more virtual content items are displayed;one or more timing constraints on respective times at which the one or more virtual content items are displayed; andone or more shape constraints on respective shapes of the one or more virtual content items.
- The head-mounted display device (10) of claim 1, wherein the one or more virtual content items (60) include one or more advertisements.
- A method (200) for use with a head-mounted display device, the method (200) comprising:collecting (202) imaging data of a physical environment;outputting (204) for display on an at least partially see-through display a mixed reality experience including one or more virtual objects superimposed upon the physical environment;transmitting (206) the imaging data to a server computing device;receiving (208), from the server computing device, an identification of a virtual content item display opportunity, wherein the identification of the virtual content item display opportunity includes a determination that the mixed reality experience and one or more physical features identified from the imaging data satisfy one or more spatial and/or temporal constraints;transmitting (210) a request for one or more virtual content items to the server computing device based on the identification of the virtual content item display opportunity;receiving (212) the one or more virtual content items from the server computing device; andoutputting (214), based on the identification of the virtual content item display opportunity, the one or more virtual content items for display on the display at one or more respective dynamically positioned content locations in the physical environment that satisfy the one or more spatial and/or temporal constraints;wherein the identification of the virtual content item display opportunity includes a determination that the one or more identified physical features have a predetermined set of geometric characteristics, and wherein the one or more spatial and/or temporal constraints comprise one or more size constraints on respective sizes of the one or more virtual content items.
- The method (200) of claim 11, further comprising receiving (216), via one or more input devices, a user interaction with a virtual content item of the one or more virtual content items.
- The method (200) of claim 12, further comprising transmitting (222) an indication of the user interaction to the server computing device.
- The method (200) of claim 11, wherein the one or more virtual content items are configured to interact with the one or more virtual objects of the mixed reality experience.
- A server computing device (110), comprising:one or more communication devices (116) communicatively coupled to a display device (10); anda processor (114) configured to:receive imaging data from the display device (10);based on the imaging data, identify one or more physical features (26) in a physical environment of the display device (10);identify a virtual content item display opportunity (44) at least in part by determining that the one or more identified physical features (26) satisfy one or more spatial and/or temporal constraints (42);select, based on the virtual content item display opportunity (44), one or more virtual content items (60) from a plurality of virtual content items;select, based on the virtual content item display opportunity (44), one or more respective dynamically positioned content locations (68) at which to display the one or more virtual content items (60) in the physical environment of the display device (10); andconvey, based on the identified virtual content item display opportunity, the one or more virtual content items (60) and one or more respective dynamically positioned content locations (68) that satisfy the one or more spatial and/or temporal constraints to the display device (10);wherein the identification of the virtual content item display opportunity (44) includes a determination that the one or more identified physical features (26) have a predetermined set of geometric characteristics, and wherein the one or more spatial and/or temporal constraints (42) comprise one or more size constraints (42C) on respective sizes of the one or more virtual content items (60).
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US16/193,428 US11854148B2 (en) | 2018-11-16 | 2018-11-16 | Virtual content display opportunity in mixed reality |
| PCT/US2019/060166 WO2020101986A1 (en) | 2018-11-16 | 2019-11-07 | Virtual content display opportunity in mixed reality |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| EP3881165A1 EP3881165A1 (en) | 2021-09-22 |
| EP3881165B1 true EP3881165B1 (en) | 2025-01-01 |
Family
ID=69160042
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP19836003.4A Active EP3881165B1 (en) | 2018-11-16 | 2019-11-07 | Virtual content display opportunity in mixed reality |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US11854148B2 (en) |
| EP (1) | EP3881165B1 (en) |
| WO (1) | WO2020101986A1 (en) |
Families Citing this family (19)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10997630B2 (en) * | 2018-12-20 | 2021-05-04 | Rovi Guides, Inc. | Systems and methods for inserting contextual advertisements into a virtual environment |
| US11704874B2 (en) | 2019-08-07 | 2023-07-18 | Magic Leap, Inc. | Spatial instructions and guides in mixed reality |
| WO2021061349A1 (en) | 2019-09-27 | 2021-04-01 | Apple Inc. | Controlling representations of virtual objects in a computer-generated reality environment |
| US11089427B1 (en) | 2020-03-31 | 2021-08-10 | Snap Inc. | Immersive augmented reality experiences using spatial audio |
| US11275629B2 (en) | 2020-06-25 | 2022-03-15 | Microsoft Technology Licensing, Llc | Mixed reality complementary systems |
| CN115836271A (en) * | 2020-07-14 | 2023-03-21 | 苹果公司 | Generating suggested content for a workspace |
| US11341543B2 (en) * | 2020-08-31 | 2022-05-24 | HYPE AR, Inc. | System and method for generating visual content associated with tailored advertisements in a mixed reality environment |
| EP4256391A1 (en) * | 2020-12-07 | 2023-10-11 | Snap Inc. | Augmented reality spatial audio experience |
| US12278938B2 (en) * | 2020-12-21 | 2025-04-15 | Beijing Boe Optoelectronics Technology Co., Ltd. | Mixed reality display method, mixed reality device, and storage medium |
| US11682180B1 (en) * | 2021-12-09 | 2023-06-20 | Qualcomm Incorporated | Anchoring virtual content to physical surfaces |
| CN114627389B (en) * | 2022-03-23 | 2023-01-31 | 中国科学院空天信息创新研究院 | A method for extracting raft farming area based on multi-temporal optical remote sensing images |
| US12198278B2 (en) * | 2022-04-08 | 2025-01-14 | Quabbin Patent Holdings, Inc. | Manifesting a virtual object in a virtual environment |
| US12541889B2 (en) | 2022-04-08 | 2026-02-03 | Quabbin Patent Holdings, Inc. | Physical proximity-based manifestation of virtual objects in a virtual environment |
| WO2022140803A2 (en) * | 2022-05-03 | 2022-06-30 | Futurewei Technologies, Inc. | Method and apparatus for scalable semantically aware augmented reality (ar)+ internet system |
| US12249034B2 (en) | 2022-08-30 | 2025-03-11 | Adeia Guides Inc. | Systems and methods for pinning content items to locations in an augmented reality display based on user preferences |
| US12277654B2 (en) * | 2022-08-30 | 2025-04-15 | Adeia Guides Inc. | Systems and methods for pinning content items to locations in an augmented reality display based on user preferences |
| US12112511B1 (en) * | 2023-04-05 | 2024-10-08 | Sony Interactive Entertainment Inc. | Optimization of eye capture conditions for each user and use case |
| WO2025000395A1 (en) * | 2023-06-29 | 2025-01-02 | Lemon Inc. | Haptic feedback headpiece |
| US20250138695A1 (en) * | 2023-10-27 | 2025-05-01 | Adeia Guides Inc. | Methods for enhanced presentation and collaboration using ar hmds |
Family Cites Families (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8098881B2 (en) * | 2008-03-11 | 2012-01-17 | Sony Ericsson Mobile Communications Ab | Advertisement insertion systems and methods for digital cameras based on object recognition |
| US20130124311A1 (en) * | 2009-03-23 | 2013-05-16 | Sujai Sivanandan | System and Method for Dynamic Integration of Advertisements in a Virtual Environment |
| KR101206264B1 (en) | 2010-09-07 | 2012-12-05 | 지만석 | How to Provide Ads in Augmented Reality Games |
| US20120122554A1 (en) | 2010-11-12 | 2012-05-17 | Disney Enterprises, Inc. | System and method for in-game interactive advertising |
| US8670183B2 (en) | 2011-03-07 | 2014-03-11 | Microsoft Corporation | Augmented view of advertisements |
| US9536251B2 (en) | 2011-11-15 | 2017-01-03 | Excalibur Ip, Llc | Providing advertisements in an augmented reality environment |
| US20130293530A1 (en) * | 2012-05-04 | 2013-11-07 | Kathryn Stone Perez | Product augmentation and advertising in see through displays |
| US9245388B2 (en) * | 2013-05-13 | 2016-01-26 | Microsoft Technology Licensing, Llc | Interactions of virtual objects with surfaces |
| US9824499B2 (en) * | 2015-06-23 | 2017-11-21 | Microsoft Technology Licensing, Llc | Mixed-reality image capture |
| US10304247B2 (en) * | 2015-12-09 | 2019-05-28 | Microsoft Technology Licensing, Llc | Third party holographic portal |
| US10580040B2 (en) | 2016-04-03 | 2020-03-03 | Integem Inc | Methods and systems for real-time image and signal processing in augmented reality based communications |
| WO2018031050A1 (en) | 2016-08-09 | 2018-02-15 | Cortica, Ltd. | System and method for generating a customized augmented reality environment to a user |
| US10621773B2 (en) * | 2016-12-30 | 2020-04-14 | Google Llc | Rendering content in a 3D environment |
| US10520782B2 (en) | 2017-02-02 | 2019-12-31 | James David Busch | Display devices, systems and methods capable of single-sided, dual-sided, and transparent mixed reality applications |
| CN106933357A (en) | 2017-02-23 | 2017-07-07 | 任刚 | A kind of holographic advertisement play system and method based on wearable mixed reality equipment |
-
2018
- 2018-11-16 US US16/193,428 patent/US11854148B2/en active Active
-
2019
- 2019-11-07 WO PCT/US2019/060166 patent/WO2020101986A1/en not_active Ceased
- 2019-11-07 EP EP19836003.4A patent/EP3881165B1/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| EP3881165A1 (en) | 2021-09-22 |
| US20200160602A1 (en) | 2020-05-21 |
| WO2020101986A1 (en) | 2020-05-22 |
| US11854148B2 (en) | 2023-12-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11854148B2 (en) | Virtual content display opportunity in mixed reality | |
| US9734636B2 (en) | Mixed reality graduated information delivery | |
| US10852814B1 (en) | Bounding virtual object | |
| EP3782015B1 (en) | Three-dimensional push notification | |
| US9761057B2 (en) | Indicating out-of-view augmented reality images | |
| EP3311250B1 (en) | System and method for spawning drawing surfaces | |
| US9829989B2 (en) | Three-dimensional user input | |
| US9977492B2 (en) | Mixed reality presentation | |
| US9024844B2 (en) | Recognition of image on external display | |
| JP6611733B2 (en) | Attracting the attention of viewers of display devices | |
| US20190215503A1 (en) | 360-degree video post-roll | |
| US8988344B2 (en) | User interface navigation | |
| KR20170090490A (en) | Gaze target application launcher | |
| WO2020142328A1 (en) | Image bounding shape using 3d environment representation | |
| WO2023136934A1 (en) | Ephemeral artificial reality experiences | |
| JP2018185738A (en) | Information processing apparatus and advertisement control program |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: UNKNOWN |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
| 17P | Request for examination filed |
Effective date: 20210430 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
| RAP3 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC |
|
| DAV | Request for validation of the european patent (deleted) | ||
| DAX | Request for extension of the european patent (deleted) | ||
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: EXAMINATION IS IN PROGRESS |
|
| 17Q | First examination report despatched |
Effective date: 20230131 |
|
| GRAP | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOSNIGR1 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: GRANT OF PATENT IS INTENDED |
|
| RIC1 | Information provided on ipc code assigned before grant |
Ipc: G06Q 30/0251 20230101ALI20240715BHEP Ipc: G06Q 30/0242 20230101ALI20240715BHEP Ipc: G06Q 30/02 20120101ALI20240715BHEP Ipc: G06T 19/00 20110101ALI20240715BHEP Ipc: G06F 3/01 20060101AFI20240715BHEP |
|
| INTG | Intention to grant announced |
Effective date: 20240730 |
|
| P01 | Opt-out of the competence of the unified patent court (upc) registered |
Free format text: CASE NUMBER: APP_44840/2024 Effective date: 20240801 |
|
| GRAS | Grant fee paid |
Free format text: ORIGINAL CODE: EPIDOSNIGR3 |
|
| GRAA | (expected) grant |
Free format text: ORIGINAL CODE: 0009210 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE PATENT HAS BEEN GRANTED |
|
| AK | Designated contracting states |
Kind code of ref document: B1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
| REG | Reference to a national code |
Ref country code: GB Ref legal event code: FG4D |
|
| REG | Reference to a national code |
Ref country code: CH Ref legal event code: EP |
|
| REG | Reference to a national code |
Ref country code: DE Ref legal event code: R096 Ref document number: 602019064357 Country of ref document: DE |
|
| REG | Reference to a national code |
Ref country code: IE Ref legal event code: FG4D |
|
| REG | Reference to a national code |
Ref country code: LT Ref legal event code: MG9D |
|
| REG | Reference to a national code |
Ref country code: NL Ref legal event code: MP Effective date: 20250101 |
|
| REG | Reference to a national code |
Ref country code: AT Ref legal event code: MK05 Ref document number: 1756928 Country of ref document: AT Kind code of ref document: T Effective date: 20250101 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: NL Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20250101 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: FI Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20250101 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: PL Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20250101 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: ES Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20250101 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: IS Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20250501 Ref country code: NO Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20250401 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: HR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20250101 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: LV Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20250101 Ref country code: PT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20250502 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: BG Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20250101 Ref country code: GR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20250402 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: AT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20250101 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: CZ Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20250101 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: SE Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20250101 |
|
| REG | Reference to a national code |
Ref country code: DE Ref legal event code: R097 Ref document number: 602019064357 Country of ref document: DE |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: SM Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20250101 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: DK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20250101 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: IT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20250101 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: EE Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20250101 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: RO Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20250101 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: SK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20250101 |
|
| PLBE | No opposition filed within time limit |
Free format text: ORIGINAL CODE: 0009261 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT |
|
| REG | Reference to a national code |
Ref country code: CH Ref legal event code: L10 Free format text: ST27 STATUS EVENT CODE: U-0-0-L10-L00 (AS PROVIDED BY THE NATIONAL OFFICE) Effective date: 20251112 |
|
| 26N | No opposition filed |
Effective date: 20251002 |
|
| PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: DE Payment date: 20251022 Year of fee payment: 7 |
|
| PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: GB Payment date: 20251023 Year of fee payment: 7 |
|
| REG | Reference to a national code |
Ref country code: CH Ref legal event code: H13 Free format text: ST27 STATUS EVENT CODE: U-0-0-H10-H13 (AS PROVIDED BY THE NATIONAL OFFICE) Effective date: 20260623 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: LT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20250101 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: MC Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20250101 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: RS Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20250101 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: LU Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20251107 Ref country code: CH Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20251130 |

