--- title: "Visual Asset Pipeline" description: "Visual pipeline index — 3D models, textures, and flat 2D artwork (D-244)" type: design status: active --- # Visual Asset Pipeline Status: **Active** — catalog structure instantiated (T-1050); first models promoted (T-1204); textures/artwork/effects production still pending. Per **[D-244](../../../governance/decisions/architecture.md#d-244)**: the in-world view renders **3D objects directly**. The only flattened 2D content is **textures** (PBR maps on 3D surfaces) and **flat 2D artwork** (paintings, flags, billboards, signage) applied as textures/decals on flat surfaces *within* the 3D world. **There is no per-object sprite layer** — game objects are not pre-rendered to sprites. ## Categories | Category | File | Count | Description | |----------|------|-------|-------------| | Models | [models.md](models.md) | 4 | 3D objects/props (`.glb`) via Trellis (`/glb-gen`), promoted per [D-241] | | Characters | — | — | 3D meshes composited at runtime via `CharacterVisualDescriptor` — see [character-asset-organization.md](../../architecture/character-asset-organization.md) | | Textures | [textures.md](textures.md) | 0 | PBR surface maps (BaseColor / Normal / Roughness) for 3D models | | Artwork | [artwork.md](artwork.md) | 0 | Flat 2D art — paintings, flags, billboards, signage, screen content — applied as textures/decals (via the `/sprite-gen` 2D-artwork generator) | | Icons | [icons.md](icons.md) | 13 | UI icons, status indicators (2D, UI layer only) — as-built inventory of `client/assets/icons/` | | Effects | [effects.md](effects.md) | 0 | Shaders, particles, overlays | Naming, mask-sidecar, D-235-keyed texture, and multi-tile footprint conventions: [conventions.md](conventions.md). ## Per-Class Briefs Each asset class entering production is gated on a one-page brief — [../briefs/](../briefs/) — covering scope, visual reference, naming, generation path, and acceptance (template: [../_templates/asset-brief.md](../_templates/asset-brief.md)). Briefed this batch (T-1049): [station walls](../briefs/station-walls.md), [rural walls](../briefs/rural-walls.md), [doors](../briefs/doors.md), [floors](../briefs/floors.md), [furniture/props](../briefs/furniture-props.md). Formally deferred (not briefed): lamp posts, TVs, billboards, barns, cars — see [../briefs/deferred.md](../briefs/deferred.md). ## Palette See [palette.md](palette.md) for art direction: camera (D-148 gameplay / D-019 offline-render), the toon-vs-PBR rendering treatment for environment props, the D-235 ObjectTag color/material register, and entity colour relationships (D-033). ## Pipeline - **3D objects / props:** concept image (`/image-gen`) → Trellis image→3D (`/glb-gen`) → `.glb` → promoted to `client/assets/models/`. - **Characters:** Quaternius source meshes, segmented + rigged, composited at runtime from slots (`CharacterVisualDescriptor`); see the character-asset doc. - **Textures:** PBR maps authored/generated for 3D surfaces. - **2D artwork** (paintings / flags / billboards / signage): the `/sprite-gen` **2D-artwork generator** → flat PNG → applied as a texture/decal on a flat surface in the 3D world. ## Decision References - **[D-244](../../../governance/decisions/architecture.md#d-244):** 3D objects in-world; 2D limited to textures + flat artwork. - D-159–D-164: character 3D pipeline. D-241: asset promotion. - D-019: top-down camera, "the angle". D-033: entity colour = relationship to player. D-045: environmental neutrality.