IP Library Granted Patent US 12,361,653
Granted Patent B2
US 12,361,653 · App. 18/638,273 · Granted Jul 15, 2025

Shooting interaction using augmented reality content in a messaging system

Inventors: Kyle Goodrich (Venice, CA); Maxim Maximov Lazarov (Culver City, CA); Andrew James McPhee (Culver City, CA); Daniel Moreno (New York, NY)
Assignee: Snap Inc.
G06T19/006G06F3/017G06T7/70G06V40/28G06T2207/30196
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,361,653
App. No.
18/638,273
Granted
Jul 15, 2025
Kind
B2
Abstract

The subject technology receives a set of frames. The subject technology detect a first gesture correspond to an open trigger finger gesture. The subject technology receives a second set of frames. The subject technology detects from the second set of frames, a second gesture correspond to a closed trigger finger gesture. The subject technology detects a location and a position of a representation of a finger from the closed trigger finger gesture. The subject technology generates a first virtual object based at least in part on the location and the position of the representation of the finger. The subject technology renders a movement of the first virtual object along a vector away from the location and the position of the representation of the finger within a first scene. The subject technology provides for display the rendered movement of the first virtual object along the vector within the first scene.

Claims (49)

1. A method, comprising:

detecting, using one or more hardware processors, from a set of frames, a first gesture corresponding to an open trigger finger gesture;

detecting, using the one or more hardware processors, from a second set of frames, a second gesture corresponding to a closed trigger finger gesture;

generating, using the one or more hardware processors, a first virtual object based at least in part on a location and a position of a representation of a finger;

rendering, using the one or more hardware processors, a movement of the first virtual object along a vector away from the location and the position of the representation of the finger within a first scene, the vector away from the location and the position of the representation of the finger being determined based on raycasting a path from the location and the position of the representation of the finger to a point along a particular outer boundary of the first scene, wherein rendering the movement of the first virtual object comprises:

while rendering the movement of the first virtual object, generating a second virtual object based at least in part on a second location and a second position of the representation of the finger;

rendering a movement of the second virtual object along a second vector away from the location and the position of the representation of the finger within a first scene, wherein the first scene comprises a first representation of a real world scene, the first virtual object, and the second virtual object; and

providing for display the rendered movement of the second virtual object along the second vector within the first scene.

2. The method of claim 1 , wherein the open trigger finger gesture includes a particular gesture including a thumb and an index finger indicating a firearm or shooting hand sign, and the closed trigger finger gesture includes the thumb and the index finger pointing in a same direction.

3. The method of claim 1 , wherein the movement for the first virtual object moves the first virtual object across a particular outer boundary of the first scene and outside a view of the first scene, wherein the first scene comprises a first representation of a real world scene and the first virtual object.

4. The method of claim 1 , wherein the first virtual object comprises a representation of a projectile or missile to be fired from a firearm.

5. The method of claim 1 , wherein the second virtual object and the first virtual object are a same type of virtual object, or the second virtual object and the first virtual object are different types of virtual objects,

wherein the second vector is a same vector as the vector, or the second vector is a different vector than the vector.

6. The method of claim 1 , wherein the second vector away from the second location and the second position of the representation of the finger is determined based on raycasting a second path from the second location and the second position of the representation of the finger to a second point along the particular outer boundary of the first scene, the second point is different from the point or the second point is a same point as the point.

7. The method of claim 1 , wherein rendering the movement of the second virtual object occurs during the movement of the first virtual object and before the first virtual object moves across a particular outer boundary of the first scene and outside a view of the first scene.

8. The method of claim 1 , further comprising:

prior to detecting the first gesture, receiving, using the one or more hardware processors, the set of frames captured by a camera of a client device; and

prior to detecting the first gesture, receiving, using the one or more hardware processors, a second set of frames captured by the camera of the client device.

9. The method of claim 1 , further comprising:

prior to generating the first virtual object, detecting, using the one or more hardware processors, a location and a position of a representation of a finger from the closed trigger finger gesture; and

providing for display, using the one or more hardware processors, the rendered movement of the first virtual object along the vector within the first scene.

10. A system comprising:

a processor; and

a memory including instructions that, when executed by the processor, cause the processor to perform operations comprising:

detecting, using one or more hardware processors, from a set of frames, a first gesture corresponding to an open trigger finger gesture;

detecting, using the one or more hardware processors, from a second set of frames, a second gesture corresponding to a closed trigger finger gesture;

generating, using the one or more hardware processors, a first virtual object based at least in part on a location and a position of a representation of a finger;

rendering, using the one or more hardware processors, a movement of the first virtual object along a vector away from the location and the position of the representation of the finger within a first scene, the vector away from the location and the position of the representation of the finger being determined based on raycasting a path from the location and the position of the representation of the finger to a point along a particular outer boundary of the first scene, wherein rendering the movement of the first virtual object comprises:

while rendering the movement of the first virtual object, generating a second virtual object based at least in part on a second location and a second position of the representation of the finger,

rendering a movement of the second virtual object along a second vector away from the location and the position of the representation of the finger within a first scene, wherein the first scene comprises a first representation of a real world scene, the first virtual object, and the second virtual object; and

providing for display the rendered movement of the second virtual object along the second vector within the first scene.

11. The system of claim 10 , wherein the open trigger finger gesture includes a particular gesture including a thumb and an index finger indicating a firearm or shooting hand sign, and the closed trigger finger gesture includes the thumb and the index finger pointing in a same direction.

12. The system of claim 10 , wherein the movement for the first virtual object moves the first virtual object across a particular outer boundary of the first scene and outside a view of the first scene, wherein the first scene comprises a first representation of a real world scene and the first virtual object.

13. The system of claim 10 , wherein the first virtual object comprises a representation of a projectile or missile to be fired from a firearm.

14. The system of claim 10 , wherein the second virtual object and the first virtual object are a same type of virtual object, or the second virtual object and the first virtual object are different types of virtual objects,

wherein the second vector is a same vector as the vector, or the second vector is a different vector than the vector.

15. The system of claim 10 , wherein the second vector away from the second location and the second position of the representation of the finger is determined based on raycasting a second path from the second location and the second position of the representation of the finger to a second point along the particular outer boundary of the first scene, the second point is different from the point or the second point is a same point as the point.

16. The system of claim 10 , wherein rendering the movement of the second virtual object occurs during the movement of the first virtual object and before the first virtual object moves across a particular outer boundary of the first scene and outside a view of the first scene.

17. The system of claim 10 , wherein the operations further comprise:

prior to detecting the first gesture, receiving, using the one or more hardware processors, the set of frames captured by a camera of a client device; and

prior to detecting the first gesture, receiving, using the one or more hardware processors, a second set of frames captured by the camera of the client device.

18. A non-transitory computer-readable medium comprising instructions, which when executed by a computing device, cause the computing device to perform operations comprising:

detecting, using one or more hardware processors, from a set of frames, a first gesture corresponding to an open trigger finger gesture;

detecting, using the one or more hardware processors, from a second set of frames, a second gesture corresponding to a closed trigger finger gesture;

generating, using the one or more hardware processors, a first virtual object based at least in part on a location and a position of a representation of a finger;

rendering, using the one or more hardware processors, a movement of the first virtual object along a vector away from the location and the position of the representation of the finger within a first scene, the vector away from the location and the position of the representation of the finger being determined based on raycasting a path from the location and the position of the representation of the finger to a point along a particular outer boundary of the first scene, wherein rendering the movement of the first virtual object comprises:

while rendering the movement of the first virtual object, generating a second virtual object based at least in part on a second location and a second position of the representation of the finger;

rendering a movement of the second virtual object along a second vector away from the location and the position of the representation of the finger within a first scene, wherein the first scene comprises a first representation of a real world scene, the first virtual object, and the second virtual object; and

providing for display the rendered movement of the second virtual object along the second vector within the first scene.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 18, 2024
From: GOODRICH, KYLE; LAZAROV, MAXIM MAXIMOV; MORENO, DANIEL
To: SNAP INC.
Reel/Frame 067150/0572 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 18, 2024
From: MCPHEE, ANDREW
To: SNAPCHAT, INC.
Reel/Frame 067150/0735 →
CHANGE OF NAME Recorded Apr 18, 2024
From: SNAPCHAT, INC.
To: SNAP INC.
Reel/Frame 067151/0224 →
Continuity (2)
Continuation 17941301 · Sep 9, 2022
Related Publication 20240265652A1 · Aug 8, 2024
References Cited (40)
US 10475246B1 · Gribetz et al. · 2019 [cited by applicant]
US 11017611B1 · Mount et al. · 2021 [cited by applicant]
US 11227637B1 · Collins et al. · 2022 [cited by applicant]
US 11948266B1 · Goodrich et al. · 2024 [cited by applicant]
US 20130265220A1 · Fleischmann et al. · 2013 [cited by applicant]
US 20130278499A1 · Anderson · 2013 [cited by applicant]
US 20140235350A1 · Langridge · 2014 [cited by examiner]
US 20180045963A1 · Hoover et al. · 2018 [cited by applicant]
US 20200043243A1 · Bhushan et al. · 2020 [cited by applicant]
US 20200226814A1 · Tang et al. · 2020 [cited by applicant]
US 20220198760A1 · Serizawa · 2022 [cited by examiner]
US 20240087239A1 · Goodrich et al. · 2024 [cited by applicant]
US 20240087242A1 · Goodrich et al. · 2024 [cited by applicant]
US 20240087244A1 · Goodrich et al. · 2024 [cited by applicant]
US 20240087245A1 · Goodrich et al. · 2024 [cited by applicant]
US 20240087246A1 · Goodrich et al. · 2024 [cited by applicant]
US 20240087264A1 · Goodrich et al. · 2024 [cited by applicant]
US 20240087609A1 · Goodrich et al. · 2024 [cited by applicant]
US 20240185548A1 · Goodrich et al. · 2024 [cited by applicant]
WO 2024054888 · 2024 [cited by applicant]
WO 2024054906 · 2024 [cited by applicant]
WO 2024054909 · 2024 [cited by applicant]
WO 2024054915 · 2024 [cited by applicant]
WO 2024054995 · 2024 [cited by applicant]
WO 2024054999 · 2024 [cited by applicant]
WO 2024055001 · 2024 [cited by applicant]
WO 2024055004 · 2024 [cited by applicant]
“U.S. Appl. No. 17/941,292, Response filed Jan. 8, 2024 to Non Final Office Action mailed Oct. 6, 2023”, 10 pgs. [cited by applicant]
“U.S. Appl. No. 17/941,435, Corrected Notice of Allowability mailed Feb. 16, 2024”, 2 pgs. [cited by applicant]
“U.S. Appl. No. 17/941,293, Non Final Office Action mailed Mar. 21, 2024”, 20 pgs. [cited by applicant]
“U.S. Appl. No. 17/941,292, Final Office Action mailed Mar. 25, 2024”, 11 pgs. [cited by applicant]
“U.S. Appl. No. 17/941,293, Response filed Jun. 20, 2024 to Non Final Office Action mailed Mar. 21, 2024”, 12 pgs. [cited by applicant]
“U.S. Appl. No. 17/941,292, Response filed Jun. 25, 2024 to Final Office Action mailed Mar. 25, 2024”, 16 pgs. [cited by applicant]
“U.S. Appl. No. 17/941,293, Final Office Action mailed Jul. 1, 2024”, 19 pgs. [cited by applicant]
“U.S. Appl. No. 17/941,292, Non Final Office Action mailed Sep. 10, 2024”, 12 pgs. [cited by applicant]
“U.S. Appl. No. 17/941,293, Response filed Oct. 1, 2024 to Final Office Action mailed Jul. 1, 2024”, 12 pgs. [cited by applicant]
“U.S. Appl. No. 17/941,293, Non Final Office Action mailed Nov. 26, 2024”, 26 pgs. [cited by applicant]
“U.S. Appl. No. 17/941,292, Response filed Dec. 10, 2024 to Non Final Office Action mailed Sep. 10, 2024”, 12 pgs. [cited by applicant]
“U.S. Appl. No. 17/941,612, Notice of Allowance mailed Dec. 18, 2024”, 9 pgs. [cited by applicant]
Von Kapri, Anette Lia Freiin, “InReach: Navigating and Manipulating 3D Models using Natural Body Gestures in a Remote Collaboration Setup”, Massachusetts Institute of Technology, Thesis, (Jun. 2013), 83 pgs. [cited by applicant]
Cited By (1)
US 12,731,341