EP.001 — ← back to log

USD Basics

Living post: USD changes quickly. I'll try to keep this page up to date with new terms, better examples, and pipeline notes. Last updated January 12, 2026.

This document serves as my personal study notes. For a more in-depth introduction to USD, visit openUSD.org.

What is USD?

Universal Scene Description (USD) is a framework — and a family of file formats — for describing, storing, and exchanging complete 3D scenes. Rather than only saving geometry, USD can package many parts of a production scene in a structured, scalable way, including geometry and attributes, materials, animation, lighting, cameras, instancing, and render settings. Because it supports both a standardized scene representation and a workflow for assembling and updating assets, USD scenes can be reliably loaded and shared across most professional VFX and 3D software.

Types of data USD can store

Why the CG Industry Is Transitioning to USD

USD matters because it makes collaboration on complex 3D work far more practical. Instead of relying on a huge, custom-built pipeline to keep everyone in sync, teams can work on the same shots and sequences with a shared scene description that holds up at production scale.

It's also built for non-destructive workflows. USD keeps scene data "alive" and editable through layered opinions, so changes can be added, overridden, or rolled back without tearing the whole scene apart. That structure makes iteration safer and more predictable — especially when multiple departments are touching the same assets.

Another major advantage is consistency over time. When assets or scene components get updated, those updates can propagate across a shot or even an entire sequence, reducing repeated manual fixes and keeping look and layout aligned.

USD is designed to handle heavy scenes efficiently. It stays performant as projects grow, and it supports smart strategies like variants (multiple versions of the same asset) and payloads (only loading what you need, when you need it). That makes USD particularly asset-friendly: you can preserve materials, assignments, and render-related properties across different tools instead of rebuilding them every time you transfer data.

Finally, USD isn't just a file format — it's a pipeline mindset. It's increasingly supported across professional VFX and 3D software, and the industry trend is clearly moving toward USD as a standard for scene assembly, collaboration, and rendering. If you're working in Houdini, Solaris is one of the most complete authoring environments for taking advantage of these USD workflows in a structured way.

TL;DR

  • Collaboration at scale: Teams can work on the same shots/sequences without needing a massive custom pipeline.
  • Non-destructive workflow: Layered "opinions" let you override, iterate, and roll back changes cleanly.
  • Consistent updates: Asset and scene changes can propagate across a shot or entire sequence.
  • Handles heavy scenes: Built to manage complex, data-rich environments efficiently.
  • Asset-friendly: Preserves materials/assignments/render properties across software; supports variants and payloads.
  • Efficient loading + smaller files: Modular structure and payload-based loading reduce memory usage and keep files manageable.
  • Render integration: Designed to connect cleanly with render engines in modern pipelines.
  • Industry momentum: Broad DCC support and a strong trajectory toward being the standard for 3D collaboration and scene assembly.
  • Solaris (optional note): A strong USD authoring environment that exposes these benefits clearly in practice.

What Is a Layer in USD?

A USD layer is essentially a .usd file on disk. Here are some common USD file extensions and what they mean:

Why Are USD Files Called Layers?

It's because of our ability to combine (layer) multiple USD files together to create a single scene. You can build the exact same 3D scene in USD with vastly different underlying layer structures:

USD Composition Arcs

How USD layers combine together to build a 3D scene.

Sublayer

The most basic way to add a USD file to a scene. It tells USD to add the primitives in the selected file without renaming or repositioning them.

References

A reference is generally used to assemble individual assets into sets and scenes.

The main difference between a sublayer and a reference:

Other composition arcs I'm still filling in notes on as I learn them: Payload, Variants, Inherits, Specializes.

Opinions

An opinion is expressed when we set a value on a USD attribute or property. Having an opinion is always stronger than having no opinion.

Writing USD Layers

Save Style

Configure Layer

Saves the node tree above into a USD file.

Output Processors

Saving Animation

For a multi-shot sequence, follow this workflow:

  1. Create a Configure Layer node and specify the frame range.
  2. In the USD ROP, set Frame Range to "Render Frame Range From Stage."
  3. Configure a layer for each shot and use a switch node to toggle between shots — this way you don't need to readjust the frame range in the USD ROP for every shot rendered.

← back to the log