In one embodiment, a method includes rendering, based on a three-dimensional model, a virtual object in a three-dimensional virtual environment, where the rendering is customized for a user of the virtual environment, the customized rendering being based on a current stage of the user in a course of stages, wherein the course comprises a plurality of stages including a first stage, a final stage, and one or more intermediate stages, each stage being associated with one or more transition conditions, wherein the course comprises at least one path through the stages from the first stage to the final stage, detecting, in the virtual environment, one or more actions by the user, updating the current stage of the user in response to the detected actions, and providing information relating to the updated current stage of the user to an interested party.