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 and assembly 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 of component 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 an inherits 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 primary component that may reference other external component models. Used as an alternative to nesting components as subcomponents.

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 or assembly 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 _. For ASCII, this is usually the regular expression ([A-Za-z_]+[A-Za-z_0-9]*). For UTF-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.

Detailed References#