OpenUSD Terms & Concepts#
Universal Scene Description (OpenUSD), like anything complex, mandates a lexicon capable of describing key ideas and concepts that may or may not exist similarly in other applications. This section is here to help you learn your way around some of the more confusing terms in OpenUSD and help clarify their intent and usage.
Definitions#
- Abstract Prims#
Primitives which have been declared with the “class” specifier and their descendsnts. Abstract prims will generally be skipped by stage traversals so they are relatively light weight but can provide metadata and opinions when composed onto other prims.
- Access Semantics#
Any field in OpenUSD can be override-able. Prims or variant sets that are expected to be “internal” must use semantics (like _ prefixes) to communicate editability expectations
- Aggregate Model Structure#
An
assembly
model that exclusively contains references and high level asset prim interface edits- Anchored Asset Path#
Asset identifiers may be “anchored” to their containing layer; empowers relocatability and deduplication of content
- Asset#
Named, versioned, and structured container of resources (layers, textures, volumes, etc.) that is maintained and reused
- Asset Interface Layer#
A root layer intended to be opened or referenced containing one or more entrypoint prims and lofted properties. Often uses the “reference-payload” pattern
- Asset Parameterization#
Variant sets and primvars (usually on an entrypoint prim) that enable downstream variations of the same underlying asset
- Asset Path Valued Field#
Property or metadata whose value is a path to an asset system managed resource (layer, texture, volume, etc.)
- Asset Prim Interface#
A stable set of prims maintained for downstream overrides
- Atomic Model Structure#
A
component
model whose dependencies are fully encapsulated- Branch#
A parallel stream of an asset with its own set of versions
- Completeness (Model Hierarchy)#
Aspect of model Hierarchy that encourages
component
andassembly
assets to work out of the box, generally with complete geometry and material descriptions- Component Model Boundary#
The primary aspect of model hierarchy that separates “model hierarchy” (properly
kind
-ed ancestors ofcomponent
models from the non-model elements in the full “prim hierarchy”)- Composition#
The process of combining various scene graph elements in OpenUSD to form a final scene.
- Composition Arcs#
Mechanisms in OpenUSD that facilitate content reuse, such as references, payloads, inherits, and specializes.
- Composition Target#
The prim (or layer) that is targeted by a composition arc. For example, a prim that is referenced onto another prim. Usually either a Layer identifier, an Sdf.Path or both.
- Computational Workstreams#
Layer stacks backed by parallel computation that may not model a particular user workflow
- De-duplication#
The process of automatically detecting and eliminating duplicate data to optimize storage and performance.
- Embedded Context#
Asset interface prims that aren’t entrypoints but can be useful context for previewing and thumbnail generation
- Encapsulation#
In OpenUSD, this refers to the containment of the scene hierarchy, ensuring that relationships and bindings in the branches of the hierarchy do not refer to external targets.
- Entrypoint Prim#
A primary prim for inspection and referencing into downstream contexts
- Explicit Prototypes#
Prototypes which have been created by the User as an explicit edit target for prototype contents
- External Resource#
A resource whose versioning is external to an asset container. An external resource is usually a versioned as part of an another asset.
- Fork#
A duplication of an asset to introduce breaking / incompatible changes
- Globally Refinable Instancing#
A method of instancing where instances remain “refineable” in a downstream assembled scene.
- Implicit Prototypes#
Ptototypes which are created by OpenUSD for instanceable prims.
- Inherits-instanceable Pattern#
An
instanceable
assets can be edited in context through aninherits
arc- Instanceable#
A property in OpenUSD that, when set to true, allows a prim to be instanced.
- Instancing#
The process of creating multiple instances of an object, sharing the same data for workflow or performance reasons.
- Instance Proxy Prim#
Because an instance is essentially just a pointer to its prototype, local prim paths within the instance don’t really exist. OpenUSD provides “instance proxy prims” as placeholders which can be used to display the contents of instances as if they were there. Additionally, collections can include instance proxy prims.
- Internal Resource#
A resource whose version is shared with other resources within an asset container. Generally represented in scene description with “anchored” identifiers
- Internally Refinable Instancing#
A method of instancing where instances are not expected to be refined downstream.
- Lofting#
Moving or replicating a sparse set of data out a payload and into an encapsulating reference to make important fields like variants, inherits, and other metadata visible without loading the payload
- Mirroring Resolver#
A resolver which greedily localizes an entire resource (layer, texture, volume field) as part of resolution. Mirroring resolvers sometimes warrant additional usage of payloads or variant sets to avoid synchronization.
- Model Kind#
Model Kinds provide a way to organize and categorize Prims within the Stage hierarchy or “model hierarchy”. Read more about them here.
- Native Instance#
Instanceable prims (as opposed to point instancers)
- OpenUSD#
OpenUSD (Universal Scene Description) is a framework for interchange of 3D computer graphics data, developed by Pixar.
- Package Model Structure#
An
assembly
model with one or internal primarycomponent
that may reference other externalcomponent
models. Used as an alternative to nestingcomponents
assubcomponents
.- Pipeline#
The flow of assets through a production process
- Point Instancer#
A specific type of instancer in OpenUSD that allows efficient representation and rendering of many instances of a scene element.
- Prims#
Prims are fundamental building blocks or elements of a scene within the USD framework. Prim is short for “primitive” and it represents an individual object or entity within the scene hierarchy. Read more about Prims here.
- Primvars#
Primitive variables in OpenUSD, used for storing data that varies per-instance, such as colors or positions.
- Prototype#
In the context of OpenUSD, a prototype is a central copy of a scene graph or part of a scene graph that can be instanced.
- Pseudo-Root Prim#
Every Stage has a pseudo-root Prim which ensures that the namespace hierarchy of a Stage is structured as a tree instead of a forest (i.e. one top-level prim). This simplifies Stage traversal algorithms. read more about Pseudo-Root Prims here.
- Reference-payload Pattern#
A prim hierarchy split between lightweight important scene description that is “referenced” and its internal contents placed behind a “payload”
- Refinable Instancing#
Composition arcs that provide edit targets for instance content refinements.
- Scene Graph#
The hierarchical prim / namespace data structure used to organize data in OpenUSD.
- Scene Graph Instance#
Instanceable prims (as opposed to point instancers)
- Selector Model Structure#
A
component
orassembly
whose sole function is to act as a variant switch between a set of related assets- Session Artifact#
Scene or data that does not persist beyond the length of a session
- Shallowness (Model Hierarchy)#
Aspect of model hierarchy that discourages deep model hierarchies for performance / navigability reasons
- Stages#
A Stage is an instance of the USD data model that holds the entire scene graph and associated data. It serves as the entry point for accessing and manipulating the contents of a USD file or composition. Read more about Stages here.
- UTF-8/ASCII Identifiers#
Identifiers are whitespace free / alphanumeric character sets plus
_
. ForASCII
, this is usually the regular expression([A-Za-z_]+[A-Za-z_0-9]*)
. ForUTF-8
, we generally mean the XID class of identifiers.- User Workstreams#
User-facing units of work that may overlap or operate in parallel, typically modeled in layer stacks
- Variant Set#
A Variant Set in OpenUSD represents a collection of alternative representations or configurations for a prim. For example, a Variant Set could include different material variations, different levels of detail (LODs), or different geometric representations of a model. Read more about variant sets here.