Hi, I’d like to understand the relationship between “scene” and “stage.” Here’s my current understanding—I’m not sure if it’s correct:
In Isaac Sim, “Stage” and “Scene” are two similar but distinct concepts. From a USD perspective, a “Stage” refers to the USD hierarchy derived from the root USD, which may contain multiple references or layers of USD. On the other hand, a “Scene” is a concept specific to Isaac Sim, separate from the Stage, that manages assets of interest within the USD Stage. Assets need to be manually added to the Scene. In other words, a USD asset must first be added to the Stage before it can be included in the Scene.
A World contains only one Scene. You could say the Scene is like the “front stage” of a performance—the assets currently being interacted with—while there may be many other assets “backstage” waiting to be used. The entire performance can be thought of as the Stage, and the assets waiting backstage are those not yet added to the Scene.
Here are some of my questions:
- However, in the Isaac Sim experience (launched by isaacsim selector), the Scene doesn’t seem to be directly visualizable. Instead, you can view assets in the Stage through the Stage panel. It’s also possible that, in the Isaac Sim experience, all assets in the Stage are automatically added to the Scene by default?
- Why doesn’t the
Scene
provide a method likeadd_reference_to_scene
(similar toadd_reference_to_stage
), requiring assets to be added to theStage
first and then to theScene
? - However, according to the code snippet in Isaac Sim’s documentation, it seems possible to directly use
DynamicCuboid()
to create a new asset in theScene
without first creating it in theStage
and then manually callingscene.add()
to add the newly createdDynamicCuboid
. How does this work? - If I only use
add_reference_to_stage
to add an asset to theStage
but don’t usescene.add()
to add it to theScene
, what issues might arise in the simulation?