Universal Scene Description

Learn

  • Introduction to USD
  • Introduction to OpenExec
  • Terms and Concepts
  • Tutorials
    • Hello World - Creating Your First USD Stage
    • Hello World Redux - Using Generic Prims
    • Inspecting and Authoring Properties
    • Referencing Layers
    • Converting Between Layer Formats
    • Traversing a Stage
    • Authoring Variants
    • Variants Example in Katana
    • Transformations, Animation, and Layer Offsets
    • Simple Shading in USD
    • End to End Example
    • Houdini USD Example Workflow
    • Generating New Schema Classes
    • Creating a Usdview Plugin
  • Downloads and Videos
  • Products Using USD

User Guides

  • Collections and Patterns
    • Basic Usage
    • Relationship-Mode Collections
      • Configuring Relationship-Mode Collections
    • Pattern-Based Collections
      • Path Expressions
        • Path Patterns
        • Additional Expressions Considerations
      • Configuring Pattern-Based Collections
      • Getting the Expression for a Relationship-Mode Collection
  • Color
    • Working With Color in OpenUSD
      • Color Spaces Supported by OpenUSD
      • Working With Color Space Schemas
        • Color Space Inheritance and Resolution
        • Default Color Space
    • What is a Color Space?
      • Gamut Limitations and Considerations
      • Common White Points
      • Linear vs. Non-Linear Spaces
    • Considerations in Content Creation
    • Glossary of Color Terms
  • Namespace Editing
    • Using UsdNamespaceEditor
      • Setting Editor Options
      • Working With Relocates
      • Fixing Paths For Moved Objects
      • Applying Edits to Dependent Stages
      • Batch Edits
    • Namespace Editing Best Practices
      • Use CanApplyEdits() To Validate Edit Operations
      • Built-In Properties From Schemas Are Not Editable
      • Be Aware of Relocates Performance Impact
  • Rendering with USD
    • Configuring Imageable Content
      • Configuring the Stage Coordinate System
      • Understanding Render Visibility
        • Using the Visibility Attribute
        • Using Imageable Purpose
      • Understanding Intrinsic and Explicit Normals
    • Working with Lights
      • Using Light-linking to Filter Objects Affected by Lights
    • Working with Materials
      • Using the USD Preview Material
        • Using GLSLFX Shaders
      • Working with Primvars
        • Primvar Interpolation
        • Indexed Primvars
        • Consuming Primvars in Materials
        • Material Primvar Fallbacks
      • Using Material Binding Purpose
      • Binding Materials to Collections
        • Setting Collection Binding Strength
        • Combining Collection Binding with Material Binding Purpose
      • Using Material Render Contexts
    • Working With Image File Formats
      • Guidelines for All Supported Image Formats
      • JPEG
      • PNG
      • OpenEXR
      • AV1 Image File Format (AVIF)
    • Defining the Render Camera
      • Configuring Motion Blur
    • Configuring Render Settings
  • Primvars
    • Primvar Interpolation Modes
      • Constant Interpolation
      • Uniform Interpolation
      • Vertex Interpolation
      • Varying Interpolation
      • faceVarying Interpolation
    • Primvars and the Scene Namespace
    • Indexed Primvars
      • Indexed Primvars and Attribute Blocks
    • Primvar Element Size
  • Schema Domains
    • Lights (usdLux)
      • Overview
        • UsdLux Schemas and Concepts
        • Light Units
        • Understanding Light Contributions
        • Light Shaping
        • Shadows
        • Mesh Lights
        • Light-linking and Shadow-linking
      • BoundableLightBase
        • Properties
        • Inherited Properties (Boundable)
        • Inherited Properties (Xformable)
        • Inherited Properties (Imageable)
      • CylinderLight
        • Properties
        • Inherited Properties (Boundable)
        • Inherited Properties (Xformable)
        • Inherited Properties (Imageable)
      • DiskLight
        • Properties
        • Inherited Properties (Boundable)
        • Inherited Properties (Xformable)
        • Inherited Properties (Imageable)
      • DistantLight
        • Properties
        • Inherited Properties (Xformable)
        • Inherited Properties (Imageable)
      • DomeLight
        • Properties
        • Inherited Properties (Xformable)
        • Inherited Properties (Imageable)
      • DomeLight_1
        • Properties
        • Inherited Properties (Xformable)
        • Inherited Properties (Imageable)
      • GeometryLight
        • Properties
        • Inherited Properties (Xformable)
        • Inherited Properties (Imageable)
      • LightAPI
        • Properties
      • LightFilter
        • Properties
        • Inherited Properties (Xformable)
        • Inherited Properties (Imageable)
      • LightListAPI
        • Properties
      • ListAPI
        • Properties
      • MeshLightAPI
        • Properties
      • NonboundableLightBase
        • Properties
        • Inherited Properties (Xformable)
        • Inherited Properties (Imageable)
      • PluginLight
        • Properties
        • Inherited Properties (Xformable)
        • Inherited Properties (Imageable)
      • PluginLightFilter
        • Properties
        • Inherited Properties (LightFilter)
        • Inherited Properties (Xformable)
        • Inherited Properties (Imageable)
      • PortalLight
        • Properties
        • Inherited Properties (Boundable)
        • Inherited Properties (Xformable)
        • Inherited Properties (Imageable)
      • RectLight
        • Properties
        • Inherited Properties (Boundable)
        • Inherited Properties (Xformable)
        • Inherited Properties (Imageable)
      • ShadowAPI
        • Properties
      • ShapingAPI
        • Properties
      • SphereLight
        • Properties
        • Inherited Properties (Boundable)
        • Inherited Properties (Xformable)
        • Inherited Properties (Imageable)
      • VolumeLightAPI
        • Properties
    • Media (usdMedia)
      • Overview
        • Working With Media
      • AssetPreviewsAPI
      • SpatialAudio
        • SpatialAudio and Layer Offsets
        • Properties
        • Inherited Properties (Xformable)
        • Inherited Properties (Imageable)
    • Render (usdRender)
      • Overview
        • Best Practices
        • Using UsdRender to Control How Prims Are Rendered
        • Working with RenderProduct
        • Configuring Multi-pass Renders with RenderPass
      • RenderPass
        • Properties
      • RenderProduct
        • Properties
        • Inherited Properties (RenderSettingsBase)
      • RenderSettings
        • Properties
        • Inherited Properties (RenderSettingsBase)
      • RenderSettingsBase
        • Properties
      • RenderVar
        • Properties
    • UI (usdUI)
      • Overview
        • Working With Node Graphs
        • Working With Accessibility Information
        • Working With UI Hints
      • AttributeHints
        • AttributeHints fields
      • ObjectHints
        • ObjectHints fields
      • PrimHints
        • PrimHints fields
      • PropertyHints
        • PropertyHints fields
      • AccessibilityAPI
        • Properties
      • Backdrop
        • Properties
      • NodeGraphNodeAPI
        • Properties
      • SceneGraphPrimAPI
        • Properties
    • Volumes (usdVol)
      • Overview
        • Working With Volumes
        • Working With Fields
      • Field3DAsset
        • Properties
        • Inherited Properties (FieldAsset)
        • Inherited Properties (Xformable)
        • Inherited Properties (Imageable)
      • FieldAsset
        • Properties
        • Inherited Properties (Xformable)
        • Inherited Properties (Imageable)
      • FieldBase
        • Properties
        • Inherited Properties (Xformable)
        • Inherited Properties (Imageable)
      • OpenVDBAsset
        • Properties
        • Inherited Properties (FieldAsset)
        • Inherited Properties (Xformable)
        • Inherited Properties (Imageable)
      • Volume
        • Properties
        • Inherited Properties (Gprim)
        • Inherited Properties (Boundable)
        • Inherited Properties (Xformable)
        • Inherited Properties (Imageable)
  • Variable Expressions
    • Defining Expression Variables in a Layer
      • string
      • bool
      • int64
      • <type>[]
      • None
      • Expression Variables and Composition
    • Authoring Variable Expressions
    • Expression Function Reference
      • defined(<variable name>, …)
      • if(<condition>, <true-value>, <false-value>)
      • if(<condition>, <true-value>)
      • and(<x>, <y>, …)
      • or(<x>, <y>, …)
      • not(<x>)
      • eq(<x>, <y>)
      • neq(<x>, <y>)
      • lt(<x>, <y>)
      • leq(<x>, <y>)
      • gt(<x>, <y>)
      • geq(<x>, <y>)
      • contains(<list_or_string>, <value>)
      • at(<list_or_string>, <index>)
      • len(<list_or_string>)
    • Examples
      • Flexible Variant Selections
      • Asset-valued Texture File Attribute
      • Conditionally Include Sublayers

Reference

  • API Documentation
  • Toolset
    • usdedit
    • usdcat
    • usddiff
    • usdview
    • usdrecord
    • usdresolve
    • usdtree
    • usdzip
    • usdchecker
    • usdfixbrokenpixarschemas
    • usdstitch
    • usdstitchclips
    • usddumpcrate
    • sdfdump
    • sdffilter
    • usdmeasureperformance
    • usdGenSchema
    • usdgenschemafromsdr
    • usdInitSchema
  • Specifications
    • UsdPreviewSurface Specification
      • Goal
      • Core Nodes
        • Preview Surface
        • Texture Reader
        • Primvar Reader
        • Transform2d
      • USD Sample
      • Other Notes
        • Texture Coordinate Orientation in USD
        • Roughness vs Glossiness
      • Changes, by Version
        • Version 2.0 - Initial Public Specification
        • Version 2.2 - Before Type Changes
        • Version 2.3
        • Version 2.4
        • Version 2.5
        • Version 2.6 - Current Head
    • Usdz File Format Specification
      • Purpose
      • Usdz Specification
        • Foundation
        • Zip Constraints
        • Layout
        • File Types
        • USD Constraints
        • Editability
        • Accessibility
      • Packaging Considerations for Streaming and Encapsulation
        • File Ordering Within Package for Streaming
        • For Reproducible Results, Encapsulate Using Anchored Asset Paths
      • MIME Type
      • Toolset
      • Changes, by Version
        • Version 1.3 - Current Head
  • Proposals
    • Adapting UsdLux to Accommodate Geometry Lights
      • Introduction and Background
        • Mesh Light Support in the Industry
        • Goals
        • Workflow Considerations
      • Design Space and Issues
        • Dual-Prim Geometry Light Problems
        • Single-Prim Geometry Light
      • UsdLux LightAPI OM
        • Light -> LightAPI
        • Introduce Convenience Base Classes
        • Preserve Existing UsdLux Concrete Schemas
        • Deprecate GeometryLight
        • How do we Identify the Appropriate SdrShaderNode for a Light?
        • Lights with Materials?
      • Proposal and Behaviors
        • Shading and Emission
        • Volumes
        • Primvars in Light Networks
    • Adapting UsdLux to the Needs of Renderers
      • Background and Goals
      • Foundational Technologies in USD
        • Sdr
        • USD Schemas
        • UsdImaging and Hydra
      • Proposals
        • Changes to UsdLux
        • Changes to UsdImaging
        • Changes to Hd
        • Changes to HdPrman and Other Render Delegates
    • Asset Previews in USD
      • Introduction
      • Proposal
        • Object Model
        • Concrete Encoding
      • Schema
    • Asset Resolution (Ar) 2.0
      • Background and Goals
      • Tasks
        • General Cleanup
        • Add Documentation and Examples
        • Add Identifier Concept
        • Remove Repository and Search Path
        • Improve Resolve and Asset Info
        • Remove Filesystem-specific Code
        • Add Asset Writing Interface
        • Add URI Resolvers
        • Allow Creation of ArResolverContext From Strings
        • Remove ArResolver::ConfigureResolverForAsset
      • Rollout and Transition
      • Proposed API
    • Coordinate Systems in USD Proposal
      • Purpose
      • Requirements
        • Coordinate Systems are Identified by Name in Shaders
      • Proposed API Schema
        • Recording a Frame of Reference
        • Binding Frames of Reference
        • CoordSysAPI
      • USD Sample and Analysis
        • Analysis: Coordinate Systems Evaluated
        • Analysis: Coordinate System Binding and Consumption
      • Projections, Cameras, and CoordSysAPI
    • Generalizing Connectable Nodes Beyond UsdShade
      • Background and Goals
      • Proposal
        • Node Definition as API Schema
        • Plugin-defined ConnectableAPI Behavior
        • Connectability Rules for UsdShade Types
        • Intended use in UsdLux and UsdRi (RenderMan USD schema)
      • Discussion
        • Sdr & Ndr
        • Flexibility of Connectability Callbacks
        • Non-shading Networks
    • Render Settings in USD Proposal
      • Purpose and Scope
      • Overall Design and Concerns
      • Concrete Schemas
        • Renderer-Specific Schemas
      • Prim and Scene Organization
        • Discovering Render Settings
        • Selecting and Combining Render Settings
        • Grouping RenderVars and RenderProducts
        • Discovering All Potential Shader-based RenderVars
      • Workflow Considerations
        • Interactive vs. Batch Rendering
      • Examples
      • Discussion and Questions
        • ID variables
        • Stereo Rendering
        • Camera Exposure Curves
        • Denoising, Color Correction, and Tasks
        • Why Locality of Overrides is Valuable
        • Image-Mapping-Related Options on Camera or RenderSettings?
        • Crop Windows and Region-of-Interest
    • Rigid Body Physics in USD Proposal
      • Purpose and Scope
      • Overall Design Concerns
        • Rigid Body Simulation Primer
        • USD Implementation
      • Concrete Schemas
      • Examples
        • Box on Box
        • Box on Quad
        • Spheres with Materials
        • Group Filtering
        • Pair Filtering
        • Joint
        • Distance Joint
    • Schema Versioning in USD
      • Introduction
        • Challenges to Schema Versioning in USD
      • Proposal for Per-Schema Versioning
        • Version Representation in Schemas
        • Schema Registry
        • UsdPrim Schema-related API
        • Considerations for Auto-apply API Schemas
      • Risks, Questions, Limitations
      • Guidelines for Schema Versioning
        • Criteria for Versioning
        • Do not Version a Schema When…
        • Do Version a Schema When…
      • Pixar Examples, Past and Future
        • UsdLux Connectability
        • Light → LightAPI
        • Visibility to VisibilityAPI
      • Possible Code Generation Changes to Support Versioning
        • Base Schema Class is Always the Latest Version of the Family
        • Class Per Version with Typedef Mapping to “Current” or “Latest” Version-Class
        • Single C++ Class That Provides API for ALL Versions of the Schema Family
        • “Compatible Cluster” Classes with Disambiguating Method Names
    • Stage Variable Expressions
    • UsdAudio Proposal
      • Goal
      • Initial Requirements
      • Proposed Prim Schema
        • SpatialAudio
      • USD Sample
      • Other Notes/Questions
        • SdfTimeCode and Time Scaling
    • UsdShade Material Assignment
      • Background
      • Basic Proposal for Collection-Based Assignment
        • Example Collection-Based Assignment
        • Refinement 1: Specifying Binding Strength
        • Refinement 2: Material Purpose
        • Material Resolve: Determining the Bound Material for any Geometry Prim
        • UsdShade API
      • Analysis of Collection-Based Binding
      • Integration
        • Katana Import
        • Maya I/O
        • Houdini
      • Remaining Questions
        • Performance
        • Implication on Renderer Instancing
        • Material Layering
  • FAQ
    • General Questions
      • What is USD and why should I use it?
      • What programming languages are supported?
      • Isn’t USD just another file format?
      • So what file formats does USD support?
      • What file format is my .usd file?
      • What character encoding does .usda support?
      • How can I convert USD files between binary and text?
      • What data types are supported?
      • What does a USD file look like?
    • Subtler Aspects of Scene Description and Composition
      • I have some layers I want to combine: Should I use SubLayers or References?
      • What happens to “overs” when their underlying prim is moved to a different location in the scenegraph?
      • When can you delete a reference (or other deletable thing)?
        • List-edited string, token, and int metadata
        • List-edited relationships and connections
        • List-edited composition arcs
      • What’s the difference between an “over” and a “typeless def” ?
      • Why Can’t I Instance a Leaf Mesh Prim Directly?
    • Build and Runtime Issues
      • How do I use the TF_DEBUG mechanism?
      • Why Isn’t Python Finding USD Modules?
      • Why Isn’t This Plugin Being Built?
      • Why doesn’t the OpenUSD runtime recognize the USD file format?
      • Why Isn’t My App Finding USD DLLs and Plugins on Windows?
  • Performance Considerations
    • Use an allocator optimized for multithreading
    • Use binary “.usd” files for geometry and shading caches
    • Package assets with payloads
    • What makes a USD scene heavy/expensive?
  • Performance Metrics
    • What We Measure
    • What Environment Is Used
      • Linux
      • macOS
      • Windows
      • USD Build
    • Metrics
      • Performance Graphs Per Platform
      • Standard Shader Ball
      • Kitchen Set
      • ALab
      • Moore Lane
    • Running Performance Metrics Locally
      • Adding Custom Metrics
  • Third Party Plugins
    • RenderMan USD Imaging Plugin
      • Configuration
        • Building hdPrman
        • Running hdPrman
      • Developer
        • Supported Render Pass AOVs
    • Alembic USD Plugin
      • Known Limitations

Collaborate

  • Source Code @ GitHub
  • OpenUSD Forum
  • Contributing
    • Contributor License Agreement
    • Coding Conventions
    • Pull Request Guidelines
    • Git Workflow
      • GitHub Issues
    • Making Major Changes
      • Step 1. Get consensus for major changes
      • Step 2. Make code changes
      • Step 3. Test code changes
      • Step 4. Submit code for review
      • Step 5. Pixar will test and land your changes
  • Contributors
  • Release Schedule

Press

  • Open Source Release
  • Open Source Announcement
Universal Scene Description
  • Search


© Copyright 2021, Pixar Animation Studios.

Terms of Use