| 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 |

|
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.
|