What is the different between scene and stage

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:

  1. 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?
  2. Why doesn’t the Scene provide a method like add_reference_to_scene (similar to add_reference_to_stage), requiring assets to be added to the Stage first and then to the Scene?
  3. However, according to the code snippet in Isaac Sim’s documentation, it seems possible to directly use DynamicCuboid() to create a new asset in the Scene without first creating it in the Stage and then manually calling scene.add() to add the newly created DynamicCuboid. How does this work?
  4. If I only use add_reference_to_stage to add an asset to the Stage but don’t use scene.add() to add it to the Scene, what issues might arise in the simulation?

@siky47 that’s a good question! as another user, i also had to wrap my head around the terminologies when working with OpenUSD. i’ll defer to the mod to address your specific questions. but overall, i find this post from the dev a while back offers a bit more clarity when dealing with terms like World, Scene, and Stage in Isaac Sim which you may find insightful:

1 Like

Thank you! I’ve also seen this discussion, but I’m still a bit confused about the relationship between these three concepts. The main issue is that I can’t fully grasp the rationale behind such abstraction, especially the relationship between ‘stage’ and ‘scene’. I always feel like keeping just one of them would suffice?