Spec-Correct
We verify behavior against Pixar's C++ implementation. When there's ambiguity, we match OpenUSD.
A spec-correct USD implementation in pure TypeScript. Verified against Pixar source.
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']npm install @cinevva/usdjs| Feature | Status |
|---|---|
| USDA parsing | ✅ Full |
| USDC parsing | ✅ Real-world compatible |
| USDZ parsing | ✅ Full |
| Sublayers | ✅ |
| References | ✅ |
| Payloads | ✅ |
| Variants | ✅ |
| Inherits | ✅ |
| Specializes | ❌ Not yet |
| Value clips | ❌ Not yet |
Three.js-based browser viewer for visual validation and debugging.
Headless PNG rendering via Playwright for regression testing.
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.