doors.md now presents D-231's actual struct shape (initial_state Open/Closed/Locked/Sealed; TemporalWindow lives in the independent credential field) and attaches the Phase-5 runtime bridge to initial_state only. furniture-props.md inventories all five spike GLBs — acceptance is 4 promotable (3 furniture + lion_statue), vw_beetle explicitly excluded to the Q-067 deferral. deferred.md + station-walls gain the axis-completeness note: roof/facade/street textures ride the wall-brief convention as a same-family follow-on, so the register accounts for all four D-235 axes. The briefing's D-257 pointer corrected to palette.md §2.1–2.2, and both the briefing and palette.md (leave-cleaner, gap inherited from PR #211) now carry D-154's amendment to D-033 — relationship colors display only in the insert/perception overlay; normal gameplay is a uniform #1a1a1a outline (D-150). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
101 lines
4.9 KiB
Markdown
101 lines
4.9 KiB
Markdown
---
|
||
title: "Asset Brief — Station Walls"
|
||
description: "Building-exterior wall models/textures for station (urban/industrial) settlements — D-235 wall axis"
|
||
type: design
|
||
status: active
|
||
ticket: ""
|
||
decision_refs: [D-235, D-244, D-257]
|
||
author: "Araminta"
|
||
created: 2026-07-25
|
||
updated: 2026-07-25
|
||
---
|
||
|
||
# Asset Brief — Station Walls
|
||
|
||
One page. Gates its child story — the story does not enter `in_progress`
|
||
without this brief attached.
|
||
|
||
---
|
||
|
||
## 1. Scope
|
||
|
||
Building-exterior **wall** surfaces for station/urban/industrial settlement
|
||
types — the D-235 `WallMaterial` axis, specifically the tags a station-type
|
||
template's `allow` filter selects (`concrete_wall`, `steel_frame`,
|
||
`glass_curtain_wall`, `composite_panel` — the "built infrastructure" register,
|
||
not the rural/vernacular tags owned by the sibling `rural-walls.md` brief).
|
||
This is **prior-art territory**: `wall_structural.tscn`
|
||
(`renderer/models/wall_structural.tscn`) already exists as an unrendered GLB,
|
||
plus rendered PNG samples at `docs/workshops/art-direction-mood-board/
|
||
pipeline-samples/wall_structural_south_{64,256,1024}.png` and the promoted
|
||
sprite set at `client/assets/sprites/wall_structural_{north,south,east,west}
|
||
_64.png` — all pre-D-244, sprite-era output. This brief's job is to re-run
|
||
that same wall through the current 3D-model pipeline (D-244), not sprite
|
||
renders, and register it as the class's first manifest entry. Out of scope:
|
||
rural walls (timber/stone/rammed-earth vernacular), doors, floors — separate
|
||
briefs. Also out of scope, but a natural same-family follow-on once this
|
||
brief's pattern is proven: the other three D-235 building-exterior axes —
|
||
`RoofForm`, `FacadeRhythm`, `StreetSurface` — which ride this brief's own
|
||
`<object_tag>_<map_type>.png` texture convention (`conventions.md` §3) and
|
||
already have `palette.md` §3.2–§3.4 register rows; see `deferred.md`'s axis-
|
||
completeness note.
|
||
|
||
## 2. Visual Reference
|
||
|
||
`palette.md` §3.1 rows for `concrete_wall`, `steel_frame`,
|
||
`glass_curtain_wall`, `composite_panel` — warm-leaning neutral greys (never
|
||
cool-grey), fine aggregate speckle / riveted-joint / seam-grid textures per
|
||
tag, D-217 weathering ladder per row. `glass_curtain_wall` is the §2.1
|
||
minimal-PBR carve-out (roughness 0.05–0.2, controlled specular) — every other
|
||
tag in this set stays flat toon (`roughness=1.0`/`specular=0.0`,
|
||
`postprocess_glb.py::setup_materials()` default). `generic_wall` (§3.5) is the
|
||
flat neutral-grey, no-grain fallback terminal for whichever specific tag
|
||
hasn't shipped yet.
|
||
|
||
## 3. Naming
|
||
|
||
Model: `<category>_<descriptor>.glb` — this class is a building-exterior
|
||
surface, so it more commonly ships as a **texture**, not a standalone prop:
|
||
`concrete_wall_basecolor.png` / `_normal.png` / `_roughness.png`
|
||
(`conventions.md` §3), plus `generic_wall_basecolor.png` as the fallback
|
||
placeholder. If a standalone wall-segment **model** is also produced (as
|
||
`wall_structural` already is, pending re-promotion), it follows §1's
|
||
`<category>_<descriptor>.glb` (e.g. `wall_structural_concrete.glb`) with a
|
||
`<model>_mask.png` sidecar only if a tintable variant is needed (most station
|
||
walls are not tinted — material register drives color, not player-favorite
|
||
tint). No `footprint_tiles` metadata applies to a wall texture; a wall
|
||
*segment model*, if produced, is single-tile.
|
||
|
||
## 4. Generation Path
|
||
|
||
Standard path: `/image-gen` (toon-shaded concept, 3/4 front view, near-white
|
||
base) → `/glb-gen` (Trellis) → Blender postprocess → promotion into
|
||
`client/assets/models/props/` (a wall segment is a `props`-category model
|
||
per `conventions.md` §1's category-is-manifest-authoritative rule) +
|
||
`manifest.json` entry. If shipping as a standalone **texture** instead
|
||
(the more likely first deliverable, since walls are usually a tiled surface
|
||
not a discrete mesh), the target file is `textures.md`, not `models.md` —
|
||
author a flat concept via `/image-gen` at the material's hue/grain per §2,
|
||
no Trellis step needed for a pure 2D PBR map.
|
||
|
||
## 5. Acceptance
|
||
|
||
3 starter assets enter `models.md`/`textures.md` + `manifest.json` (as
|
||
applicable) at `planned`: (1) `generic_wall` fallback placeholder texture —
|
||
flat neutral grey, no grain, per palette.md §3.5 — **milestone-0 IF Q-119
|
||
resolves yes** (not resolved here); (2) `concrete_wall` texture, the most
|
||
common station tag; (3) re-promotion of the existing `wall_structural` model
|
||
through the current (non-sprite) pipeline, closing out the only piece of
|
||
partial prior art this class has. Status flips to `in-progress`/`final` as
|
||
each is actually produced.
|
||
|
||
---
|
||
|
||
## Cross-References
|
||
|
||
- `docs/assets/visual/conventions.md` §1, §3 — model naming, D-235-keyed texture naming
|
||
- `docs/assets/visual/palette.md` §2, §3.1 — toon/PBR treatment, wall material register
|
||
- `docs/assets/visual/models.md`, `docs/assets/visual/textures.md` — target catalogs
|
||
- `client/assets/models/manifest.json`
|
||
- `renderer/models/wall_structural.tscn` — existing unrendered prior art (this class)
|