IP Library › Granted Patent US 12,211,152
Granted Patent B2
US 12,211,152 · App. 17/727,311 · Granted Jan 28, 2025

Location-based virtual element modality in three-dimensional content

Inventors: Aaron M. Burns (Sunnyvale, CA); Bruno M. Sommer (Sunnyvale, CA); Timothy R. Oriol (San Jose, CA)
Assignee: Apple Inc.
G06T19/006G02B27/0172G06T19/20G02B2027/0138G02B2027/014G06T2219/2004
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,211,152
App. No.
17/727,311
Granted
Jan 28, 2025
Kind
B2
Abstract

Various implementations disclosed herein include devices, systems, and methods that enable a device to provide a view of virtual elements and a physical environment where the presentation of the virtual elements is based on positioning relative to the physical environment. In one example, a device is configured to detect a change in positioning of a virtual element, for example, when a virtual element is added, moved, or the physical environment around the virtual element is changed. The location of the virtual element in the physical environment is used to detect an attribute of the physical environment upon which the presentation of the virtual element depends. Thus, the device is further configured to detect an attribute (e.g., surface, table, mid-air, etc.) of the physical environment based on the placement of the virtual element and present the virtual element based on the detected attribute.

Claims (61)

1. A method comprising:

at a device with a processor and a computer readable medium:

obtaining a request to display an application at a first location in a three-dimensional (3D) environment, wherein the application comprises a modality state definition for each of a plurality of positional states, and wherein each modality state definition comprises a different two-dimensional (2D) or 3D model representation of the application, wherein each different 2D or 3D model representation of the application comprises a different functionality and a different interactive feature;

determining a first positional state associated with the first location in the 3D environment;

displaying, at the first location in the 3D environment, a first 2D or 3D model representation of the application that corresponds to the modality state definition matching the determined first positional state, wherein the displaying of the first 2D or 3D model representation of the application comprises a visual representation of a first associated functionality and a visual representation of a first associated interactive feature;

obtaining a second request to display the application at a second location different than the first location;

determining a second positional state associated with the second location in the 3D environment;

determining, based on the second positional state, whether to update the first 2D or 3D model representation of the application; and

in accordance with determining to update the first 2D or 3D model representation of the application, displaying, at the second location in the 3D environment, a second 2D or 3D model representation of the application that corresponds to the modality state definition matching the determined second positional state, wherein the displaying of the second 2D or 3D model representation of the application comprises a visual representation of a second associated functionality that is different than the first associated functionality and a visual representation of a second associated interactive feature that is different than the first associated interactive feature.

2. The method of claim 1 , wherein determining the first positional state comprises:

identifying a classification of a portion of the 3D environment using a classifier; and

identifying an amount of the portion available upon which the first 2D or 3D model representation of the application can be positioned.

3. The method of claim 1 , wherein, in accordance with determining the first positional state, the method further comprises updating the first 2D or 3D model representation of the application to have a first visual appearance when updating the first 2D or 3D model representation of the application; and

wherein in accordance with determining the second positional state, the method further comprises updating the second 2D or 3D model representation of the application to have a second visual appearance when updating the second 2D or 3D model representation of the application, wherein the first visual appearance is different from the second visual appearance.

4. The method of claim 1 , wherein, in accordance with determining the first positional state, the method further comprises updating the first 2D or 3D model representation of the application to be updated to have a first functionality when updating the first 2D or 3D model representation of the application; and

wherein in accordance with determining the second positional state, the method further comprises updating the second 2D or 3D model representation of the application to be updated to have a second functionality when updating the second 2D or 3D model representation of the application, wherein the first functionality is different from the second functionality.

5. The method of claim 1 , wherein, in accordance with determining the first positional state, the method further comprises displaying an updated 2D or 3D model representation of the application at a second location; and

wherein in accordance with determining the second positional state, the method further comprises displaying the updated 2D or 3D model representation of the application away from the second location, wherein the first positional state is different from the second positional state.

6. The method of claim 1 , wherein the modality state definition of the first 2D or 3D model representation of the application is based on a function of the first 2D or 3D model representation of the application.

7. The method of claim 1 , wherein displaying the first 2D or 3D model representation of the application comprises:

obtaining, using an image sensor, an image of the 3D environment;

generating a representation of the 3D environment using the obtained image; and

presenting the first 2D or 3D model representation of the application within 3D environment.

8. The method of claim 1 , wherein displaying the first 2D or 3D model representation of the application comprises:

identifying, using an image sensor, a feature in the 3D environment; and

presenting the first 2D or 3D model representation of the application on an optical see-through display responsive to identifying the feature.

9. The method of claim 1 , further comprising:

receiving user input representing a change in the first location of the first 2D or 3D model representation of the application or the second 2D or 3D model representation of the application.

10. The method of claim 1 , wherein determining the first positional state associated with the first location in the 3D environment or determining the second positional state associated with the second location in the 3D environment comprises determining that the first 2D or 3D model representation of the application is on a planar surface.

11. The method of claim 10 , wherein determining the first positional state associated with the first location in the 3D environment or determining the second positional state associated with the second location in the 3D environment comprises determining that the planar surface is a wall, table, floor, ramp, stairway, or ceiling.

12. The method of claim 1 , wherein determining the first positional state associated with the first location in the 3D environment or determining the second positional state associated with the second location in the 3D environment comprises determining that the first 2D or 3D model representation of the application or the second 2D or 3D model representation of the application is on a horizontal planar surface.

13. The method of claim 1 , wherein the first positional state associated with the first location in the 3D environment or determining the second positional state associated with the second location in the 3D environment determining that the first 2D or 3D model representation of the application or the second 2D or 3D model representation of the application is on a vertical planar surface.

14. A system comprising:

an electronic device with a display and an image sensor;

a processor; and

a computer-readable storage medium comprising instructions that upon execution by the processor cause the processor to perform operations, the operations comprising:

obtaining a request to display an application at a first location in a three-dimensional (3D) environment, wherein the application comprises a modality state definition for each of a plurality of positional states, and wherein each modality state definition comprises a different two-dimensional (2D) or 3D model representation of the application, wherein each different 2D or 3D model representation of the application comprises a different functionality and a different interactive feature;

determining a first positional state associated with the first location in the 3D environment;

displaying, at the first location in the 3D environment, a first 2D or 3D model representation of the application that corresponds to the modality state definition matching the determined first positional state, wherein the displaying of the first 2D or 3D model representation of the application comprises a visual representation of a first associated functionality and a visual representation of a first associated interactive feature;

obtaining a second request to display the application at a second location different than the first location;

determining a second positional state associated with the second location in the 3D environment;

determining, based on the second positional state, whether to update the first 2D or 3D model representation of the application; and

in accordance with determining to update the first 2D or 3D model representation of the application, displaying, at the second location in the 3D environment, a second 2D or 3D model representation of the application that corresponds to the modality state definition matching the determined second positional state, wherein the displaying of the second 2D or 3D model representation of the application comprises a visual representation of a second associated functionality that is different than the first associated functionality and a visual representation of a second associated interactive feature that is different than the first associated interactive feature.

15. The system of claim 14 , wherein determining the first positional state comprises:

identifying a classification of a portion of the 3D environment using a classifier; and

identifying an amount of the portion available upon which the first 2D or 3D model representation of the application can be positioned.

16. The system of claim 14 , wherein, in accordance with determining the first positional state, the instructions that upon execution by the processor further cause the processor to perform operations comprising updating the first 2D or 3D model representation of the application to have a first visual appearance when updating the first 2D or 3D model representation of the application; and

wherein in accordance with determining the second positional state, the instructions that upon execution by the processor further cause the processor to perform operations comprising updating the second 2D or 3D model representation of the application to have a second visual appearance when updating the second 2D or 3D model representation of the application, wherein the first visual appearance is different from the second visual appearance.

17. The system of claim 14 , wherein, in accordance with determining the first positional state, the instructions that upon execution by the processor further cause the processor to perform operations comprising updating the first 2D or 3D model representation of the application to be updated to have a first functionality when updating the first 2D or 3D model representation of the application; and

wherein in accordance with determining the second positional state, the instructions that upon execution by the processor further cause the processor to perform operations comprising updating the second 2D or 3D model representation of the application to be updated to have a second functionality when updating the second 2D or 3D model representation of the application, wherein the first functionality is different from the second functionality.

18. The system of claim 14 , wherein, in accordance with determining the first positional state, the instructions that upon execution by the processor further cause the processor to perform operations comprising displaying an updated 2D or 3D model representation of the application at a second location; and

wherein in accordance with determining the second positional state, the instructions that upon execution by the processor further cause the processor to perform operations comprising displaying the updated 2D or 3D model representation of the application away from the second location, wherein the first positional state is different from the second positional state.

19. The system of claim 14 , wherein a modality state definition of the first 2D or 3D model representation of the application is based on a function of the first 2D or 3D model representation of the application.

20. A non-transitory computer-readable storage medium storing program instructions that are computer-executable to perform operations comprising:

obtaining a request to display an application at a first location in a three-dimensional (3D) environment, wherein the application comprises a modality state definition for each of a plurality of positional states, and wherein each modality state definition comprises a different two-dimensional (2D) or 3D model representation of the application, wherein each different 2D or 3D model representation of the application comprises a different functionality and a different interactive feature;

determining a first positional state associated with the first location in the 3D environment;

displaying, at the first location in the 3D environment, a first 2D or 3D model representation of the application that corresponds to the modality state definition matching the determined first positional state, wherein the displaying of the first 2D or 3D model representation of the application comprises a visual representation of a first associated functionality and a visual representation of a first associated interactive feature;

obtaining a second request to display the application at a second location different than the first location;

determining a second positional state associated with the second location in the 3D environment;

determining, based on the second positional state, whether to update the first 2D or 3D model representation of the application; and

in accordance with determining to update the first 2D or 3D model representation of the application, displaying, at the second location in the 3D environment, a second 2D or 3D model representation of the application that corresponds to the modality state definition matching the determined second positional state, wherein the displaying of the second 2D or 3D model representation of the application comprises a visual representation of a second associated functionality that is different than the first associated functionality and a visual representation of a second associated interactive feature that is different than the first associated interactive feature.

Continuity (3)
Continuation 16549483 · Aug 23, 2019
Provisional Application 62729671 · Sep 11, 2018
Related Publication 20220245906A1 · Aug 4, 2022
References Cited (65)
US 9292085B2 · Bennett et al. · 2016 [cited by applicant]
US 9424583B2 · Kruglick · 2016 [cited by examiner]
US 9898871B1 · Reagan · 2018 [cited by examiner]
US 9922462B2 · Miller · 2018 [cited by examiner]
US 11348316B2 · Burns · 2022 [cited by examiner]
US 20120249741A1 · Maciocci · 2012 [cited by applicant]
US 20130044128A1 · Liu et al. · 2013 [cited by applicant]
US 20130286004A1 · McCulloch et al. · 2013 [cited by applicant]
US 20130342568A1 · Ambrus et al. · 2013 [cited by applicant]
US 20140002444A1 · Bennett et al. · 2014 [cited by applicant]
US 20140066209A1 · Annambhotla · 2014 [cited by applicant]
US 20140267228A1 · Ofek et al. · 2014 [cited by applicant]
US 20140267404A1 · Mitchell et al. · 2014 [cited by applicant]
US 20140320389A1 · Scavezze et al. · 2014 [cited by applicant]
US 20140333666A1 · Poulous et al. · 2014 [cited by applicant]
US 20160104452A1 · Guan et al. · 2016 [cited by applicant]
US 20160189426A1 · Thomas et al. · 2016 [cited by applicant]
US 20160217612A1 · Petill · 2016 [cited by examiner]
US 20160217614A1 · Kraver · 2016 [cited by examiner]
US 20160239080A1 · Marcolina et al. · 2016 [cited by applicant]
US 20160246371A1 · Mullins · 2016 [cited by examiner]
US 20160274762A1 · Lopez et al. · 2016 [cited by applicant]
US 20170236332A1 · Kipman et al. · 2017 [cited by applicant]
US 20170287218A1 · Nurnberger et al. · 2017 [cited by applicant]
US 20180039479A1 · Fransen · 2018 [cited by examiner]
US 20180045963A1 · Hoover · 2018 [cited by examiner]
US 20180095616A1 · Valdivia et al. · 2018 [cited by applicant]
US 20180096528A1 · Needham et al. · 2018 [cited by applicant]
US 20180136743A1 · Seegmiller · 2018 [cited by examiner]
US 20180157398A1 · Kaehler · 2018 [cited by examiner]
US 20180174366A1 · Nishibe · 2018 [cited by examiner]
US 20180181199A1 · Harvey et al. · 2018 [cited by applicant]
US 20180286126A1 · Schwartz et al. · 2018 [cited by applicant]
US 20180307303A1 · Powderly et al. · 2018 [cited by applicant]
US 20180315248A1 · Bastov et al. · 2018 [cited by applicant]
US 20190050062A1 · Chen · 2019 [cited by examiner]
US 20190139320A1 · Davies et al. · 2019 [cited by applicant]
US 20190221043A1 · Kopper et al. · 2019 [cited by applicant]
US 20190244426A1 · Knoppert et al. · 2019 [cited by applicant]
US 20190295323A1 · Gutierrez · 2019 [cited by examiner]
US 20190333275A1 · Wang · 2019 [cited by examiner]
US 20200150750A1 · Suzuki et al. · 2020 [cited by applicant]
US 20220245906A1 · Burns · 2022 [cited by examiner]
CN 107683497A · 2018 [cited by applicant]
EP 2887322 · 2015 [cited by applicant]
WO WO2016203792 · 2016 [cited by applicant]
WO 2017138428A1 · 2017 [cited by applicant]
China National Intellectual Property Administration, Patent Search Report (with English translation), Chinese Patent Application No. 201910823345.X, 5 pages, Jan. 12, 2023. [cited by applicant]
European Patent Office, Communication Pursuant to Article 94(3) EPC, European Patent Application No. 19196073.1, 5 pages, May 4, 2022. [cited by applicant]
European Patent Office, Summons to attend oral proceedings pursuant to Rule 115(1) EPC, European Patent Application No. 19196073.1, 10 pages, May 26, 2023. [cited by applicant]
European Patent Office, Partial European Search Report and Provisional Opinion Accompanying the Partial Search Result, European Patent Application No. 19196073.1, 19 pages, Jan. 8, 2020. [cited by applicant]
Nuernberger, B. et al., “Snap to Reality: Aligning Augmented Reality to the Real World”, Augmented AR and VR Experiences, CHI '16, San Jose, CA, pp. 1233-1244, May 2016. [cited by applicant]
Jacobs, K. et al., “Classification of Illumination Methods for Mixed Realty,” Computer Graphics Forum, vol. 25, No. 1, pp. 29-51, 2006. [cited by applicant]
European Patent Office, Extended European Search Report and Opinion, European Patent Application No. 19196073.1, 21 pages, Mar. 24, 2020. [cited by applicant]
Chen, L. et al., “Context-Aware Mixed Reality: A Framework for Ubiquitous Interaction,” arxiv.org, Cornell University Library, Ithaca, NY, 11 pages, 2018. [cited by applicant]
Salas-Moreno, R.F. et al., “Dense Planar SLAM,” 8 pages, 2014. [cited by applicant]
Korean Intellectual Property Office, Notice of Preliminary Rejection (with English translation), Korean Patent Application No. 10-2019-0110594, 11 pages (Jul. 31, 2020). [cited by applicant]
Japanese Patent Office, Notification of Reason(s) for Refusal, Japanese Patent Application No. 2019-154788, 9 pages (Oct. 15, 2020). [cited by applicant]
Korean Intellectual Property Office, Notice of Last Preliminary Rejection (with English translation), Korean Patent Application No. 10-2019-0110594, 12 pages (Mar. 31, 2021). [cited by applicant]
Japanese Patent Office, Decision for Refusal (with English translation), Japanese Patent Application No. 2019-154788, 8 pages (Apr. 8, 2021). [cited by applicant]
“Integrations. What are the ArtPlacer Widgets,” by ArtPlacer Admin, 9 pages, Apr. 1, 2020 https://www.artplacer.com/what-are-the-artplacer-widgets/. [cited by applicant]
Strange, A., “Hands-On Magic Leap's Create App Is a Powerful Way to Invent Your Own Reality Nearly Anywhere,” 11 pages, Aug. 17, 2018 https://magic-leap.reality.news/news/hands-on-magic-leaps-create-app-is-powerful-way-… [cited by applicant]
Boland, Mike, “XR Talks: Will Pass-through Video Outshine See-through Optics?” https://arinsider.co/2019/04/26/xr-talks-willvideo-pass-through-leapfrog-optical-waveguides/; Apr. 26, 2019; pp. 1-8. [cited by applicant]
European Patent Office, Minutes of the oral proceedings before the Examining Division, European Patent Application No. 19196073.1, 6 pages, May 23, 2024. [cited by applicant]
European Patent Office, Decision to refuse a European patent application, European Patent Application No. 19196073.1, 12 pages, May 29, 2024. [cited by applicant]