> [!abstract] Summary > **Scope** prims are **organisational containers** in the scene graph — they cannot store their own transforms but keep the tree tidy. Typical use: one Scope per department (`/Lighting`, `/Environment`, `/Characters`) for clean organisation. Inherits and passes ancestor transforms unchanged — effectively a guaranteed no-op transform. --- # Scope - **Scope primitives** are useful for creating **"organising" branches** that keep the scene-graph tree tidy: - `/models/...` - `/materials/...` - `/collections/...` - `/lights/...` - Scopes **do not store their own transforms**, but they **inherit and pass on** transforms from their ancestors. Think of it as a **guaranteed no-op transform**. --- # Department-per-Scope Pattern A reliable production pattern is to organise every asset under **at least one scope per department**: ``` /world ├── /world/Lighting ← Scope ├── /world/Environment ← Scope │ ├── /world/Environment/Trees ← Scope │ └── /world/Environment/Rocks ← Scope ├── /world/Characters ← Scope │ ├── /world/Characters/Hero ← Xform (has transform) │ └── /world/Characters/Crowd ← Scope └── /world/FX ← Scope ``` Benefits: - **Department-level visibility toggles** — hide an entire department at once. - **Department-level overrides** — author opinions on a Scope path to affect all descendants. - **Layer routing** — write `/world/Lighting/*` to one layer, `/world/Environment/*` to another. --- # Scope vs Xform | | **Scope** | **Xform** | |---|---|---| | Has transform? | ❌ No | ✅ Yes | | Inherits ancestor transform? | ✅ Yes (no-op) | ✅ Yes | | Use for | Organisation only | Anything that moves | --- # 🔗 Related - [[../SOLARIS MOC|SOLARIS MOC]]. - [[SOLARIS Primitive Node|SOLARIS Primitive Node]] — create Scopes explicitly. - [[../SCENE GRAPH/SOLARIS PrimType|SOLARIS PrimType]] — Scope vs Xform vs Kind. - [[../../../../PROTOCOL/USD/Notes/USD KNOWLEDGE/USD terms and definitions|USD Terms & Definitions]] — Specifier, Prim.