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 OpenUSD❌❌✅✅The reference. What we verify against.
WASM OpenUSD✅❌✅✅Full-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.