US 12,488,548 B2
Context-based virtual object rendering
Kyle Goodrich, Venice, CA (US); Samuel Edward Hare, Los Angeles, CA (US); Maxim Maximov Lazarov, Culver City, CA (US); Tony Mathew, Los Angeles, CA (US); Andrew James McPhee, Culver City, CA (US); Daniel Moreno, Los Angeles, CA (US); and Wentao Shang, Los Angeles, CA (US)
Assigned to Snap Inc., Santa Monica, CA (US)
Filed by Snap Inc., Santa Monica, CA (US)
Filed on Nov. 16, 2021, as Appl. No. 17/527,376.
Application 17/527,376 is a continuation of application No. 16/747,318, filed on Jan. 20, 2020, granted, now 11,232,646.
Claims priority of provisional application 62/897,001, filed on Sep. 6, 2019.
Prior Publication US 2022/0076504 A1, Mar. 10, 2022
This patent is subject to a terminal disclaimer.
Int. Cl. G06T 19/20 (2011.01); G06T 19/00 (2011.01)
CPC G06T 19/20 (2013.01) [G06T 19/006 (2013.01); G06T 2219/2012 (2013.01); G06T 2219/2016 (2013.01); G06T 2219/2024 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A system, comprising:
a memory; and
at least one hardware processor coupled to the memory and comprising a virtual rendering system, the virtual rendering system causing the system to perform operations comprising:
determining contextual information associated with a user device, the contextual information describing a surrounding environment of the user device;
selecting a virtual object template operable to generate a virtual object, the virtual object template being associated with a set of multiple behaviors, each behavior of the set of multiple behaviors corresponding to one or more movements to be performed by the virtual object based on the contextual information;
determining a subset of unavailable behaviors of the set of multiple behaviors that are unavailable to the virtual object based on an object type of the virtual object, each unavailable behavior of the subset of unavailable behaviors corresponding to the one or more movements that are unperformable by the virtual object;
selecting a subset of available behaviors of the set of multiple behaviors that are available to the virtual object based on the object type and the subset of unavailable behaviors, each available behavior of the subset of available behaviors corresponding to the one or more movements that are performable by the virtual object;
selecting, using a set of rules, a behavior from the subset of available behaviors for the virtual object corresponding to at least one movement that is performable by the virtual object based on the contextual information;
detecting a fixed reference surface in a 3D space captured within a camera feed;
assigning the virtual object to a position in the 3D space based on the detected fixed reference surface; and
rendering the virtual object performing the at least one movement at the assigned position with respect to the detected fixed reference surface within the 3D space captured within the camera feed of the user device based on the behavior from the subset of available behaviors for the virtual object template.