Scene description that behaves like source code.

OpenUSD describes a 3D scene as layered text files. Departments work in parallel without overwriting each other, every change is version-controlled, and any frame can be rebuilt from source when the underlying data is revised.

What OpenUSD is

An open-source framework created at Pixar Animation Studios for describing, composing, simulating, and collaborating within 3D worlds.

USD is not just a file format. It is a scene description API with non-destructive layering, lazy loading via payloads, variant sets for asset variations, and a robust schema system. It is what lets hundreds of artists work on the same scene simultaneously without conflicts.

In 2023 the Alliance for OpenUSD (AOUSD) was formed by Apple, Pixar, Adobe, Autodesk, and NVIDIA to standardise USD as the universal 3D interchange format. MobiCycle Productions authors its sustainability visualisations on a USD pipeline for one practical reason: when a figure in the analysis is revised, the render is corrected and rebuilt rather than reshot.

Pixar

Created USD and runs its feature pipeline on it.

Apple

USDZ is the AR delivery format across its platforms.

NVIDIA

Omniverse is built natively on USD.

Autodesk

Native USD in Maya and 3ds Max.

Adobe

USD workflows in Substance 3D.

SideFX

Houdini Solaris is a full USD authoring context.

The pipeline

A production scene moves through five stages. Each stage reads and writes USD layers, so departments collaborate non-destructively on the same stage.

01 · Model
Geometry authoring with subdivision surfaces, mesh schemas, and material bindings.
02 · Layout
Scene assembly using references and payloads to compose assets into environments.
03 · Animate
Skeletal animation, blend shapes, and time-sampled transforms in dedicated layers.
04 · Light
UsdLux light rigs — area, dome, and distant lights — stored as separate overrides.
05 · Render
Hydra render delegates (Storm, RenderMan, Arnold, Karma) consume the composed stage.

How layers compose

USD's power is its composition engine — LIVRPS. Six arcs, from strongest to weakest, determine how opinions from different layers resolve into the final stage.

Sublayersstrongest — applied first
Stack layers like a compositing stack: stronger layers override weaker ones. Used for department overrides — lighting over animation over layout — with each artist working in their own sublayer.
Referencesasset composition
Bring entire assets into a scene. A reference points to a prim in another layer and maps it into the current namespace. The primary way to assemble scenes from modular assets.
Payloadsdeferred loading
Like references but lazy-loaded. Heavy geometry is wrapped in payloads so artists can unload assets they do not need. Essential for scenes with thousands of assets.
Variantsasset variations
Switchable variations within a single asset. A chair with material variants (wood, metal, fabric) or LOD variants (high, medium, low) — all in one USD file, selected at compose time.
Inheritsclass-based sharing
Like class inheritance in programming. Define a base class prim, then inherit from it; change the class and every inheriting prim updates. Used for shared material assignments across hundreds of props.
Specializesweakest — base defaults
Provides fallback defaults that anything can override. Rarely authored directly, but critical for studio-wide base schemas and default material assignments.

Tool support

USD support across major DCC applications, from full native integration to basic import and export.

Application Import Export Live edit Hydra Variants Composition
NVIDIA Omniverse Native Native Native Full Full Full
Houdini (Solaris) Native Native Native Full Full Full
Maya Native Native Plugin VP2 + Storm Partial Partial
Blender Native Native Limited Hydra add-on Partial Partial
Cinema 4D Native Native Limited Partial Basic
Unreal Engine Plugin Plugin Live Link Partial Basic

USD on disk

Real .usda syntax. Layers are plain text — they diff, merge, and review like any other source file, which is what makes a render reproducible.

Production shot assembly

shot_010.usda
#usda 1.0
(
    defaultPrim = "Shot_010"
    subLayers = [
        @./layers/lighting.usd@,    # strongest: lighting overrides
        @./layers/animation.usd@,   # animation department layer
        @./layers/layout.usd@       # weakest: base layout
    ]
)

def Xform "Shot_010"
{
    def Xform "Set" (
        payload = @./sets/office_set.usd@</Office>   # lazy-load heavy set geometry
    ) {}

    def Xform "Characters"
    {
        def SkelRoot "Hero" (
            references = @./chars/hero_rig.usd@
        ) {}
    }

    def Scope "Render"
    {
        def RenderSettings "MainRender"
        {
            rel camera = </Shot_010/Camera/MainCam>
            int resolution:x = 1920
            int resolution:y = 1080
        }
    }
}

Variant sets

chair_variants.usda
#usda 1.0

def Xform "Chair" (
    variants = {
        string material = "wood"
    }
    prepend variantSets = "material"
)
{
    variantSet "material" = {
        "wood" {
            rel material:binding = </Materials/Oak>
        }
        "metal" {
            rel material:binding = </Materials/BrushedSteel>
        }
        "fabric" {
            rel material:binding = </Materials/LinenBlue>
        }
    }

    def Mesh "Seat"
    {
        # geometry defined here
    }
}

Ask about the pipeline

Describe a pipeline problem, a composition question, or a tool decision. You get the relevant USD concept, guidance, a tool recommendation, and a code example.

Assessment

openusd.work/api/assess
Working through it
Runs on Workers AI. Nothing is stored.