Understanding USD Composition: The Foundation of Scalable 3D Pipelines
- Dilen Shah
- Apr 13
- 4 min read
Updated: Apr 14

Table of Contents
1. Introduction to USD Composition
Composition is the heart of Pixar's Universal Scene Description (USD). It's what makes USD more than just a file format. Composition enables USD to manage complex, modular, non-destructive, and scalable 3D data across teams and applications.
Think of USD composition as a smart way of combining multiple opinions (data) from various sources into a final scene that reflects the most relevant, up-to-date, and valid version of the truth.
This article will dive deep into USD composition, with real-world examples, best practices, and code to help you understand and implement composition in your pipeline.
2. Composition in the USD Architecture
USD is architected around a composition engine. This engine:
Resolves assets and references.
Evaluates layer stacks.
Applies composition arcs like references, variants, inherits, and payloads.
Merges opinions into a single composed stage.
Composition allows USD to scale from individual assets to entire animated films, with layered authoring and clear separation of data.
Key Composition Terms:
Prim: A node in the scenegraph.
Attribute: A named value on a prim.
Layer: A file containing authored scene description.
Stage: A composed view of a scene assembled through composition arcs.
3. Key Concepts in USD Composition
USD composition relies on the concept of opinions:
Every USD layer has opinions about the scene.
The final composed scene is the result of resolving which opinions win.
USD supports compositional arcs, which describe how scenegraph data is brought together:
Sublayers
References
Payloads
Inherits
Variants
4. Layers and Sublayers: Building Blocks of Composition

Sublayering
Sublayers are the simplest form of composition. A USD layer can include other layers as sublayers. Opinions from higher layers override those in lower layers.
Example: base.usda
Example: override.usda
The final composed result will be a cube of size 3, because the override wins.
Python Example:
5. Stage, LayerStack, and CompositionArc Explained

Stage: View into composed scenegraph.
LayerStack: Set of layers that contribute opinions.
CompositionArc: Defines how one prim pulls in data from another (e.g., reference, inherit).
Use UsdUtils.CompositionQuery() to inspect the arcs.
6. LIVRPS in Composition

USD composition is driven by a priority system known as LIVRPS:
Layers
Inherits
Variants
References
Payloads
Sublayers
This is also the order of increasing strength—i.e., layers can override inherits, variants can override references, and so on.
Practical Usage:
Place modeling data in referenced files.
Place shot edits in sublayers.
Use payloads for deferred loading.
Use variants for LODs, shader changes, or asset states.
7. References and Payloads
References
Bring in data from another file, fully loaded and resolved.
Payloads
Deferred loading until explicitly included.
8. VariantSets and VariantSelections
Variants let you define different versions of a prim.
Set selection:
"Asset.modelType" = "low"
9. Inherits and Class-Based Overrides
Use inherits to share common behavior or structure:
10. Overlayers and Opinions
Overlayers are used to add/modify data at runtime or during layout. USD resolves opinions hierarchically:
Opinions at the strongest layer win.
You can override transforms, attributes, relationships.
11. Scene Modularity and Composition Best Practices
Modularize assets by task (model, lookdev, anim).
Use references for shared data.
Use sublayers for contextual changes.
Minimize overrides to avoid confusion.
12. Real-World Examples and Pipelines
Asset authoring: Modeler creates model.usda
Lookdev: Shader artist adds lookdev.usda as sublayer
Shot layout: Layout adds camera and edits in override.usda
13. Composing Assets Across Departments
Each department contributes a layer:
Modeling: /Model/model.usda
Rigging: /Rig/rig.usda
Animation: /Anim/anim.usda
Shading: /Look/look.usda
Shot edits: /Shots/shot001/override.usda
Final shot composition:
14. Live Layer Editing and Authoring
You can author changes directly to USD layers interactively:
Stage will update in real-time.
15. Debugging and Visualizing Composition
Tools:
usdview: View composed scene.
UsdUtils.compositionQuery: Inspect arcs.
Usd.ResolveInfo: See why an opinion is winning.
16. Composition Arcs in Action: Case Studies
Example: Changing shaders on an asset via variants without changing the base model.
Base layer defines model.
Variant layer swaps material.
17. USD in Action: DCC Tools and Composition Behavior

Maya: Maya-USD plugin honors composition.
Houdini: LOPs allow precise control of layers.
Katana: Composition resolved at render time.
18. Performance Considerations
Use payloads for heavy geometry.
Minimize sublayering depth.
Use instancing where possible.
Flatten layers only when necessary.
19. Advanced Composition Patterns
Variant-driven material assignments
Light rigs with class-based inheritance
Shot templates with override sublayers
20. Wrapping Up
USD Composition enables modular, scalable workflows that empower collaboration and large-scale scene assembly. Mastering composition unlocks the full potential of USD in your pipeline.
If you're building tools, managing assets, or laying out shots, understanding composition is your key to unlocking clean, collaborative, and production-friendly USD scenes.
Stay tuned for the next post in the series, where we’ll dive into USD Primitives and Geometries.
Comments