Hi @dan.sandberg - In Pixar’s Universal Scene Description (USD), a Stage represents a scene and all the data associated with it, including prims, assets, and layers that logically contribute to the composition of that scene. Many 3D applications use different terminology to refer to a container for objects that compose a scene, such as “world” or “scene”. In NVIDIA Omniverse applications, Stage is a concept borrowed from USD.
You’re correct that the Stage represents the loaded USD Scene, i.e., all the assets and objects in your 3D scene. In Omniverse, the concept of Scene is tied to simulation and it is the container for all the objects included in a simulation. When you press reset, it sets all the objects in the simulation scene back to their original state.
As for the world, it is actually a PhysX concept. The PhysX world is the abstract representation of the physical environment for physics simulation. Everything connected with Physics simulation such as Bodies, Joints, Scene Queries happen within this PhysX world.
If you create a new world object with world = World(), it creates a new empty PhysX world. It doesn’t include the objects already loaded on the USD stage.
When you add an object like a cuboid using DynamicCuboid(), it adds the cuboid to the USD stage and also creates a corresponding physical representation in the PhysX world if PhysX simulation is enabled.
High-level simulation concepts like the scene and reset operations are not tied to USD by default. When you press reset, it’s resetting all physically simulated objects to their original state in the simulation scene. The USD stage itself isn’t reset unless those objects are also part of the USD stage.
In summary, a Stage is a USD concept related to scene composition, a Scene in Omniverse is a container for simulation objects, and a World typically refers to the container for physics simulation objects. It’s important to be aware of the context when dealing with these terms, as different systems may use similar terminology in different ways.