Repository navigation
v0.3.0
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.1Reference namespace mapping10.3.2.3.1Inherit namespace mapping10.3.2.5.1Variant fallback map10.3.2.6Relocates10.3.2.6.1Relocates namespace mapping10.4LIVERPS strength ordering10.4.1Specializes global weakness10.5Namespace mappings (MapFunction)10.6Composition errors (non-fatal)11.2Session layer
New PCP Composition Engine
- Add
PrimIndexarena-based DAG with LIVRPS strength ordering (3e86045) - Introduce
LayerStackto bundle layers, identifiers, and sublayer stacks (6da01af) - Add
MapFunctionfor 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
CompositionErrorandDependencyKind(b51efb0, ce2c4b6) - Restructure dependency collection with error callback (d4f664c)
- Canonicalize resolver identifiers (ccbc875)
Stage
- Add
StageBuilderand simplifyStage::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
instanceableprim metadata (baf363f) - Support
displayNameprim 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
ListOpcomposition withcompose_overandcombine_chain(6a50227) - Add optional serde
Serializefor SDF types (801065b) - Use fixed-size arrays for vec/quat/matrix
Valuevariants (669d9b6) - Separate array semantics from
Typeenum intoTypeInfo(3324408)
Bug Fixes
- Fix relocate node strength ordering in LIVRPS (1f60dbf)
- Fix cross-seed variant slice invalidation (bd5912b)
- Fix
propertyChildrenkey name and emitvariantSetChildren(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
Relocatesstruct 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
- Drop
pastedependency (0a1085c)