USD for environment artists
What OpenUSD is, how its layers, references, variants and payloads let several artists work on one scene without overwriting each other, and how Houdini, Unreal, Blender and Omniverse support it today.
USD (Universal Scene Description, now usually called OpenUSD) is Pixar's open framework for describing 3D scenes. Pixar calls it "the core of Pixar's 3D graphics pipeline, used in every 3D authoring and rendering application" (OpenUSD documentation: Introduction to USD). It provides "interchange of elemental assets (e.g. models) or animations" (OpenUSD documentation: Introduction to USD), but its main strength is that it lets many people and tools work on one scene at the same time without overwriting each other.
For game environment artists, USD matters most in large-scene layout, film and virtual-production crossovers, and Houdini-heavy pipelines. Day-to-day game asset export is still mostly FBX, which Unity and Unreal treat as their primary import format (aras-p.info: Blender FBX importer via ufbx); see 3D file formats.
#The core ideas
USD has its own vocabulary. These are the main terms.
- Stage: the scene you are looking at, composed from many files.
- Prim: one thing in the scene hierarchy, such as a mesh, a light or a group.
- Layer: a file. "Prims and their contents are organized into a file abstraction known as a Layer" (OpenUSD documentation: Introduction to USD).
- Sublayer: stacks whole USD layers on top of each other; subLayers is USD's most basic composition arc (OpenUSD documentation: Introduction to USD). Stronger layers win where they disagree.
- Reference: pulls another file's hierarchy into your scene at a chosen place, composing the tree under the target prim into the prim that references it (OpenUSD documentation: Introduction to USD).
- Variant set: bundles several variations of an asset into a single package (OpenUSD documentation: Introduction to USD); for example clean, damaged and destroyed versions of a building.
- Payload: a reference whose loading is deferred, so it can be loaded or unloaded after the stage is opened (OpenUSD documentation: Introduction to USD), so a huge city can open quickly with distant blocks unloaded.
All edits on top of referenced assets are overrides. USD describes this as "non-destructively editing them (as overrides)" (OpenUSD documentation: Introduction to USD).
SideFX's Houdini docs explain sublayers versus references in plain terms: sublayers stack whole files, with the stronger file's values winning, while references bring part of another file into a specific place in your scene; referencing is how you reuse one file in several places, because "sublayering the same file twice has no effect" (Houdini documentation: USD in Solaris).
#Up axis and units
USD stores the up axis per stage. The metadatum upAxis has legal values "Y" and "Z", and "the fallback will be "Y"" in a generic installation (OpenUSD API documentation: Encoding Stage UpAxis). Assets from a Z-up tool referenced into a Y-up stage need care: OpenUSD notes that a "conscientious set/environment-construction tool could examine the up axis of referenced assets as they are being referenced" (OpenUSD API documentation: Encoding Stage UpAxis). See coordinate systems and handedness and units, scale and axes.
#Support in common tools
Houdini (Solaris). "Houdini's tooling and support for USD is collectively known as Solaris" (Houdini documentation: USD in Solaris). Its LOP networks are built around USD: "each node accepts an incoming USD scene, modifies it, and outputs a new scene" (Houdini documentation: USD in Solaris). You are "always authoring in the strongest opinion", so Houdini handles override strength for you (Houdini documentation: USD in Solaris). See procedural modeling.
Unreal Engine. Unreal supports USD "through the USD Stage panel and bi-directional Python workflows" (Unreal Engine 5.8 Documentation: Universal Scene Description in Unreal Engine). A USD Stage Actor "acts as a container for the contents of a loaded USD file", and the stage "handles live updates as you make changes to the source USD file on disk" (Unreal Engine 5.8 Documentation: Universal Scene Description in Unreal Engine). It loads .usd, .usda, .usdc and .usdz and supports static and skeletal meshes, HISM, materials with PreviewSurface, lights, cameras, variants and animation (Unreal Engine 5.8 Documentation: Universal Scene Description in Unreal Engine). Limits: it is labelled Beta, and "Unreal Engine does not automatically create lightmaps for assets loaded on the USD Stage" (Unreal Engine 5.8 Documentation: Universal Scene Description in Unreal Engine). You need the USD Importer plugin (Unreal Engine 5.8 Documentation: Universal Scene Description in Unreal Engine).
Blender. Blender has USD import and export, and support changes with each release. Blender 4.5 added export of text objects, writes MaterialX materials as OpenPBR Surface, and imports animated camera properties and skeleton rest poses (Blender Developer Documentation: Blender 4.5 LTS: Pipeline & I/O). Check the release notes for your version before relying on a feature.
NVIDIA Omniverse is "a development platform for building and operating 3D applications and services at scale", and its documentation presents OpenUSD as its foundation for data interoperability (NVIDIA Omniverse documentation: Introduction).
| Tool | USD role | Notes |
|---|---|---|
| Houdini | Native USD authoring (Solaris, LOPs) | Strongest support (Houdini documentation) |
| Unreal Engine | Open a live stage or import | Beta; no automatic lightmaps on the stage (Unreal Engine 5.8 Documentation) |
| Blender | Import and export | Changing per release (Blender Developer Documentation) |
| Omniverse | Platform built on OpenUSD | For building 3D apps and services (NVIDIA Omniverse documentation) |
#Common mistakes
- Treating USD as "a better FBX". Its value is composition. A single flattened USD file gains you little over FBX.
- Editing someone else's layer. Put your changes in your own layer and let strength order decide.
- Mixing up axes. Check each referenced asset's up axis (OpenUSD API documentation: Encoding Stage UpAxis).
- Expecting full engine features. Lightmaps and other engine-specific data may need setting up after import (Unreal Engine 5.8 Documentation: Universal Scene Description in Unreal Engine).
#Further reading and watching
- 3D file formats: where USD sits among FBX, glTF and OBJ.
References
- · Introduction to USD · OpenUSD documentation, 2026 · docs · accessed 2026-10-21
- · Blender FBX importer via ufbx · aras-p.info, 2025 · article · accessed 2026-10-20
- · USD in Solaris · Houdini documentation, 2026 · docs · accessed 2026-10-21
- · Encoding Stage UpAxis · OpenUSD API documentation, 2026 · docs · accessed 2026-10-21
- · Universal Scene Description in Unreal Engine · Unreal Engine 5.8 Documentation, 2026 · docs · accessed 2026-10-21
- · Blender 4.5 LTS: Pipeline & I/O · Blender Developer Documentation (release notes), 2025 · docs · accessed 2026-10-20
- · Introduction (Omniverse Developer Overview) · NVIDIA Omniverse documentation, 2026 · docs · accessed 2026-10-21
Pages that link here
- Coordinate systems and handedness Key term
- glTF Key term
Last updated 2026-10-22