Skip to content

Comparison

How does @cinevva/usdjs compare to other USD implementations?

Our Position

We're building a reference-quality USD implementation in pure TypeScript. The goal is spec-correct behavior, verified against Pixar's source code.

Most browser USD solutions fall into two camps: WASM ports (full-featured but complex to deploy) or simple loaders (easy but incomplete). We're aiming for a third option: native JavaScript with full correctness.

Comparison

ApproachBrowserNative JSUSDCCompositionNotes
Pixar OpenUSDThe reference. What we verify against.
WASM OpenUSDFull-featured. Needs COOP/COEP headers.
TinyUSDZ⚠️C++/WASM loader. Good for viewing.
Three.js USDLoader⚠️Simple USDZ loading. Not a runtime.
@cinevva/usdjs🔄Aiming for full parity. Pure TS.

🔄 = actively expanding toward full parity

References

OpenUSD formats / FAQ

USDZ specification

Three.js USDLoader docs

Needle USD viewer (OpenUSD in the browser)

TinyUSDZ

Rust openusd crate USDC module

Released under the MIT License.