
OpenUSD v26.08 is a schema-focused release centered on interoperability and authoring precision across diverse pipelines and industries. Rather than a single headline feature, this release delivers three new foundational schemas (Profiles, multiple level-of-detail, and backplates) alongside continued investment in OpenExec, splines, the namespace editor, and platform support.
Highlights include visualization of backplates in usdview, execution framework advances, and improved cross-platform build infrastructure.
OpenUSD v26.08 is now available on GitHub, and its core non-imaging libraries can be installed via PyPI with the command line.
pip install usd-core
Here are the major highlights for this release.
Profiles
USD is used across many industries, and applications typically implement only the subset of functionality they need. That flexibility is useful, but it makes compatibility hard to reason about: given an asset and a tool, it is not always clear whether the tool can faithfully open, edit, and round-trip the asset. Profiles address this by giving USD a formal vocabulary for declaring and querying capabilities.
A capability is an identifier for a specific piece of functionality, named with reverse-domain notation—for example usd.geom.skel or usd.image.jpeg. Capabilities are organized into a directed acyclic graph where each capability derives from its predecessors, so usd.image.jpeg implies usd.image. A profile is a coherent set of capabilities defined by its predecessors in that graph. Capabilities span three domains:
- Layer: file-format features such as a specific encoding or compression.
- Prim: schema-specific functionality such as skeletal animation.
- Application: tool support such as physics simulation or a given import/export path.
Capabilities can be declared two ways. Authors can apply a ProfileAPI to a prim to state conformance directly, and schemas can advertise the capabilities they require through plugin metadata in plugInfo.json and schema.usda. To support the latter, this release adds support for schema-implied capabilities and allows array values in the extraPlugInfo dictionary in usdGenSchema, so a schema can enumerate the capabilities it depends on at generation time.
Consumers can then query capabilities two ways: an explicit query reads declared capabilities and is fast and cacheable, while an introspective query infers capabilities by examining the composed scene—more complete, but more expensive. In upcoming releases, tool and pipeline support will be introduced, through familiar tooling such as validation through usdchecker.
Multiple Level-of-Detail (LoD) Schema
Renderers and engines routinely swap between representations of an asset to balance quality and performance. Until now, USD had no standard way to describe those alternatives, so each application invented its own convention. The new UsdLod schema provides a shared framework for authoring multiple detail levels and letting the runtime select among them without modifying the scene graph.
The schema is built from three pieces:
UsdLodRootAPImarks a prim as the root of an LoD hierarchy, carryinglod:heuristicsand a fallbacklod:default:indexfor when no heuristic applies. LOD children are declared in the prim scope and the child index represents the LOD index.
E.g., /Tree could be an LOD root that has a mesh at /Tree/LOD0, /Tree/LOD1, and /Tree/LOD2. In this example, /Tree/LOD0 would be highest detail, /Tree/LOD1 as middle detail, and /Tree/LOD2 as lowest detail.UsdLodHeuristicis the abstract base for selection logic. Two concrete heuristics ship in this release:UsdLodDistanceHeuristic(select by distance from the viewpoint) andUsdLodScreenSizeHeuristic(select by projected screen coverage).UsdLodOverrideAPIbypasses heuristics for explicit control throughlod:override:modeandlod:override:index.
Selection is deterministic as it checks for an override first, evaluates heuristic prims in turn, then falls back to lod:default:index. Custom domains are supported using a company or product prefix, and the schema accommodates nested LoD roots, non-integer indices for cross-fading, and hysteresis to prevent flicker near a threshold.
Backplates Schema
A backplate is a fixed image composed behind rendered geometry, commonly tied to a specific camera. Backplates are a fundamental VFX workflow supporting match moves, object replacement, scene extension, and many other fundamental tasks. This release introduces the UsdGeomBackPlateAPI, a multiple-apply schema that describes backplates directly in the scene, and includes a Hydra scene index and Storm implementation, making Backplates immediately available to Hydra and Storm users.
Backplates include several backplates which can be attached to a single camera allowing complex in-camera multi-plane composite effects. Each instance exposes a consistent set of properties:
- Image inputs: the color image, plus optional
AlphaImageandDepthImagefor matte and depth compositing. - Visibility:
PlateVisibilitytoggles the plate for all cameras, only the owning camera, or no cameras. - Color correction:
LumaGain,LumaGamma, andLumaLiftfor tuning the plate’s tonal response. - Placement tweaks:
TranslateTweak,RotateXYZTweak, andScaleTweakto adjust framing. - Placement and depth: translate, rotate, and scale tweaks, plus depth offset and normalization controls for integrating the plate’s depth with the scene.
Note: these backplate features are in OpenUSD but are not yet implemented in the Storm Hydra Render Delegate so they will not be visible, for example, in the usdview tool.
You can use backplates as a single plane or a multi-plane setup. A background photograph/plate is loaded as a back plate, placed at the camera’s focus distance and auto-scaled to fill the frustum, so it reads correctly as the environment behind the action of a subject. Additionally, plates can be stacked as multiple planes at different depths (foreground element / mid-ground actor card / far background), giving true parallax and layering which is a multi-plane setup.
Backplates are useful in photogrammetry by bundling a camera’s pose with the picture it took. They are also useful in machine learning by providing a way to associate readings from machine vision cameras with spatial tracks like what you might get from a rover or autonomous car.
Check out the full release notes on GitHub.