USD Basics: Stage, Prims, and Layers

The New 3D System tools have been designed for a painless transition from the Classic system by using familiar approaches where possible. However, as a USD beginner, you’ll encounter a number of new concepts and terminology that are useful to grasp to make full use of the enhanced workflows.

The USD Stage

The first USD term to understand is a Stage. A stage can basically be thought of as a scene. It holds the entire Scene Graph and associated data. When working in the New 3D System, every node network is essentially a stage and if you have two node networks with their own 3D data each network will have their own stage. If you then merge those node networks together you merge them to create one stage.

USD Prims

A prim (short for primitive) is the fundamental building block in a 3D scene. It represents an individual object or entity within the scene hierarchy. A piece of geometry is a prim, a camera is a prim, really anything in the scene graph is likely a prim.

In the Scene Graph you will also see columns for Type, Kind and Purpose. These are Primitive Attributes.

See more about Primitive Types and Primitive Attributes or learn how to create prims in the New 3D System at Creating Prims in Your Scene.

USD Layers

Layers are a crucial concept in USD as they facilitate non-destructive editing and collaboration. A layer is a self-contained file that stores a part of the scene, supporting edits and enabling the creation of alternate versions without impacting the original source.

A single .usd file is a layer. A layer can represent a “piece” of a scene such as a prop, a character, part of a rig, a lighting setup, and so on. It can also represent “defaults” that you can reference in, to create a baseline, for example a layer containing settings for a shot sequence, which you reference in the files representing each shot in the sequence.

Sublayering overlays the contents of the imported file (or layer) over the existing content. So essentially you are combining layers together, some on top, or some underneath to build up your stage.

When combining layers, you might sometimes combine layers which have the same prim in both layers, but with different information, say a Camera with different position or animation data. To decide which layer’s data we pull from, USD has a concept known as opinion strength.

As you might expect, the layer with the strongest opinion strength will determine the data that is used for this prim that exists in both layers.

This is really powerful and at the heart of why USD can be so collaborative. It allows you to non-destructively make changes, as your changes can live on their own sublayer, while allowing other artists’ work to live on a different layer and when you combine these layers together to build your stage you get the result based on the strongest opinion with no data loss.

Learn more about opinion strength in Nuke at USD Concepts in the New 3D System.

USD has two different approaches to “importing” the contents of another USD file: Sub-layering overlays the tree of the imported file over the current tree, while Referencing attaches the contents of the imported tree as a branch on the existing tree.

You can think of sublayering as composing different versions of the whole scene (for example, overlaying the lighting department’s version of the scene with final lighting over the layout department’s version of the scene with scratch lighting), and referencing as adding a part to the scene (for example, importing props to begin layout).

Learn more about importing at Importing into Your Scene.

When importing you might also notice the option to load or not load payloads. In USD, a payload is essentially a reference you can choose not to load, making it easier to just bring in the parts of the scene you care most about.

Learn more about payloads at Payloads and Deferred Loading.

By separating the scene in this way, each layer can be worked on independently and non-destructively.

USD in Nuke

In Nuke, each of the new 3D nodes creates a USD layer. Layers can also be imported as a .usd file. These layers can be composed together to form a stage.

Note:  The order of assembling layers is important due to the effect of layer overrides in the stack. A different order may apply different overrides.  Keep this in mind when merging the outputs of the 3D nodes.

The image below shows the layers of a simple scene as shown in the Scene Graph, with multiple layers and sublayers:

Learn more about the Scene Graph at New 3D Scenes in the Scene Graph.

Note:  For a glossary of USD terminology, see USD Terms and Concepts from Pixar.