A non-transitory computer readable storage medium storing instruction that, when executed, cause one or more computing devices to perform operations comprising:
- displaying, on a first display device of a first computer system that is associated with a first user, a view of a first physical environment of the first user and that shows one or more first physical objects that are located in the first physical environment;
- joining, by the first computer system, an interactive session with a second computer system that is separate from the first computer system, wherein the second computer system is associated with a second user and includes a second display device displaying a view of a second physical environment of the second user and that shows one or more second physical objects that are located in the second physical environment;
- receiving, at the first computer system and while displaying the view of the first physical environment of the first user, information that identifies the one or more second physical objects that are located in the second physical environment and a physical movement that is performed by the second user in the second physical environment in relation to the one or more second physical objects, wherein the first and second users are concurrently participating in the interactive session and the second user is located remotely from the first user;
- determining a correspondence between (i) the one or more first physical objects that are located in the first physical environment of the first user and (ii) the one or more second physical objects that are located in the second physical environment of the second user;
- based on the correspondence, translating the physical movement performed by the second user in relation to the one or more second physical objects to a virtual movement performed in relation to the one or more first physical objects;
- displaying, on the first display device of the first computer system and superimposed over the view of the first physical environment of the first user, a representation of the virtual movement performed in relation to the one or more first physical objects, wherein the representation of the virtual movement is an animation of at least a portion of the second user's body performing the physical movement;
- providing, by the first computer system and to the second computer system, and in response to detecting a physical movement in the first physical environment performed by the first user in relation to the one or more first physical objects, information that defines at least a portion of the physical movement performed by the first user in relation to the one or more first physical objects;
- receiving, at the first computer system and from the second computer system as a response to the information that defines the at least the portion of the physical movement performed by the first user in relation to the one or more first physical objects, information that identifies a suggested correction to the physical movement performed by the first user in relation to the one or more first physical objects, wherein the suggested correction is based on a corrective motion provided by the second user in which an animation of at least a portion of the first user's body is moved to an appropriate location with regard to the one or more second physical objects in the view of the second physical environment of the second user;
- and
- displaying, on the first display device of the first computer system and superimposed over the view of the first physical environment of the first user, a representation of the suggested correction.