IP Library › Granted Patent US 12,288,298
Granted Patent B2
US 12,288,298 · App. 17/845,626 · Granted Apr 29, 2025

Generating user interfaces displaying augmented reality graphics

Inventor: Sharon Moll (Lachen, CH)
Assignee: Snap Inc.
G06T19/006G06F3/011G06F3/04815G06F3/0482G06T3/40G06T7/20G06T7/70G06T2200/24
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,288,298
App. No.
17/845,626
Granted
Apr 29, 2025
Kind
B2
Abstract

An Augmented Reality (AR) graphics system is provided. The AR graphics system may detect an object in a real-world scene that corresponds to an AR graphics display surface. The AR graphics system may generate AR graphics that are displayed as overlays of the AR graphics display surface. The AR graphics system may track the motion of a graphics input tool with respect to the AR graphics display surface to generate AR graphics based on the motion of the graphics input tool. The AR graphics may be comprised of a number of markings generated based on the motion of the graphics input tool.

Claims (86)

1. A computing device comprising:

a camera;

one or more processors; and

memory storing instructions that, when executed by the one or more processors, cause the computing device to perform operations comprising:

capturing, by the camera, one or more images within a field of view of the camera;

activating an augmented reality (AR) content item that is executed within a client application;

in response to activating the augmented reality content item, providing a continuous stream of camera data that includes the one or more images to a camera service of a plurality of AR graphics services using one or more first application programming interface (API) calls;

generating, by the augmented reality content item, one or more second API calls for an object detection service to implement one or more object detection models to detect, in the camera data, one or more objects of interest;

obtaining, by the augmented reality content item and from the object detection service, first AR graphics display data indicating (i) an AR graphics display surface labeled as a first object of interest within the field of view, (ii) a graphics input tool labeled as a second object of interest, and (iii) a hand grasping the graphics input tool labeled as a third object of interest, wherein the AR graphics display surface includes a surface of one or more physical objects included in an environment in which the computing device is located;

generating, by the augmented reality content item, one or more third API calls for an object tracking service to implement one or more object tracking models to track, in the camera data, first motion of the graphics input tool and second motion of the hand grasping the graphics input tool;

obtaining, by the augmented reality content item and from the object tracking service, second AR graphics display data indicating a first path of motion of the graphics input tool based on differences in locations of the graphics input tool across a number of video frames;

obtaining, by the augmented reality content item and from the object tracking service, third AR graphics display data indicating a second path of motion of the hand grasping the graphics input tool based on differences in locations of the hand across the number of video frames;

obtaining, by the augmented reality content item and from the object tracking service, fourth AR graphics display data indicating an angle at which the graphics input tool is being held based on first images of the graphics input tool and second images of the hand grasping the graphics input tool within the number of video frames; and

causing, by the augmented reality content item and based on AR graphics display data obtained from the plurality of AR graphics services, display of a user interface overlaid on the AR graphics display surface, the user interface including an AR graphic having at least one of a shape or one or more contours that (i) follow the first path of motion of the graphics input tool and the second path of motion of the hand grasping the graphics input tool and (ii) have a width that is based on the angle at which the graphics input tool is being held.

2. The computing device of claim 1 , wherein the computing device is a head-worn device that includes at least one display device and the user interface is displayed by the at least one display device.

3. The computing device of claim 1 , wherein the memory stores additional instructions that, when executed by the one or more processors, cause the computing device to perform additional operations comprising:

in response to determining that the graphics input tool is within a threshold distance of the AR graphics display surface, activating one or more features of the augmented reality content item to at least one of create or modify the AR graphic;

determining that the graphics input tool is outside of the threshold distance of the AR graphics display surface; and

in response to determining that the graphics input tool is outside of the threshold distance of the AR graphics display surface, deactivating the one or more features of the augmented reality content item.

4. The computing device of claim 1 , wherein the memory stores additional instructions that, when executed by the one or more processors, causes the computing device to perform additional operations comprising:

causing an AR graphics menu to be displayed within the user interface, the AR graphics menu including a number of user interface elements, individual user interface elements of the number of user interface elements being selectable to activate one or more features of an augmented reality content item to at least one of create or modify at least a portion of the AR graphic.

5. The computing device of claim 4 , wherein the memory stores additional instructions that, when executed by the one or more processors, causes the computing device to perform additional operations comprising:

determining that the graphics input tool is within an additional threshold distance of a user interface element of the number of user interface elements of the AR graphics menu; and

causing a feature of the user interface element to be activated.

6. The computing device of claim 1 , wherein the memory stores additional instructions that, when executed by the one or more processors, causes the computing device to perform additional operations comprising:

obtaining, based on the camera data, coordinates in real world space for the AR graphics display surface; and

determining, based on the camera data, a distance from the camera to the AR graphics display surface.

7. The computing device of claim 6 , wherein the memory stores additional instructions that, when executed by the one or more processors, causes the computing device to perform additional operations comprising:

determining that the distance from the camera to the AR graphics display surface has changed from a first distance to a second distance; and

modifying a level of magnification of the AR graphic within the user interface based on the distance from the camera to the AR graphics display surface changing from the first distance to the second distance.

8. A computer-implemented method comprising:

capturing, by one or more cameras of one or more computing devices including one or more processors and memory, one or more images within a field of view of the one or more cameras;

activating, by at least one computing device of the one or more computing devices, an augmented reality (AR) content item that is executed within a client application;

in response to activating the augmented reality content item, providing, by at least one computing device of the one or more computing devices, a continuous stream of camera data that includes the one or more images to a camera service of a plurality of AR graphics services using one or more first application programming interface (API) calls;

generating, by the augmented reality content item, one or more second API calls for an object detection service to implement one or more object detection models to detect, in the camera data, one or more objects of interest;

obtaining, by the augmented reality content item and from the object detection service, first AR graphics display data indicating (i) an AR graphics display surface within the field of view, (ii) a graphics input tool labeled as a first object of interest, and (iii) a hand grasping the graphics input tool labeled as a second object of interest, wherein the AR graphics display surface includes a surface of one or more physical objects included in an environment in which the at least one computing device is located;

generating, by the augmented reality content item, one or more third API calls for an object tracking service to implement one or more object tracking models to track, in the camera data, first motion of the graphics input tool and second motion of the hand grasping the graphics input tool;

obtaining, by the augmented reality content item and from the object tracking service, second AR graphics display data indicating a first path of motion of the graphics input tool based on differences in locations of the graphics input tool across a number of video frames;

obtaining, by the augmented reality content item and from the object tracking service, third AR graphics display data indicating a second path of motion of the hand grasping the graphics input tool based on differences in locations of the hand across the number of video frames;

obtaining, by the augmented reality content item and from the object tracking service, fourth AR graphics display data indicating an angle at which the graphics input tool is being held based on first images of the graphics input tool and second images of the hand grasping the graphics input tool within the number of video frames; and

causing, by the augmented reality content item and based on AR graphics display data obtained from the plurality of AR graphics services, by at least one computing device of the one or more computing devices, display of a user interface overlaid on the AR graphics display surface, the user interface including an AR graphic having at least one of a shape or one or more contours that (i) follow the first path of motion of the graphics input tool and the second path of motion of the hand grasping the graphics input tool and (ii) have a width that is based on the angle at which the graphics input tool is being held.

9. The computer-implemented method of claim 8 , comprising:

determining, by at least one computing device of the one or more computing devices and at a first time, that the AR graphics display surface is not detected within the field of view of the one or more cameras;

responsive to determining that the AR graphics display surface is not detected within the field of view of the one or more cameras at the first time, removing, by at least one computing device of the one or more computing devices, the AR graphic from the user interface;

determining, by at least one computing device of the one or more computing devices and at a second time, that the AR graphics display surface is within the field of view of the one or more cameras; and

responsive to determining that the AR graphics display surface is within the field of view of the one or more cameras at the second time, causing, by at least one computing device of the one or more computing devices, the AR graphic to be re-displayed in the user interface.

10. The computer-implemented method of claim 8 , comprising:

in response to determining that the graphics input tool is within a threshold distance of the AR graphics display surface, activating, by at least one computing device of the one or more computing devices, one or more features of the augmented reality content item to at least one of create or modify the AR graphic;

determining, by at least one computing device of the one or more computing devices, that the graphics input tool is outside of the threshold distance of the AR graphics display surface; and

in response to determining that the graphics input tool is outside of the threshold distance of the AR graphics display surface, deactivating, by at least one computing device of the one or more computing devices, the one or more features of the augmented reality content item.

11. The computer-implemented method of claim 8 , comprising:

causing, by at least one computing device of the one or more computing devices, an AR graphics menu to be displayed within the user interface, the AR graphics menu including a number of user interface elements, individual user interface elements of the number of user interface elements being selectable to activate one or more features of an augmented reality content item to at least one of create or modify at least a portion of the AR graphic.

12. The computer-implemented method of claim 11 , comprising:

determining, by at least one computing device of the one or more computing devices, that the graphics input tool is within an additional threshold distance of a user interface element of the number of user interface elements of the AR graphics menu; and

causing, by at least one computing device of the one or more computing devices, a feature of the user interface element to be activated.

13. The computer-implemented method of claim 8 , comprising:

obtaining, by at least one computing device of the one or more computing devices and based on the camera data, coordinates in real world space for the AR graphics display surface; and

determining, by at least one computing device of the one or more computing devices and based on the camera data, a distance from the one or more cameras to the AR graphics display surface.

14. The computer-implemented method of claim 13 , comprising:

determining, by at least one computing device of the one or more computing devices, that the distance from the one or more cameras to the AR graphics display surface has changed from a first distance to a second distance; and

modifying, by at least one computing device of the one or more computing devices, a level of magnification of the AR graphic within the user interface based on the distance from the one or more cameras to the AR graphics display surface changing from the first distance to the second distance.

15. One or more computer-readable storage media storing computer-readable instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising:

capturing, by one or more cameras of one or more computing devices, one or more images within a field of view of the one or more cameras;

activating an augmented reality (AR) content item that is executed within a client application;

in response to activating the augmented reality content item, providing a continuous stream of camera data that includes the one or more images to a camera service of a plurality of AR graphics services using one or more first application programming interface (API) calls;

generating, by the augmented reality content item, one or more second API calls for an object detection service to implement one or more object detection models to detect, in the camera data, one or more objects of interest;

obtaining, by the augmented reality content item and from the object detection service, first AR graphics display data indicating (i) an AR graphics display surface within the field of view, (ii) a graphics input tool labeled as a first object of interest, and (iii) a hand grasping the graphics input tool labeled as a second object of interest, wherein the AR graphics display surface includes a surface of one or more physical objects included in an environment in which at least one computing device of the one or more computing devices is located;

generating, by the augmented reality content item, one or more third API calls for an object tracking service to implement one or more object tracking models to track, in the camera data, first motion of the graphics input tool and second motion of the hand grasping the graphics input tool;

obtaining, by the augmented reality content item and from the object tracking service, second AR graphics display data indicating a first path of motion of the graphics input tool based on differences in locations of the graphics input tool across a number of video frames;

obtaining, by the augmented reality content item and from the object tracking service, third AR graphics display data indicating a second path of motion of the hand grasping the graphics input tool based on differences in locations of the hand across the number of video frames;

obtaining, by the augmented reality content item and from the object tracking service, fourth AR graphics display data indicating an angle at which the graphics input tool is being held based on first images of the graphics input tool and second images of the hand grasping the graphics input tool within the number of video frames; and

causing, by the augmented reality content item and based on AR graphics display data obtained from the plurality of AR graphics services, display of a user interface overlaid on the AR graphics display surface, the user interface including an AR graphic having at least one of a shape or one or more contours that follow (i) the first path of motion of the graphics input tool and the second path of motion of the hand grasping the graphics input tool and (ii) have a width that is based on the angle at which the graphics input tool is being held.

16. The one or more computer-readable storage media of claim 15 , storing additional computer-readable instructions that, when executed by one or more processors, cause the one or more processors to perform additional operations comprising:

determining, based on the one or more images, an amount of bending of a tip of the graphics input tool during at least a portion of the first path of motion of the graphics input tool; and

based on the amount of bending, determining a width of one or more markings that correspond to the at least one of the shape or one or more contours that follow the first path of motion.

17. The one or more computer-readable storage media of claim 15 , storing additional computer-readable instructions that, when executed by one or more processors, cause the one or more processors to perform additional operations comprising:

in response to determining that the graphics input tool is within a threshold distance of the AR graphics display surface, activating one or more features of the augmented reality content item to at least one of create or modify the AR graphic;

determining that the graphics input tool is outside of the threshold distance of the AR graphics display surface; and

in response to determining that the graphics input tool is outside of the threshold distance of the AR graphics display surface, deactivating the one or more features of the augmented reality content item.

18. The one or more computer-readable storage media of claim 15 , wherein the object detection service determines that an object of interest of a plurality of objects of interest corresponds to the AR graphics display surface based on an analysis of characteristics of the plurality of objects of interest in relation to criteria that are representative of AR graphics display surfaces, the characteristics including one or more minimum dimensions, one or more maximum dimensions, and a maximum amount of surface roughness.

19. The one or more computer-readable storage media of claim 18 , wherein the object detection service ranks the plurality of objects of interest in response to the analysis and determines that the AR graphics display surface corresponds to the object of interest of the plurality of objects of interest having a highest ranking.

20. The one or more computer-readable storage media of claim 15 , storing additional computer-readable instructions that, when executed by one or more processors, cause the one or more processors to perform additional operations comprising:

obtaining, based on the camera data, coordinates in real world space for the AR graphics display surface; and

determining, based on the camera data, a distance from the one or more cameras to the AR graphics display surface;

determining that the distance from the one or more cameras to the AR graphics display surface has changed from a first distance to a second distance; and

modifying a level of magnification of the AR graphic within the user interface based on the distance from the one or more cameras to the AR graphics display surface changing from the first distance to the second distance.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2022
From: MOLL, SHARON
To: SNAP INC.
Reel/Frame 060266/0385 →
Continuity (1)
Related Publication 20230410441A1 · Dec 21, 2023
References Cited (102)
US 7971156B2 · Albertson et al. · 2011 [cited by applicant]
US 7996793B2 · Latta et al. · 2011 [cited by applicant]
US 8487938B2 · Latta et al. · 2013 [cited by applicant]
US 8856691B2 · Geisner et al. · 2014 [cited by applicant]
US 9225897B1 · Sehn et al. · 2015 [cited by applicant]
US 9230160B1 · Kanter · 2016 [cited by applicant]
US 9276886B1 · Samaranayake · 2016 [cited by applicant]
US 9384578B2 · Friesen · 2016 [cited by applicant]
US 9705831B2 · Spiegel · 2017 [cited by applicant]
US 9742713B2 · Spiegel et al. · 2017 [cited by applicant]
US 10102423B2 · Shaburov et al. · 2018 [cited by applicant]
US 10284508B1 · Allen et al. · 2019 [cited by applicant]
US 10439972B1 · Spiegel et al. · 2019 [cited by applicant]
US 10509466B1 · Miller et al. · 2019 [cited by applicant]
US 10509865B2 · Hackett et al. · 2019 [cited by applicant]
US 10514876B2 · Sehn · 2019 [cited by applicant]
US 10579869B1 · Xiong et al. · 2020 [cited by applicant]
US 10614855B2 · Huang · 2020 [cited by applicant]
US 10748347B1 · Li et al. · 2020 [cited by applicant]
US 10958608B1 · Allen et al. · 2021 [cited by applicant]
US 10962809B1 · Castañeda · 2021 [cited by applicant]
US 10996846B2 · Robertson et al. · 2021 [cited by applicant]
US 10997787B2 · Ge et al. · 2021 [cited by applicant]
US 11012390B1 · Al Majid et al. · 2021 [cited by applicant]
US 11030454B1 · Xiong et al. · 2021 [cited by applicant]
US 11036368B1 · Al Majid et al. · 2021 [cited by applicant]
US 11062498B1 · Voss et al. · 2021 [cited by applicant]
US 11087728B1 · Canberk et al. · 2021 [cited by applicant]
US 11092998B1 · Castañeda et al. · 2021 [cited by applicant]
US 11106342B1 · Al Majid et al. · 2021 [cited by applicant]
US 11126206B2 · Meisenholder et al. · 2021 [cited by applicant]
US 11143867B2 · Rodriguez, II · 2021 [cited by applicant]
US 11169600B1 · Canberk et al. · 2021 [cited by applicant]
US 11227626B1 · Krishnan Gorumkonda et al. · 2022 [cited by applicant]
US 11307747B2 · Dancie et al. · 2022 [cited by applicant]
US 11531402B1 · Stolzenberg · 2022 [cited by applicant]
US 11546505B2 · Canberk · 2023 [cited by applicant]
US 20090012788A1 · Gilbert et al. · 2009 [cited by applicant]
US 20110301934A1 · Tardif · 2011 [cited by applicant]
US 20140078109A1 · Armstrong-Muntner · 2014 [cited by examiner]
US 20140171036A1 · Simmons · 2014 [cited by applicant]
US 20150040040A1 · Balan et al. · 2015 [cited by applicant]
US 20150120293A1 · Wohlert et al. · 2015 [cited by applicant]
US 20150269783A1 · Yun · 2015 [cited by examiner]
US 20150370320A1 · Connor · 2015 [cited by applicant]
US 20170123487A1 · Hazra et al. · 2017 [cited by applicant]
US 20170277684A1 · Dharmarajan Mary · 2017 [cited by applicant]
US 20170277685A1 · Takumi · 2017 [cited by applicant]
US 20170351910A1 · Elwazer et al. · 2017 [cited by applicant]
US 20170358141A1 · Stafford et al. · 2017 [cited by applicant]
US 20170371432A1 · Gavriliuc · 2017 [cited by examiner]
US 20180012412A1 · Scavezze et al. · 2018 [cited by applicant]
US 20180158370A1 · Pryor · 2018 [cited by applicant]
US 20190025590A1 · Haddick · 2019 [cited by applicant]
US 20190034765A1 · Kaehler et al. · 2019 [cited by applicant]
US 20210011612A1 · Dancie et al. · 2021 [cited by applicant]
US 20210034161A1 · Potts et al. · 2021 [cited by applicant]
US 20210074016A1 · Li et al. · 2021 [cited by applicant]
US 20210166732A1 · Shaburova et al. · 2021 [cited by applicant]
US 20210174034A1 · Retek et al. · 2021 [cited by applicant]
US 20210241529A1 · Cowburn et al. · 2021 [cited by applicant]
US 20210303075A1 · Cowburn et al. · 2021 [cited by applicant]
US 20210303077A1 · Anvaripour et al. · 2021 [cited by applicant]
US 20210303140A1 · Mourkogiannis · 2021 [cited by applicant]
US 20210382564A1 · Blachly et al. · 2021 [cited by applicant]
US 20210397000A1 · Rodriguez, II · 2021 [cited by applicant]
US 20210405761A1 · Canberk · 2021 [cited by applicant]
US 20220188539A1 · Chan et al. · 2022 [cited by applicant]
US 20220206588A1 · Canberk et al. · 2022 [cited by applicant]
US 20220254096A1 · Berliner et al. · 2022 [cited by applicant]
US 20220291753A1 · Erivantcev · 2022 [cited by examiner]
US 20220300730A1 · Eirinberg et al. · 2022 [cited by applicant]
US 20220300731A1 · Eirinberg et al. · 2022 [cited by applicant]
US 20220326781A1 · Hwang et al. · 2022 [cited by applicant]
US 20220334649A1 · Hwang et al. · 2022 [cited by applicant]
US 20230114043A1 · Wan · 2023 [cited by examiner]
US 20240282058A1 · Moll · 2024 [cited by applicant]
CN 103049761 · 2016 [cited by applicant]
CN 111966216A · 2020 [cited by applicant]
EP 3707693 · 2020 [cited by applicant]
KR 20220158824A · 2022 [cited by applicant]
WO 2016168591 · 2016 [cited by applicant]
WO 2019094618 · 2019 [cited by applicant]
WO WO2022005687A1 · 2022 [cited by applicant]
WO WO2022005693A1 · 2022 [cited by applicant]
WO WO2022060549A2 · 2022 [cited by applicant]
WO WO2022066578A1 · 2022 [cited by applicant]
WO WO2022132381A1 · 2022 [cited by applicant]
WO WO2022146678A1 · 2022 [cited by applicant]
WO WO2022198182A1 · 2022 [cited by applicant]
WO WO2022216784A1 · 2022 [cited by applicant]
WO WO2022225761A1 · 2022 [cited by applicant]
WO WO2022245765A1 · 2022 [cited by applicant]
WO WO2023250361A1 · 2023 [cited by applicant]
WO 2024177967 · 2024 [cited by applicant]
“Artivive—A resource for mobilizing the use of Artivive, an augmented reality art technology, to enhance and scale creative pedagogy.”, [Online]. Retrieved from the Internet: <https://artsdesign.berkeley.edu/artivive>, … [cited by applicant]
“International Application Serial No. PCT/US2023/068794, International Search Report mailed Oct. 16, 2023”, 4 pgs. [cited by applicant]
“International Application Serial No. PCT/US2023/068794, Written Opinion mailed Oct. 16, 2023”, 5 pgs. [cited by applicant]
“International Application Serial No. PCT/US2024/016458, International Search Report mailed May 6, 2024”, 3 pgs. [cited by applicant]
“International Application Serial No. PCT/US2024/016458, Written Opinion mailed May 6, 2024”, 9 pgs. [cited by applicant]
U.S. Appl. No. 18/172,083, filed Feb. 21, 2023, Generating User Interfaces Displaying Augmented Reality Graphics. [cited by applicant]
“U.S. Appl. No. 18/172,083, Non Final Office Action mailed Sep. 23, 2024”, 29 pgs. [cited by applicant]