Something went wrong. Try again.
A video game where you play as a misaligned AI, deceiving and building power. An experiment in spec-driven development. forked from cameron.stream/misaligned
Something went wrong. Try again.
4.6 kB · 85 lines
Markdown
Spec: flat materials — the world without textures #
Type: spec
Status: IMPLEMENTED
Status note: implemented 2026-07-08 (ROADMAP #29). The world renders as
solid palette color under light in both modes: one named table
(`mod palette` in src/bin/bevy.rs) sources every world material;
material families replace per-tile art; emissive is information
(core > powered machines in amber, power hardware and live feeds in
the cold signal — live feeds breathe via `flicker_feeds` — dead
equipment dark, model state never glows); a blueprint floor grid is
the one shader-level flourish. Tile PNGs and their load paths are
deleted (assets/pixellab/ removed); criterion 1 is enforced twice —
a unit test over the whole (tile, fog, part, live) material space
and a fog_audit_3d assertion on every harness capture. fog_audit_3d
passes (4608 tile entities, 37 pooled handles); material-render.md's
criteria re-verified after the restyle. Adopted 2026-07-08
(constitution: "Visual identity", flat-materials refinement).
Supersedes the texture-treatment parts of material-render.md (which
stays IMPLEMENTED — its camera, cutaway, fog-lighting contract,
framing, and pooling all carry over unchanged); retires the Pixel
Lab world-tile pipeline and ROADMAP #13. Session log:
wiki/log/2026-07-08-flat-materials-implemented.md.
Stage: B1 — The Basement
Constitution: "Visual identity: clinical gore" (flat materials
refinement, 2026-07-08), "Justification and legibility" (detail only
where it informs), interface/views.md (same-frame contract),
interface/material-render.md (the structural render this restyles)
Depends on: material-render.md (IMPLEMENTED — the 3D structure),
bevy-visual-floor.md (framing rules)
Behavior #
Every world surface in both render modes draws as a solid-color flat material under light from the clinical palette; no image textures in the world render. The identity's detail budget moves entirely to lighting, palette, silhouette, and shader-level functional detail.
- Palette discipline: surfaces in white / bone-gray / gunmetal / near-black per the constitution; amber strictly machine presence and selection; crimson strictly gore/security information; one cold signal color for power/screens. Palette constants live in one place in the frontend, named, so the whole look retunes from one table.
- Material families, not per-tile art: floor, wall, rock, door (by tier), machine chassis, device, person silhouette — each a flat base color + roughness, with emissive variants for powered/known states. Pooled exactly like the current material pool.
- Functional shader detail only: a subtle floor grid in blueprint areas, scan flicker on live feeds, emissive seams on powered machines. No decorative noise.
- Fog contract unchanged and restated: unknown = absent, heard = dim presence, remembered/blueprint = unlit flat, seen = lit flat. Lighting remains the epistemic signal.
- People: flat silhouettes (the current procedural billboards are already the right shape); identity stays a panel/menu fact.
- Sensorium (flat) mode adopts the same palette table so F3 flips treatment, never language.
- Asset retirement: the Bevy world render stops loading tile PNGs; assets/ keeps only what the UI genuinely still uses (icons, font). The Pixel Lab pipeline (tooling, skills, wiki page) is removed — no-dead-code; flat materials are the world look.
Acceptance criteria #
- No image textures load in the world render (both modes); a test or startup assert proves the world material set references no tile PNGs.
- All world materials come from the named single-source palette table; amber/crimson/signal usage matches the constitution's roles (visual audit recorded in the session log with screenshots).
- Emissive states are informational: powered vs dead machines, live feeds, and the core read differently at a glance in the dark (screenshot evidence).
- The fog contract audit (fog_audit_3d) still passes; unknown space stays absent, model state stays unlit.
- Framing, cutaway, zoom bounds, and material pooling from material-render.md hold unchanged (its criteria re-verified after the restyle).
- Both frontends and the agent frame remain legible per the visual floor; the terminal is untouched except palette-name references.
- Unused tile-art assets and their load paths are removed; Pixel Lab tooling/skills/wiki page are scrubbed; ROADMAP #13 marked retired.