Skip to content

@cinevva/usdjsReference-Quality OpenUSD

A spec-correct USD implementation in pure TypeScript. Verified against Pixar source.

Quick Example

typescript
import { UsdStage } from '@cinevva/usdjs';

// Parse a USDA file
const stage = UsdStage.openUSDA(`#usda 1.0
def Xform "World" {
    def Mesh "Cube" {
        float3[] points = [(-1,-1,-1), (1,1,1)]
    }
}`);

// List all prims
console.log(stage.listPrimPaths());
// ['/', '/World', '/World/Cube']

Installation

bash
npm install @cinevva/usdjs

What's Supported

FeatureStatus
USDA parsing✅ Full
USDC parsing✅ Real-world compatible
USDZ parsing✅ Full
Sublayers
References
Payloads
Variants
Inherits
Specializes❌ Not yet
Value clips❌ Not yet

Ecosystem

@cinevva/usdjs-viewer

Three.js-based browser viewer for visual validation and debugging.

@cinevva/usdjs-renderer

Headless PNG rendering via Playwright for regression testing.

Current Progress

The core runtime is solid and handles production files from major DCC tools. We're actively working toward full OpenUSD parity.

Done: USDA/USDC/USDZ parsing, sublayers, references, payloads, variants, inherits.

In progress: Specializes, relocates, value clips, full Pcp prim indexing.

Planned: Typed UsdGeom/UsdShade APIs, complete USDC write support.

See FEATURES.md for the full roadmap.

Released under the MIT License.