Introduction to USD

Universal Scene Description (USD) is an open and extensible ecosystem for describing, composing, simulating, and collaborating within 3D worlds. Originally invented by Pixar Animation Studios, USD is poised to be the open standard that enables 3D evolution of digital twins. the standard for virtual worlds.

While USD includes a file format, it is much more than that. USD is a powerful scene representation with an API that allows complex property inheritance, instancing, layering, lazy loading, and a wide variety of other key features. Omniverse uses USD for interchange through the Nucleus DB service.

Diagram of USD.

Key Benefits of USD

  • Ground Truth, Full Design Fidelity Asset Ingestion: USD is more than a file format—it’s an open, extensible framework and ecosystem with APIs for composing, editing, querying, rendering, collaboration, and simulation within 3D virtual worlds.

  • Interoperability Between 3rd Party 3D Ecosystems: USD is file system agnostic, providing an extensible asset resolver to support any data storage model allowing for disparate data sources.

  • Non-Destructive, Collaborative 3D Workflows: USD enables non-destructive workflows and collaboration in scene creation and asset aggregation so teams can iterate collaboratively.

  • Accelerate Time to Production: USD supports custom renderers in a generalized pipeline thanks to its Hydra rendering architecture that provides flexibility in visualizing data.

For more information, check out developer resources here.

USD Workflow Basics

USD organizes data into hierarchical namespaces of Prims. In addition to child prims, each prim can contain Attributes and Relationships, collectively known as Properties. Attributes have typed values that can vary over time; Relationships are multi-target “pointers” to other objects in a hierarchy, and USD takes care of remapping the targets automatically when referencing causes namespaces to change. Both prims and properties can also have (non-time-varying) metadata. Prims and their contents are organized into a file abstraction known as a Layer. Learn more here.

USD layering provides for clean way to separate the data from various sources and enables a robust update mechanism.

By looking at the image below, you can see that each 3D asset within a scene is represented by a USD file. The USD file of each asset is referenced by the top-level USD file where each referenced file is considered as a sublayer. As a result, the composed USD scene contain the Top-level USD file and the hierarchy representation of each USD file within that scene.

Diagram of USD hierarchy.