IP Library Granted Patent US 10,242,503
Granted Patent B2
US 10,242,503 · App. 15/863,575 · Granted Mar 26, 2019

Surface aware lens

Inventors: Andrew James McPhee (Culver, CA); Ebony James Charlton (Santa Monica, CA); Samuel Edward Hare (Pacific Palisades, CA); Michael John Evans (Venice, CA); Jokubas Dargis (Santa Monica, CA); Ricardo Sanchez-Saez (Santa Monica, CA)
Assignee: Snap Inc.
G06T19/006G06F3/011G06F3/0346G06T15/205G06T15/60
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 10,242,503
App. No.
15/863,575
Filed
Jan 5, 2018
Granted
Mar 26, 2019
Kind
B2
Examiner
ZHAI, KYLE
Art Unit
2612
USPC
345/419
Abstract

Aspects of the present disclosure involve a system comprising a computer-readable storage medium storing at least one program, and a method for rendering three-dimensional virtual objects within real world environments. Virtual rendering of a three-dimensional virtual object can be altered appropriately as a user moves around the object in the real world, and the three-dimensional virtual object can exist similarly for multiple users. Virtual object rendering can be with respect to a reference surface in a real world environment, which reference surface can be selected by a user as part of the virtual object rendering process.

Claims (57)

1. A system, comprising:

a memory; and

at least one hardware processor coupled to the memory and comprising a virtual object rendering system, the virtual object rendering system causing the system to perform operations comprising:

receiving an input to activate a surface aware lens that facilitates rendering of a virtual object in a three-dimensional space captured within a camera view;

detecting a reference surface in the three-dimensional space captured within the camera view;

orienting the virtual object based on the reference surface, the orienting of the virtual object comprising:

assigning the virtual object to a position in three-dimensional space based on the detected reference surface, and

identifying tracking indicia operable to track the virtual object in the three-dimensional space;

rendering the virtual object to appear in the three-dimensional space captured within the camera view, the virtual object being rendered with respect to the reference surface;

tracking, by a first tracking subsystem from among a set of tracking subsystems, the virtual object at the position in the three-dimensional space using the tracking indicia;

detecting, by the first tracking subsystem, an interruption of the tracking indicia; and

in response to detecting the interruption of the tracking indicia, tracking the virtual object at the position in the three-dimensional space via a second tracking subsystem from among the set of tracking subsystems.

2. The system of claim 1 , wherein the detecting of the reference surface is based on user input.

3. The system of claim 1 , wherein the position in the three-dimensional space is a predefined distance from the reference surface.

4. The system of claim 3 , wherein the rendering of the virtual object with respect to the reference surface includes rendering and maintaining the virtual object at the predefined distance from the reference surface.

5. The system of claim 1 , wherein the system further includes a redundant tracking system comprising the set of tracking subsystems, the set of tracking subsystems comprising a gyroscopic tracking system, a natural feature tracking system, and simultaneous localization and mapping tracking.

6. The system of claim 1 , wherein the rendering of the virtual object includes rendering a separate virtual representation related to the virtual object at the reference surface.

7. The system of claim 6 , wherein the separate virtual representation is a simulated shadow of the virtual object.

8. The system of claim 1 , further comprising:

receiving user selection of a template from among a set of templates, the template corresponding to the virtual object.

9. The system of claim 8 , wherein the virtual object includes customized personal avatar content.

10. The system of claim 1 , wherein the virtual object includes content based on external factors related to the three-dimensional space.

11. The system of claim 10 , wherein the content based on external factors is dynamically changed over time.

12. The system of claim 1 , wherein the operations further comprise:

maintaining customized user content;

receiving a selection of the customized user content; and

wherein the rendering of the virtual object includes rendering the selection of the customized user content with respect to the reference surface.

13. The system of claim 12 , wherein the operations further comprise:

sharing the selection of the customized user content with a user other than the user that created the customized user content.

14. The method of claim 13 , wherein:

the rendering of the virtual object with respect to the reference surface comprises:

rendering and maintaining the virtual object at the assigned position.

15. The method of claim 12 , wherein the detecting of the reference surface includes detecting a real-world fixed surface within the three-dimensional space.

16. A method for rendering a virtual object in a three-dimensional space captured within a camera view by a virtual object rendering system, the method comprising:

receiving an input to activate a surface aware lens that facilitates the rendering of the virtual object in the three-dimensional space captured within a camera view;

detecting a reference surface in the three-dimensional space captured within the camera view;

orienting the virtual object based on the reference surface, the orienting of the virtual object comprising:

assigning the virtual object to a position in three-dimensional space based on the detected reference surface, and

identifying tracking indicia operable to track the virtual object in the three-dimensional space; and

rendering the virtual object to appear in the three-dimensional space captured within the camera view, the virtual object being rendered with respect to the reference surface;

tracking, by a first tracking subsystem from among a set of tracking subsystems, the virtual object at the position in the three-dimensional space using the tracking indicia;

detecting, by the first tracking subsystem, an interruption of the tracking indicia; and

in response to detecting the interruption of the tracking indicia, tracking the virtual object at the position in the three-dimensional space via a second tracking subsystem from among the set of tracking subsystems.

17. The method of claim 16 , further comprising:

maintaining customized user content;

receiving a selection of the customized user content for a new reference surface; and

rendering the selection of the customized user content at the new reference surface.

18. A non-transitory machine-readable storage medium including a virtual object rendering system that includes instructions that, when executed by one or more processors of a machine, cause the machine to perform operations comprising:

receiving an input to activate a surface aware lens that facilitates the rendering of a virtual object in three-dimensional space captured within a camera view;

detecting a reference surface in the three-dimensional space captured within the camera view;

orienting the virtual object based on the reference surface, the orienting of the virtual object comprising:

assigning the virtual object to a position in three-dimensional space based on the detected reference surface, and

identifying tracking indicia operable to track the virtual object in the three-dimensional space; and

rendering the virtual object to appear in the three-dimensional space captured within the camera view, the virtual object being generated with respect to the reference surface;

tracking, by a first tracking subsystem from among a set of tracking subsystems, the virtual object at the position in the three-dimensional space using the tracking indicia;

detecting, by the first tracking subsystem, an interruption of the tracking indicia; and

in response to detecting the interruption of the tracking indicia, tracking the virtual object at the position in the three-dimensional space via a second tracking subsystem from among the set of tracking subsystems.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 15, 2019
From: HARE, SAMUEL EDWARD; MCPHEE, ANDREW JAMES; CHARLTON, EBONY JAMES; EVANS, MICHAEL JOHN; DARGIS, JOKUBAS; SANCHEZ-SAEZ, RICARDO
To: SNAP INC.
Reel/Frame 048341/0823 →
Continuity (2)
Provisional Application 62444218 · Jan 9, 2017
Related Publication 20180197343A1 · Jul 12, 2018
Cited By (153)
US 1,089,291 US 12,192,854 US 12,198,281 US 12,198,287 US 12,198,372 US 12,198,398 US 12,198,664 US 12,205,295 US 12,206,635 US 12,211,159 US 12,212,614 US 12,213,028 US 12,216,519 US 12,217,374 US 12,217,453 US 12,218,893 US 12,223,156 US 12,223,672 US 12,226,001 US 12,229,860 US 12,229,901 US 12,231,709 US 12,235,991 US 12,236,512 US 12,242,708 US 12,242,979 US 12,243,173 US 12,243,266 US 12,254,577 US 12,260,450 US 12,265,692 US 12,271,536 US 12,273,308 US 12,277,632 US 12,277,638 US 12,284,146 US 12,284,698 US 12,288,273 US 12,293,433 US 12,299,004 US 12,299,256 US 12,299,775 US 12,299,830 US 12,299,832 US 12,299,905 US 12,307,564 US 12,315,495 US 12,316,589 US 12,316,597 US 12,321,577 US 12,322,021 US 12,327,277 US 12,335,213 US 12,335,575 US 12,340,064 US 12,340,453 US 12,341,736 US 12,347,013 US 12,347,045 US 12,348,467 US 12,354,353 US 12,354,355 US 12,361,627 US 12,361,652 US 12,361,934 US 12,363,056 US 12,367,616 US 12,380,618 US 12,380,649 US 12,386,485 US 12,387,405 US 12,387,436 US 12,387,444 US 12,387,447 US 12,393,318 US 12,394,154 US 12,395,456 US 12,400,389 US 12,406,416 US 12,412,205 US 12,412,347 US 12,417,562 US 12,418,504 US 12,429,953 US 12,436,598 US 12,438,837 US 12,439,223 US 12,443,325 US 12,444,138 US 12,462,507 US 12,469,090 US 12,469,196 US 12,469,273 US 12,472,435 US 12,475,621 US 12,475,658 US 12,482,131 US 12,488,547 US 12,488,548 US 12,488,551 US 12,499,483 US 12,499,626 US 12,499,638 US 12,501,233 US 12,504,287 US 12,504,866 US 12,513,098 US 12,517,626 US 12,518,437 US 12,518,738 US 12,520,101 US 12,524,128 US 12,530,408 US 12,530,847 US 12,530,852 US 12,536,751 US 12,541,929 US 12,541,930 US 12,548,267 US 12,555,274 US 12,555,310 US 12,561,914 US 12,567,102 US 12,579,204 US 12,580,784 US 12,580,980 US 12,586,562 US 12,602,842 US 12,614,354 US 12,614,359 US 12,616,903 US 12,620,188 US 12,620,216 US 12,625,026 US 12,627,627 US 12,632,890 US 12,633,073 US 12,645,280 US 12,646,266 US 12,646,268 US 12,651,292 US 12,651,409 US 12,670,643 US 12,670,674 US 12,682,508 US 12,695,847 US 12,695,929 US 12,699,802 US 12,700,187 US 12,705,009 US 12,705,840 US 12,705,875 US 12,711,538