Releases: mxpv/openusd
Releases · mxpv/openusd
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)
v0.2.0
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_overfor 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)
- Implement remaining ListOps and SDF types (a6515d2)
- Fix reading matrices (00da3bc)
- Cleanup usdc reader (4b1675d)
- Simplify ints decoder (9b4c941)
- Cleanup field API (c1b554e)
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
ziprequirement from2.2.2to8.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
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
v0.1.2
What's Changed
- 6ea5378 Read payloads
- dd12cd2 Read references
- 3a66b86 Support connections
- eea2d89 Read variants
- 83c6047 Safer section reader
- 6b854fd Read sublayers
- 5470305 Update coverage requirements
- a64f2e7 Parse values on demand
- 5f67d9e Add coverage badge
- 7788145 Rename Variant to Value
- 6b4ece6 Read dictionary types
- a0ff4d9 Read vector and matrix types
- 53e4349 Read basic array (ints, uints, Vec3, tokens)
- d0642f5 Fix index of range when reading compressed paths
- afe87dc Add cargo deny
Full Changelog: v0.1.1...v0.1.2