Files
settled-reach/docs/assets/briefs/station-walls.md
T
jpmschweitzerandClaude Fable 5 660f4a703f docs(assets): PR #213 review fixes — DoorSpec fields, spike inventory, axis honesty, D-154
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>
2026-07-25 23:10:09 +02:00

101 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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)