Netflix Animation Studios ALab Copyright 2025 Netflix, Inc. All rights reserved. - A cluttered animation studio workspace featuring various tools, a desk with computer screens, shelves filled with materials, and colorful artwork displayed. The scene reflects a creative environment dedicated to animation production.

OpenUSD v26.03 gets the SPLATS

OpenUSD v26.03 brings native Gaussian splats, a reference renderer, and WebAssembly builds, plus real pipeline speed and rigging work.

For those who don’t know the tool: OpenUSD is scene graph glue for pipelines, feeding DCCs and tools via schemas and composition, with viewers like usdview for sanity checks and debugging.

Gaussian splats, now speaking USD

OpenUSD v26.03 adds native support for 3D Gaussian Splats through a new schema family, UsdVolParticleField, including UsdVolParticleField3DGaussianSplat. The intent is simple: to represent 3D Gaussian Splat data as a first-class USD prim type rather than treating it as an exotic sidecar.

Alongside the schema, the release includes a reference Gaussian splat renderer named hdParticleField. It lives in the imaging examples folder and is meant for testing and conformance. You can run it through usdview, which makes it a practical starting point for anyone who wants to validate that splat data is wired up correctly before it touches a show pipeline.

A conversion script is also included to convert PLY files containing Gaussians into USD, located in the hdParticleField examples folder. That matters because PLY is a common interchange point for Gaussian data in production workflows today, and a direct bridge into USD removes a lot of bespoke glue code.

The update lands as interest in 3D capture formats keeps widening, especially for environment work and rapid scene reconstruction. A single USD-native representation makes it easier to keep splats in the same packaging, layering, and referencing system as the rest of a shot.

USD in the browser, because why not

OpenUSD v26.03 can now be compiled to WebAssembly. Support for wasm32 and wasm64 targets has been added using the Emscripten compiler. There is also a new wasmFetchResolver example that demonstrates loading and interacting with USD scenes directly inside a web browser via HTTP. That is a very specific demo, but it points to a wider reality: USD tooling is no longer automatically tied to desktop builds.

If your pipeline includes lightweight review tools, internal web dashboards, or simple interactive scene inspection in a browser, this release makes those targets less theoretical and more like normal engineering work.

Core composition gets more surgical

v26.03 implements sparse array-edit overrides. Layers can now override individual elements of array-valued attributes without replacing the entire array. The change required a significant rewrite of the core value resolution code for both metadata and attribute values.

Practically, this is the kind of feature that shows up everywhere once it exists. Adjust a handful of vertices. Nudge a few fastener positions. Patch a subset of data in a giant assembly. You get smaller deltas, cleaner composition, and less risk of stomping unrelated values upstream.

This is also one of those updates you want to test early, because composition edge cases love to hide in the corners – and edges, as the name suggests. Treat new composition behaviour as something to validate with real assets before you roll it into production.

OpenExec: Rigging experiments keep moving

Building on OpenExec introduced in v25.08, this release adds an IrFkController schema as an early step toward invertible rigging capabilities within USD. The controller provides forward and inverse FK computations that take scalar translate and rotate inputs plus a parent space to produce a posed space and vice versa.

It is described as early and not for production use, but it is still an important signal: rigging and evaluation inside USD continues to be an active target, not a side quest.

Cycle detection has also been improved. Data cycles formed across multiple compilation rounds are now caught, and the runtime returns control to the client with an error instead of aborting the process. That is not glamorous, but it is the kind of correctness work that saves hours when a bad rig graph shows up at 2 a.m.

Speedups where they count

The release includes targeted performance optimizations, with concrete examples. Composition dependency computation has been streamlined, reducing stage load time by approximately 11 percent in one production shot, from 3.5 seconds to 3.1 seconds. Another fix for .usdc sublayers with heavily-connected relationships brought a reported 200x improvement, from 20 seconds down to 0.1 seconds for a sublayer containing a relationship with 10,000 targets.

Deprecations and validators, the grown-up part

UsdImaging’s legacy scene delegate mode is now deprecated in favor of scene index mode. An environment variable that controls scene index behavior now defaults to enabled, and overriding it back will trigger a one-time deprecation notice. This completes a transition that began with scene index feature parity in v25.08 and the switch to the scene index default in v25.11.

https://openusd.org/release/_images/glossary_usdviewValidation.png

usdchecker has completed its transition to the validation framework, and the previously deprecated UsdUtilsComplianceChecker has been fully removed. There is also a new includeKeywords option that lets users run only validators matching a specific set of keywords, making targeted validation more practical. The arkit flag has been deprecated. Finally, Python 3.8 support is deprecated as of this release and will be removed in the next. Projects still on Python 3.8 should plan to upgrade accordingly.

Availability

OpenUSD v26.03 is available on GitHub. The core non-imaging libraries can be installed via PyPI using pip install usd-core. As always, new tools and innovations should be tested before use in production. That includes performance claims, new composition behaviors, and any schema changes that can ripple through asset publishing. About two thirds into rollout planning, the safest play is to buidl a small validation suite around usdchecker, then run it on real assets before you flip any defaults.


https://aousd.org/blog/openusd-v26-03/

https://openusd.org/release/user_guides/schemas/usdVol/ParticleField3DGaussianSplat.html