> [!abstract] Summary > Glossary of the essential USD terms — **Attribute**, **Def**, **Instance**, **Kind**, **Layer**, **Opinion**, **Payload**, **Point Instance**, **Prim**, **Primvar**, **Reference**, **Purpose**, **Specifier**, **Stage**, **SubLayer**, **Variant**, **Xform**. Short, self-contained definitions with code examples. Summary by **BHGC**. > [!info] Source > A summary of USD terms by BHGC. --- ## Attribute A **name and value** that describe an aspect of a prim. For example, a `Sphere` prim could have an attribute named `radius` with a value of `5`. ## Def Defines a prim. `def` is one of the three USD specifiers (see [[#Specifier]]). ```usda def Sphere "my_sphere" { int radius = 5 } ``` ## Instance A **memory-efficient copy** of a prim. In this example, we create an instance of `pawn.usd` by setting `instanceable = true`: ```usda def Xform "instance" ( instanceable = true references = @pawn.usd@ ) { } ``` ## Kind Used to set **relationships between geometries**. There are four kinds: `group`, `assembly`, `component`, and `subcomponent`. Example hierarchy organized by kind: ``` Trees (group) └── Maple (assembly) ├── Trunk (component) └── Leaves (component) ├── Leaf (subcomponent) └── Leaf (subcomponent) └── Oak (assembly) ├── Trunk (component) └── Leaves (component) ├── Leaf (subcomponent) └── Leaf (subcomponent) ``` ## Layer A **collection of prims**. You could have a layer for geometry, one for lighting, one for materials, etc. Layers enable **non-destructive editing** — any change to existing prims can be stored in a different layer. A stage always consists of at least one layer. ## Opinion An **assignment of a value** to any prim. When we say `my_sphere` has a `radius` of `5`, we are expressing an **opinion** about `my_sphere`'s radius. Other layers can override this opinion if theirs is stronger. Opinion strength, from strongest to weakest, follows the **LIVRPS** order: - **L**ocal - **I**nherits - **V**ariants - **R**eferences - **P**ayloads - **S**pecializes ## Payload A reference that can be **disabled or enabled manually**. Disabling a payload improves memory usage and scene performance while editing. ## Point Instance The **most memory-efficient form of instancing** in USD. Instanced copies are scattered to points on a mesh with varying position, rotation, scale, etc. ## Prim The **basic building block of USD**. Anything can be a prim: a mesh, a light, a material, an empty container, and more. ## Primvar An **attribute intended for rendering-related data**. Primvars are declared with the `primvars:` prefix. For example, `primvars:st` is the USD equivalent of **UVs**. ## Reference A **layer loaded from disk** (or, sometimes, from elsewhere in an already-loaded layer). A reference can be placed at any position in the scene hierarchy. ```usda def Xform "pawn" ( references = @pawn.usd@ ) { } ``` ## Purpose Defines **when a prim is displayed**. Four purposes are available: `default`, `guide`, `proxy`, `render`. Geometry tagged as `proxy` would not show up in final renders. Prims can have multiple purposes. ## Specifier Three specifiers exist in USD: - **`def`** — defines a prim. - **`over`** — creates an override of a prim's values. - **`class`** — more abstract, not necessary for end-users and artists. ## Stage A stage is created when **all layers are combined** (or "composed," in USD terminology) to form the final scene. ## SubLayer A type of reference placed **directly into the root of a stage**, stacking on top of other sublayers. ## Variant An **alternate version of a prim** that can be switched to at will. For example, you might create Variant Sets with different materials on your geometry, or different lighting setups in your scene. ## Xform A **container prim** that allows transformation of all its children. For example, you could define an Xform called `chess_board` and put all the chess board component meshes inside, then move, rotate and scale the entire board by modifying the Xform. --- # 🔗 Related - [[6.30 USD Theory]] — how these terms fit together in a USD pipeline. - [[USD From 0 to pro - L4 WS]] — extended explanations of prims, layers, stage and properties. - [[USD Extension]] — file-format flavors where these prims live. - [[USD MOC]]