Skip to content

Releases: mxpv/openusd

v0.3.0

13 Apr 17:54
b01ca13

Choose a tag to compare

Changelog

0.3.0

This release introduces the PCP composition engine — a ground-up rewrite of the composition module with an arena-based prim index, namespace mapping via MapFunction, and full LIVRPS arc support including relocates. The new StageBuilder API adds support for session layers, variant fallbacks, and composition error callbacks. USDA and USDC parsers also gain broader coverage for time samples, spline attributes, and several metadata fields.

Compliance

New AOUSD Core Spec coverage in this release:

  • 10.3.2.1.1 Reference namespace mapping
  • 10.3.2.3.1 Inherit namespace mapping
  • 10.3.2.5.1 Variant fallback map
  • 10.3.2.6 Relocates
  • 10.3.2.6.1 Relocates namespace mapping
  • 10.4 LIVERPS strength ordering
  • 10.4.1 Specializes global weakness
  • 10.5 Namespace mappings (MapFunction)
  • 10.6 Composition errors (non-fatal)
  • 11.2 Session layer

New PCP Composition Engine

  • Add PrimIndex arena-based DAG with LIVRPS strength ordering (3e86045)
  • Introduce LayerStack to bundle layers, identifiers, and sublayer stacks (6da01af)
  • Add MapFunction for namespace mapping across composition arcs (6f12d69)
  • Implement relocates composition with cycle detection (009ade5, 37e6cba)
  • Implement specializes global weakness per spec 10.4.1 (ef8d29f)
  • Propagate implied inherits through seed prefix equivalences (7dc1f43)
  • Recursive inherits, specializes, and variant arc processing (d7efb57)
  • Nested variant resolution and variant-scoped dependency collection (461a350)
  • Resolve variant selections across all node paths (73b8d74)
  • Default variant selection from first variant in set (3c0f7bd)
  • Expand ancestral seeds for reference, payload, inherit, and specialize targets (e5e592d, f127c7f)
  • Propagate child specs from parent composition nodes (ae43049)
  • Add composition error reporting with CompositionError and DependencyKind (b51efb0, ce2c4b6)
  • Restructure dependency collection with error callback (d4f664c)
  • Canonicalize resolver identifiers (ccbc875)

Stage

  • Add StageBuilder and simplify Stage::open (ce11f1e)
  • Add session layer support (b3ec6e0)
  • Add variant fallback map (PcpVariantFallbackMap) (40dadfb)

Text Format (USDA)

  • Parse time samples, property suffixes, and relationship list ops (27d3488)
  • Parse spline attributes (de7ce40)
  • Parse relocates (82c6781)
  • Support block comments in the tokenizer (c1818ef)
  • Accept unrecognized type names and dotless float literals (c0e61c1)
  • Accept instanceable prim metadata (baf363f)
  • Support displayName prim metadata (40e3384)
  • Allow type name on all prim specifiers (aa6dddf)
  • Accept USDA version 1.0.x in magic header (b2ee2b4)

Binary Format (USDC)

  • Parse relocates (82c6781)
  • Fix bool parsing (f23b856)
  • Fix variant path format to use canonical form (0f64de4)
  • Fix half-float vector inlined value reading (ebeae8d)
  • Fix string array default value read (40d42be)

SDF

  • Add ListOp composition with compose_over and combine_chain (6a50227)
  • Add optional serde Serialize for SDF types (801065b)
  • Use fixed-size arrays for vec/quat/matrix Value variants (669d9b6)
  • Separate array semantics from Type enum into TypeInfo (3324408)

Bug Fixes

  • Fix relocate node strength ordering in LIVRPS (1f60dbf)
  • Fix cross-seed variant slice invalidation (bd5912b)
  • Fix propertyChildren key name and emit variantSetChildren (3768f3f)
  • Fix several text parser issues found by compliance tests (655da04)
  • Skip default and empty field values in text parser (4e195ba)
  • Store pseudo-root bare string as comment, not documentation (3deb0a4)
  • Fix USDA parser gaps for composition tests (e2c8bb8)
  • Fix test on windows (e1e7446)

Performance

  • Avoid heap allocation for single-pair MapFunction (4f1a790)
  • Extract Relocates struct and eliminate O(n^2) cache cloning (5c26022)
  • Remove unnecessary clones to reduce allocation pressure (3bb43dc)

Testing

  • Add composition compliance tests (63515dd)
  • Add text format compliance tests (0fcbbd9)
  • Vendor sample implementations for compliance testing (f1d3e9e)
  • Use vendored assets instead of duplicate fixtures (eed406e)

Dependencies

v0.2.0

06 Apr 17:15

Choose a tag to compare

What's Changed in v0.2.0

Composition & Stage API

  • Add Stage API with sublayer value resolution (9a214e2)
  • Initial resolver and composer implementation (160521f)
  • Add PrimIndex types for composition (e026132)
  • Add reference and payload arcs to PrimIndex (a90e285)
  • Add inherit arcs to PrimIndex (2e12c5b)
  • Add variant selection to PrimIndex (452d38a)
  • Add specialize arcs to PrimIndex (675a67b)
  • Add ListOp::compose_over for list-edit composition (82845fd)
  • Add Path helper methods for composition (62316ec)
  • Improve Stage API ergonomics with impl Into (c041881)
  • Change AbstractData::get to take &self (59ddda7)

Variable Expressions

  • Tokenize var expressions (a62b797)
  • Implement expression parser (3641ec6)
  • Implement expression evaluator (3bbeb2f)
  • Support expressions when loading layers (c2cabfd)
  • Add is_expression helper (9379e2a)

USDC (Binary Format)

USDA (Text Format)

  • Parse variantSet (9298d68)
  • Parse dictionary (ba17b8b)
  • Parse connections/relationships; Matrix support (c643030)
  • Fix USDA parser to accept quoted dictionary keys (b8e7943)
  • Add dictionary type (d424269)
  • Add support for dictionaries in pseudo-root metadata and relationship specs (ad6c4bf)
  • Implement prim metadata support (cafae42)
  • Rewrite tokenizer (bc35999)
  • Parse sublayers (f2d8dea)
  • Improve error reporting for USDA parser (432dd0a)

USDZ (Archive Format)

  • Initial usdz file format support (ba23a1d)

API Improvements

  • Replace FromValue with TryFrom (8b71b48)
  • Remove get_ prefix (ba88f4d)
  • Rework ref parser (a96ea82)
  • Add TextReader helpers for child and attribute access (05c95ca)
  • Add FromValue trait for type-safe value conversion (09a6166)
  • Derive Clone for sdf::Spec and TextReader (dbd5ef5)
  • Make TextReader::data public for external composition (7df6e33)
  • Support internal path references in parse_reference (160f6e0)
  • Support int64[], add test to read expressionVariables field (61ea225)

Dependencies

  • Update zip requirement from 2.2.2 to 8.2.0
  • Update lz4_flex requirement from 0.11.1 to 0.13.0
  • Update strum requirement from 0.27.2 to 0.28.0
  • Update logos requirement from 0.15.0 to 0.16.0
  • Bump codecov/codecov-action from 4 to 6
  • Bump actions/checkout from 4 to 6
  • Bump Rust toolchain to 1.89

v0.1.4

19 Jul 20:12

Choose a tag to compare

Changes

  • Fix cargo publish (d9eb393)
  • Update publish script (ee9c3a3)
  • Bump EmbarkStudios/cargo-deny-action from 1 to 2 (#7) (624462a)
  • Update OS list to latest (092d08f)
  • Format project files (8ab5481)
  • Add Claude CI action (f583a07)
  • Fix cargo deny (a42621e)
  • Fix clippy (70ccd31)
  • Update Rust to 1.88 (3824dc0)
  • Add CLAUDE.md (f590e16)
  • Parse layer offsets (6455059)
  • Refactor array parsing (81d0661)
  • Fix string array parser (0f95f02)
  • Use field keys instead of strings (f9cd11e)
  • Add codecov targets for patches (8d07aac)
  • Minor comment fixes (07b6739)
  • Align value types with binary reader (3652450)
  • Parse attributes (ab83ef0)
  • Update dump USDC example (9819514)
  • Initial text parser implementation (8b032bc)
  • Add dependencies badge (6e72b2e)
  • Merge pull request #6 from mxpv/dependabot/cargo/strum-0.26.2 (46e6332)
  • Merge pull request #4 from mxpv/dependabot/github_actions/codecov/codecov-action-4 (47b9e90)
  • Merge pull request #5 from mxpv/dependabot/github_actions/actions/checkout-4 (765463a)
  • Remove token lifetime (b82157f)
  • Make tokenizer iterable (94bd1fa)
  • Update strum requirement from 0.25.0 to 0.26.2 (53e0ac8)
  • Bump actions/checkout from 3 to 4 (2464c02)
  • Bump codecov/codecov-action from 3 to 4 (7e0af95)
  • Increase codecov threshold to 15% (f1bf153)
  • Add dependabot (6a1f08a)
  • Add field and children keys (2b22c24)
  • Consolidate usdc modules (051bee2)
  • Move version to layout (220170e)
  • Implement tokenizer (3a860e5)
  • Update toolchain (0c05e01)
  • Read quats, uchar, and bool (c2efe31)
  • Decode 64 bit integers (support int64 and uint64 arrays (2f85401)
  • Read compressed floats (half, float, double) (da4bd6f)

v0.1.3

18 Jan 03:36

Choose a tag to compare

What's Changed

  • b509995 Fix tagging in release script

Full Changelog: v0.1.2...v0.1.3

v0.1.2

18 Jan 02:36

Choose a tag to compare

What's Changed

Full Changelog: v0.1.1...v0.1.2

v0.1.1

18 Jan 02:37

Choose a tag to compare

What's Changed

  • ae5088a Read hierarchy from crate file
  • e4efb84 Move crate file reader to a separate file
  • 9ffe19c Implement SdfPath
  • 4d5072c Read crate (usdc) files

Full Changelog: v0.1.0...v0.1.1