Skip to content

Latest commit

 

History

History
204 lines (175 loc) · 17.1 KB

File metadata and controls

204 lines (175 loc) · 17.1 KB

Roadmap and Spec Compliance

Feature parity with the AOUSD Core Specification v1.0.1 and the C++ reference implementation (OpenUSD).

Legend: ✅ Supported | 🚧 Planned | 🤔 Considering

Foundational Data Types (Spec 6)

Feature Spec Status Version Notes
Scalar types (bool, int, float, double, half, string, token, asset, timecode, int64, uint, uint64, uchar) 6.2 0.1.1 sdf::Value enum
Dimensioned types (vectors, matrices, quaternions) 6.3 0.1.2 float2..4, double2..4, matrix2d..4d, quath/f/d, int2..4, half2..4
Algebraic types (opaque) 6.4 0.2.0 Value::Opaque
Semantic aliases (color, normal, point, vector, texCoord, frame) 6.5 🤔 Parsed as underlying types; semantic role not tracked separately
Arrays 6.6.1 0.1.2 All scalar and dimensioned array variants
Dictionaries 6.6.2 0.1.2 Including nested dictionaries
Dictionary combining 6.6.2.1 🚧 Recursive merge of stronger/weaker dictionaries during value resolution
List operations (explicit, composable) 6.6.3 0.2.0 int, int64, uint, uint64, token, string, path, reference, payload
List op combining 6.6.3.6 0.2.0 ListOp::combined_with
List op reducing 6.6.3.8 0.2.0 ListOp::reduced
List op chaining 6.6.3.9 0.2.0 Applied during composition arc evaluation

Document Data Model (Spec 7)

Feature Spec Status Version Notes
Layer structure (specs, paths, fields) 7.2 0.1.1 AbstractData trait
Spec forms (layer, prim, attribute, relationship, variant set, variant) 7.3 0.1.1 SpecType enum
Core metadata fields (layer spec) 7.6.1 0.1.2 subLayers, subLayerOffsets, defaultPrim, documentation, etc.
Core metadata fields (prim spec) 7.6.2 0.1.2 specifier, primChildren, propertyChildren, references, payload, inherits, specializes, variantSets, variantSelection, etc.
Core metadata fields (attribute spec) 7.6.3 0.1.2 typeName, default, timeSamples, connectionPaths, variability, custom
Core metadata fields (relationship spec) 7.6.4 0.1.2 targetPaths, variability, custom
Core metadata fields (variant set/variant spec) 7.6.5-7 0.2.0
Spline specialized type 7.4.2.4 🚧 SplineKnot, interpolation modes, extrapolation, looping
Retiming specialized type (layer offsets) 7.6.1.2.2 0.1.2 Parsed from subLayerOffsets; composed through arcs as of main.

Paths (Spec 8)

Feature Spec Status Version Notes
Absolute/relative paths 8.1 0.1.1 sdf::Path
Prim paths 8.1 0.1.1
Property paths 8.1 0.1.1
Variant selection paths 8.1 0.2.0 {set=selection} syntax
Path grammar (PEG) 8.5 0.1.4 Parsed from USDA and USDC
Element ordering 8.2 🚧 Normative ordering rules for property/prim names
Relative path resolution 8.1 0.2.0 Anchoring via make_absolute
Legacy path compatibility 8.7 🤔 Extended grammar with [target] and .mapper paths

Resource Interface (Spec 9)

Feature Spec Status Version Notes
Resource identifiers (URI) 9.2 0.1.1 Asset paths as strings
Relative resource identifiers (anchored) 9.4.1 0.2.0 ./ and ../ resolution relative to containing layer
Non-anchored identifiers (search paths) 9.4.2 0.2.0 DefaultResolver with search paths
Resolving identifiers to locations 9.5 0.2.0 Resolver trait
Resolving extensions 9.6 0.2.0 .usd/.usda/.usdc/.usdz dispatch
Packaged resources 9.7 0.2.0 asset.usdz[sublayer.usd] syntax
file URI scheme (RFC 8089) 9.8 🚧 Filesystem paths accepted but not as file:/// URIs
usd-anon scheme (in-memory resources) 9.8.1 🤔 For transient layers not backed by files

Composition (Spec 10)

Feature Spec Status Version Notes
Sublayers 10.3.1 0.1.2 Layer stack construction
Sublayer time offsets 10.3.1.1 main Composed through nested sublayers; carried on each Node via MapFunction::time_offset. Value-resolution application pending.
References (internal + external) 10.3.2.1 0.1.2 Including defaultPrim fallback
Reference namespace mapping 10.3.2.1.1 0.3.0 MapFunction with source/target pairs
Reference time offsets 10.3.2.1.2 main Carried through reference arcs; composed with sublayer offsets on the target layer stack. Value-resolution application pending.
Payloads 10.3.2.2 0.1.2 Treated identically to references
Payload loading control 10.3.2.2 🚧 No mechanism to exclude payloads
Payload time offsets 10.3.2.2.2 main Same composition as references; unloaded payloads' offsets are ignored. Value-resolution application pending.
Inherits 10.3.2.3 0.2.0 Including implied inherit propagation
Inherit namespace mapping (with identity) 10.3.2.3.1 0.3.0 from_pair_identity adds (/, /) catch-all
Specializes 10.3.2.4 0.2.0
Specializes global weakness 10.4.1 0.3.0 Stable-partition reorders specialize-introduced nodes after all others
Variants 10.3.2.5 0.2.0 Including deferred evaluation after R/P
Variant selection computation 10.3.2.5.1 0.2.0 Strongest opinion wins, fallback to first variant
Variant fallback map 10.3.2.5.1 0.3.0 VariantFallbackMap via StageBuilder
Relocates 10.3.2.6 0.3.0 layerRelocates, source path resolution, child remapping
Relocates validation rules 10.3.2.6 🚧 7 restriction checks not enforced
Relocates namespace mapping 10.3.2.6.1 0.3.0 Composed with reference arc mappings
LIVERPS strength ordering 10.4 0.3.0 ArcType with Ord derived from discriminant
Namespace mappings (MapFunction) 10.5 0.3.0 Compose, inverse, longest-prefix matching
Composition errors (non-fatal) 10.6 0.3.0 pcp::Error with StageBuilder::on_error callback
List op arc computation 10.3.2 0.2.0 Weakest-to-strongest list-op chaining

Stage Population (Spec 11)

Feature Spec Status Version Notes
Composed stage 11.2 0.2.0 Stage::open with depth-first traversal
Populating the stage 11.3 0.2.0 Lazy per-prim composition via pcp::Cache
Population mask 11.3 🚧 No subset-of-prims loading
Ordered prim children 11.3.1 0.2.0 Merged primChildren with relocate adjustment
Ordered prim children (primOrder reordering) 11.3.1 🚧 primOrder field not applied
Ordered property children 11.3.2 0.2.0 Merged propertyChildren
Ordered property children (propertyOrder reordering) 11.3.2 🚧 propertyOrder field not applied
Scene graph instancing 11.3.3 🚧 instanceable readable; shared representation not implemented
Model hierarchy (kind) 11.4 🚧 kind readable; hierarchy validation not implemented
Stage queries (Active, Loaded, Defined, Abstract, Instance) 11.5 🚧 Predicate flags for traversal filtering
Session layer 11.2 0.3.0 StageBuilder::session_layer

Value Resolution (Spec 12)

Feature Spec Status Version Notes
Metadata resolution (strongest opinion wins) 12.2 0.2.0 PrimIndex::resolve_field with ValueBlock support
Specifier resolution 12.2.1 🚧 Special rules for def/over/class not fully implemented
typeName resolution (from prim definition) 12.2.2 🚧 Uses strongest opinion, not prim definition
variability resolution (weakest opinion) 12.2.3 🚧 Uses strongest opinion instead of weakest
custom field resolution (any-true) 12.2.4 🚧 Uses strongest opinion instead of any-true
Dictionary combining 12.2.5 🚧 Recursive merge across opinions
List op resolution 12.2.6 0.2.0 Combined stack of opinions
Layer metadata (root layer only) 12.2.7 0.2.0 defaultPrim, timing fields, etc.
Fallback values 12.2.8 🚧 Requires schema registry
Attribute resolution 12.3 0.2.0 timeSamples, default, ValueBlock
Attribute resolution (with time) 12.3 0.1.2 Time sample lookup
Spline evaluation 12.5.3 🚧 Bezier/Hermite curve interpolation
Interpolation (Held) 12.5.1 🚧 Not implemented at stage level
Interpolation (Linear) 12.5.2 🚧 Not implemented at stage level
Value clips 12.3 🚧 clips/clipSets for split time samples
Relationship targets (raw + forwarded) 12.4 🚧 targetPaths readable; forwarding not implemented
Attribute connections 12.4 🚧 connectionPaths readable; not resolved

Schemas (Spec 13)

Feature Spec Status Version Notes
Schema registry 13.3 🚧 Type hierarchy, prim definitions
Typed schemas (IsA) 13.3.1 🚧 typeName readable; registry not implemented
Applied schemas (HasA) 13.3.2 🚧 apiSchemas readable; definitions not loaded
Schema inclusions (built-ins, auto-applies) 13.3.2.1 🚧
Prim definitions (property fallbacks) 13.3 🚧
Core schema types 13.4 🚧
Value type names 13.3 🚧 Attribute type validation
Extension metadata fields (fallbackPrimTypes, apiSchemas, clips, clipSets) 13.2 🚧 Fields readable; semantics not applied
Schema codegen 13.3 🚧 Generate typed APIs from schema definitions

Color (Spec 14)

Feature Spec Status Version Notes
Supported color spaces 14.1 🤔
Core metadata extensions (colorSpace) 14.2 🤔
ColorSpaceDefinitionAPI 14.3 🤔

Collections (Spec 15)

Feature Spec Status Version Notes
CollectionAPI 15.1 🚧
Authoring and evaluating collections 15.2 🚧

Core File Formats (Spec 16)

Feature Spec Status Version Notes
USDA (text) reading 16.2 0.1.4 Recursive descent parser with logos tokenizer
USDA (text) writing 16.2 main usda::TextWriter; round-trips the compliance suite opinion-for-opinion
USDC (binary) reading 16.3 0.1.1 Crate format with LZ4/integer compression
USDC (binary) writing 16.3 main usdc::CrateWriter; streaming packer with integer compression, LZ4 blocks, DFS path encoder
USDZ (package) reading 16.4 0.2.0 ZIP-based package reader
USDZ (package) writing 16.4 main usdz::ArchiveWriter; STORED-only, 64-byte aligned entries
Format auto-detection (.usd) 16.1 0.2.0 Magic byte detection

Beyond Core Spec

Features from the C++ reference implementation not covered by the core specification.

Feature Status Version Notes
Variable expressions 0.2.0 13 built-in functions, string interpolation (expr module)
Parallelism (Rayon) 🚧 Composition graph is &-only, ready for parallel execution
Incremental invalidation 🤔 Dependency tracking and change processing
UsdGeom (geometry, transforms, cameras) 🚧
UsdShade (materials, shaders) 🚧
UsdLux (lighting) 🚧
UsdSkel (skeletons, skinning) 🚧
UsdVol (volumes) 🚧
UsdPhysics 🚧
UsdRender 🚧
UsdMedia, UsdUI, UsdProc 🚧
Flatten / export 🚧
Namespace editing 🚧
Native instancing (shared representation) 🚧
Stage cache 🤔 Avoid redundant stage loading
Kind registry 🤔 Model/group/assembly/component taxonomy
Edit targets 🤔 Direct opinions to a specific layer
Change notification 🤔 Listeners for live scene updates
Property stack queries 🤔 Inspect all contributing opinions across layers

Tooling

Feature Status Notes
usdcat (print/convert) 🚧
usdtree (hierarchy printing) 🤔
usddiff (layer diffing) 🤔
usdchecker (validation) 🤔
usdzip (USDZ packaging) 🤔
usdGenSchema (schema codegen) 🚧