The universal language of 3D production

Universal Scene
Description

The open-source interchange format powering the world’s most demanding 3D pipelines. From feature films to real-time visualization, USD is the lingua franca of computer graphics.

Scope 3

Supply chain emissions measurement & reduction across the full electronics lifecycle.

Biodiversity

Mining impact & ecosystem accountability — from rare earth extraction to habitat loss.

Pollution

eWaste, hazardous materials & circular economy — keeping electronics out of landfills.

"We use the same scene description format as Pixar for our sustainability visualizations."

The Foundation

What is OpenUSD?

Universal Scene Description (USD) is an open-source framework created by Pixar Animation Studios for describing, composing, simulating, and collaborating within 3D worlds. It is the backbone of modern production pipelines at studios from Pixar and Industrial Light & Magic to Apple and NVIDIA.

USD is not just a file format — it is a scene description API with powerful features like non-destructive layering, lazy loading via payloads, variant sets for asset variations, and a robust schema system. It enables hundreds of artists to 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 standardize and promote USD as the universal 3D interchange format. MobiCycle Productions uses USD to author sustainability-focused 3D content at production quality.

Pixar
Created USD
Apple
USDZ for AR
NVIDIA
Omniverse
Autodesk
Maya / 3ds Max
Adobe
Substance 3D
SideFX
Houdini Solaris
Production Workflow

The USD Pipeline

A modern USD pipeline moves assets through five core stages. Each stage reads and writes USD layers, enabling non-destructive collaboration across departments.

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

The 6 Composition Arcs

USD’s power comes from its composition engine — LIVRPS. These arcs determine how opinions from different layers combine into a final resolved stage.

Sublayers
Strongest — applied first

Stack layers like Photoshop. Stronger layers override weaker ones. Used for department overrides — lighting over animation over layout. Each artist works in their own sublayer.

References
Asset 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.

Payloads
Deferred loading

Like references but lazy-loaded. Heavy geometry is wrapped in payloads so artists can unload assets they don’t need. Essential for scenes with thousands of assets.

Variants
Asset variations

Define 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.

Inherits
Class-based sharing

Like class inheritance in programming. Define a base class prim, then inherit from it. Change the class and all inheriting prims update. Used for shared material assignments across hundreds of props.

Specializes
Weakest — base defaults

The weakest arc — provides fallback defaults that anything can override. Used for studio-wide base schemas and default material assignments. Rarely used directly but critical for pipeline defaults.

Ecosystem

Tool Compatibility Matrix

USD support across major DCC applications. Coverage varies from full native integration to basic import/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 addon Partial Partial
Cinema 4D Native Native Limited Partial Basic
Unreal Engine Plugin Plugin Live Link Partial Basic
USD in Practice

Code Examples

Real USD syntax showing how stages, prims, and composition work in practice. USD files use either .usda (ASCII) or .usdc (binary crate) format.

stage.usda
#usda 1.0
(
    defaultPrim = "World"
    metersPerUnit = 0.01
    upAxis = "Y"
)

def Xform "World"
{
    def Xform "Environment"
    {
        def DomeLight "Sky"
        {
            asset inputs:texture:file = @./hdri/sky.exr@
            float inputs:intensity = 1.0
        }
    }

    def Xform "Props"
    {
        def Mesh "Chair" (
            references = @./assets/chair.usd@
        )
        {
            double3 xformOp:translate = (2.0, 0, -1.5)
            uniform token[] xformOpOrder = ["xformOp:translate"]
        }
    }
}
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 */
    }
}
shot_010.usda — Production Shot Assembly
#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
        }
    }
}
Procedural Geometry

The USD Stage

A USD stage is the root container for all scene description. Below is a procedural representation — a flat ground plane with objects arranged on it, just like a production scene file.

AI Console

Ask about OpenUSD

Describe your USD pipeline challenge, scene composition question, or tool compatibility concern. Our AI gives you an instant assessment with pipeline guidance, concept explanations, and code examples.

openusd.work/assess
$
Analysing your USD question...