diff --git a/wiki/SUMMARY.md b/wiki/SUMMARY.md index 29c886c..e7127dc 100644 --- a/wiki/SUMMARY.md +++ b/wiki/SUMMARY.md @@ -76,6 +76,7 @@ - [Continuous witness (narration)](interface/narration.md) - [Material render](interface/material-render.md) - [Flat materials](interface/flat-materials.md) + - [The dark frame](interface/material-dark-frame.md) - [Computer visual language](interface/computer-visual-language.md) - [Agent play](interface/agent-play.md) - [The public site](interface/site.md) diff --git a/wiki/interface/bevy-visual-floor.md b/wiki/interface/bevy-visual-floor.md index dfa8fce..7a1fdbc 100644 --- a/wiki/interface/bevy-visual-floor.md +++ b/wiki/interface/bevy-visual-floor.md @@ -74,6 +74,12 @@ missing scene. Use a near-black substrate, vignette, subtle grid/noise, or edge falloff that carries no factual tile information. The player should understand: "I am blind here," not "the game forgot to draw here." +(Amended 2026-07-09: this fit-to-known-content default composition now +governs the **flat sensorium** camera. The material render's default +frame is the attention close-up owned by +[material-dark-frame.md](material-dark-frame.md); the deliberate-frame +and sensor-darkness requirements above still bind it in spirit.) + ### Cursor: attention, not avatar The always-visible marker is the frontend cursor from cursor.md. It must read diff --git a/wiki/interface/computer-visual-language.md b/wiki/interface/computer-visual-language.md index 05ecfe7..5598a61 100644 --- a/wiki/interface/computer-visual-language.md +++ b/wiki/interface/computer-visual-language.md @@ -39,6 +39,9 @@ Status note: implemented 2026-07-09 (ROADMAP #32) after the same-day Operations, replacing Social (decided 2026-07-09): the chassis library and tester say operations; the sim's MachineMode enum still says Social pending its own rename work order — the render maps it. + 2026-07-09 dark-frame amendment (material-dark-frame.md): the ruled + claim ring leaves the material frame; the close-range claim read is + the machine's cast amber pool, and the map-zoom mark is [OPEN]. Stage: B1 — The Basement Design: - wiki/art/visual-identity.md#visual-identity-clinical-gore @@ -108,10 +111,13 @@ carried folds into the strip. frame still carries the amount. Exact hues, dash counts, fill multipliers are [TUNE] against tester renders. -3. **Claim ring** (decided 2026-07-08) — an amber underglow frame on - the floor under owned machines, double frame under the core. The - *tile* is claimed, not just the box; it survives map zoom where - chassis detail dies, and it ports to any chassis shape. +3. **Claim floor** (amended 2026-07-09, dark-frame feedback) — at + game camera the claim read on the floor is the machine's own **cast + amber pool**: a soft gradient from the chassis foot into darkness, + never a ruled edge ([material-dark-frame.md](material-dark-frame.md) + owns the pool). The ruled underglow frame (ring, decided + 2026-07-08) is removed from the material frame; whether it returns + at map zoom is [OPEN] — see "The claim mark" below. 4. **Core light** (core only, amended 2026-07-09) — the core carries the world's only full-height *amber* light, and three lines of it: the amber strip (front and back of the seam) plus a spine up both @@ -137,7 +143,7 @@ chassis is inert *matter*, the cold pinpricks say it is switched on. Strong teal stays in reserve as a future accent for something that earns it. -## The claim mark — DECIDED: ring +## The claim mark — ring at close range SUPERSEDED by the cast pool Decided 2026-07-08 from the tester lineup renders: **ring** — an amber underglow frame on the floor under owned machines, double frame under @@ -148,9 +154,16 @@ weak mid-zoom read); painting foreign machines' activity amber (breaks amber = mine); a floating icon/billboard (breaks diegesis — the world is the AI's sensorium model, signals live on the hardware). -With ownership now also in the chassis albedo, the ring's job narrows -to the map-zoom and mixed-tile read; the two channels agree everywhere -(white chassis iff amber ring). +Amended 2026-07-09 (Cameron, screenshot feedback captured in +[material-dark-frame.md](material-dark-frame.md)): in the material +render the ruled frame reads as UI painted on a physical floor, and it +is gone — the close-range claim read is the white chassis plus the +soft amber pool its own light casts. With ownership also in the +chassis albedo, the only job left to a drawn mark is the map-zoom / +mixed-tile read, and that is [OPEN]: brightened pool alone, ring +beyond a zoom threshold, or map-zoom territory as a flat-sensorium +job. The dark-frame spec proposes pool-alone with ring-at-distance as +the fallback. ## Acceptance criteria (when READY -> IMPLEMENTED) diff --git a/wiki/interface/flat-materials.md b/wiki/interface/flat-materials.md index 00f22df..02fb79e 100644 --- a/wiki/interface/flat-materials.md +++ b/wiki/interface/flat-materials.md @@ -55,13 +55,17 @@ lighting, palette, silhouette, and shader-level functional detail. 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 + areas (flat sensorium only since the 2026-07-09 dark-frame + amendment), scan flicker on live feeds, emissive seams on powered machines, and the Heard **noise field** (bone presence pulses / event rings — informational, never decorative texture). No decorative noise. - **Fog contract unchanged and restated:** unknown = absent, heard = noise-field presence (no room shape), remembered/blueprint = unlit flat, seen = lit flat. Lighting remains the epistemic signal for - sight; hearing speaks in bone pulses instead. + sight; hearing speaks in bone pulses instead. (Amended 2026-07-09: + the unlit-blueprint treatment is the flat sensorium's; in the + material render blueprint mass is absent — + [material-dark-frame.md](material-dark-frame.md) owns that clause.) - **People:** flat silhouettes under camera coverage (the current procedural billboards are already the right shape); under mic-only coverage, a bone presence marker — never the silhouette. Identity diff --git a/wiki/interface/material-dark-frame.md b/wiki/interface/material-dark-frame.md new file mode 100644 index 0000000..5437d49 --- /dev/null +++ b/wiki/interface/material-dark-frame.md @@ -0,0 +1,137 @@ +# Spec: the dark frame — the material render shows only light + +``` +Type: spec +Status: READY +Status note: captured 2026-07-09 from Cameron's screenshot feedback on + the material opening frame ("zoomed in real close to the server, no + squares/room definition, lighting togglable for dev work, soft glow + on the floor from the servers"). Implementation is a separate work + order. The map-zoom claim mark is the one [OPEN] left here. +Stage: B1 — The Basement +Design: + - wiki/art/visual-identity.md#visual-identity-clinical-gore + - wiki/vision/simulation-laws.md#justification-and-legibility + - wiki/interface/presence.md#two-views-of-one-world-same-frame-digital-and-real-representations +Depends on: material-render.md (IMPLEMENTED — camera, cutaway, pooling; + this spec amends its material-mode blueprint clause and default + framing), flat-materials.md (IMPLEMENTED — palette table, emissive as + information), bevy-visual-floor.md (framing floor; the deliberate- + frame and sensor-darkness spirit binds, the fit-to-known-content + default is superseded for the material camera), + computer-visual-language.md (claim mark; the close-range claim read + moves to the cast pool), views.md (F3 flat sensorium keeps the + schematic read) +``` + +## Why this spec exists + +The first material frame currently reads as a debug viewport: gray +blueprint slabs float in the void, a ruled amber double square sits +under the core like painted UI, and the camera fits the whole known +extent so the one interesting object — the rack — is a distant prop. +Cameron's direction (2026-07-09, from the screenshot): the opening shot +is a **close-up of the server in a dark basement**, nothing but the +machine and the light it throws on the floor. The material render is a +camera, and a camera photographs light, not floor plans. + +## Behavior + +### Light is the only revealer + +In the material render, geometry draws only where sight earns it and +light reaches it: + +- **Unknown** stays absent (unchanged). +- **Blueprint / remembered** mass no longer draws in the material + render at all — no slabs, no silhouettes, no blueprint floor grid. + Plan knowledge is schematic knowledge; it reads in the flat + sensorium (F3) and in overlays, never as physical matter the camera + did not see. This amends the fog contract's material-mode clause + (was: unlit-but-visible); the flat sensorium keeps unlit blueprint + exactly as it is. +- **Heard** keeps the noise field (bone pulses, never shape) — + unchanged. +- **Seen** geometry draws lit, and reads only as far as scene light + actually carries. Owned chassis legitimized by telemetry keep + rendering (they are their own light). + +The fog audit follows the amendment: in material mode it asserts +blueprint mass is absent; flat mode keeps the unlit-blueprint assert. +The digital overlay (reach traces, reticle, intents) still draws over +darkness — knowing *where* a device is without seeing the room is +exactly the fiction. + +### The dark rig + +The tick-zero light rig is the machines' own light and a near-nothing +ambient — the institutional fluorescent overhead is gone from the +default scene. The basement is dark because nobody is home and the AI +does not need lights; brightness returns to the frame only as diegetic +sources earn it (future work orders, not this one). Exposure/ambient +levels are [TUNE]: the darkness must read as a physically dark room on +camera, not a missing scene. + +### The dev work light + +Development needs to see geometry that the fiction keeps dark, so the +material render carries a **work light**: one toggle that floods the +scene with flat neutral light (every mesh inspectable, albedo +readable, no mood). It is a dev affordance, not a player surface — a +debug keybind plus a shot-harness stage (`worklight`), excluded from +canonical screenshots except explicitly-labeled dev captures. Toggling +it off restores the dark rig exactly. + +### The soft pool — machine light on the floor + +Every powered owned machine casts a **soft amber pool on the floor +around it** — a gradient falloff from the chassis foot into darkness, +never a ruled edge. The core's linear fixture (computer-visual- +language.md matte calibration) already shapes this pool; this spec +makes the pool the *point* of the floor treatment: at close zoom, the +claim read is white chassis + the amber light it throws. The ruled +underglow frame (the claim ring's double square) is removed from the +material frame — it is the most prominent "square" in the current +opening shot and it reads as UI painted on a physical floor. + +[OPEN — map-zoom claim mark]: the ring was decided (2026-07-08) for +the map-zoom read, where chassis detail and light pools die. Options: +(a) the pool alone, brightened at distance; (b) the ring returns only +beyond a zoom threshold; (c) territory at map zoom becomes a flat- +sensorium job entirely. Default proposal is (a), falling back to (b) +if distance screenshots prove the pool illegible. + +### The opening frame + +The default material camera anchors to attention (the cursor, which +opens on the core) at a **close** distance: the rack and its floor +pool dominate the frame, the rest is dark. Fit-to-known-content is +retired as the material camera's default framing driver — the known +extent is a plan fact, and the plan no longer drives the camera. Zoom +bounds retune around the close default; zooming out reveals more only +where light exists, so the wide frame reads as lit pools in darkness, +never as a schematic. The bevy-visual-floor rules still bind in +spirit: the frame is deliberate, and darkness is sensor/physical +darkness, never a missing scene. + +## Acceptance criteria + +1. A fresh run's first material frame is the close-up: the core rack + and its floor pool dominate; no room slab, no floor grid, no + blueprint silhouette, and no ruled amber frame appear anywhere in + the frame (screenshot in the session log). +2. Blueprint/remembered mass draws in the flat sensorium only; the + material-mode fog audit asserts blueprint absence and passes. +3. Powered owned machines cast a soft-gradient amber pool on the + floor with no hard edge; presence still audits in grayscale by + luminance (screenshot evidence). +4. The work light: one debug toggle floods the material scene flat + and neutral; toggling back restores the dark rig exactly; a + `worklight` harness stage captures the pair (dev shot pair in the + session log, labeled as dev-only). +5. Zoom bounds hold around the close default: the maximum zoom-out + never resurrects plan geometry and still reads as lit pools in + darkness (bounds screenshots). +6. The flat sensorium, terminal, and agent frame are unchanged except + the fog-audit split in criterion 2; no surface gains a fact light + did not earn (the material render strictly loses unearned facts). diff --git a/wiki/interface/material-render.md b/wiki/interface/material-render.md index 45edd1f..aa4b132 100644 --- a/wiki/interface/material-render.md +++ b/wiki/interface/material-render.md @@ -21,6 +21,11 @@ Status note: implemented 2026-07-08 — the material render is the Bevy by solid palette color; the structural criteria (cutaway, caps, framing, fog contract, pooling, default view) were re-verified after the restyle — fog_audit_3d green, zoom-bound screenshots retaken. + 2026-07-09 dark-frame amendment (material-dark-frame.md): in the + material render, blueprint/remembered mass is absent (not unlit) and + the default framing is the attention close-up, not + fit-to-known-content; that spec owns both clauses now. The flat + sensorium keeps unlit blueprint; everything else here carries over. Stage: B1 — The Basement Design: - wiki/interface/presence.md#two-views-of-one-world-same-frame-digital-and-real-representations @@ -38,6 +43,10 @@ are paid; the flat sensorium render remains the digital-layer treatment and the terminal remains first-class. The prototype's fog contract is law: unknown space is absent geometry, blueprint/remembered surfaces render unlit, only camera-seen surfaces participate in lighting. +(Amended 2026-07-09: in the *material* render blueprint/remembered mass +no longer draws at all — [material-dark-frame.md](material-dark-frame.md) +owns that clause; unlit blueprint remains the flat sensorium's +treatment.) ## The debts (from the prototype findings) diff --git a/wiki/log/DEVLOG.md b/wiki/log/DEVLOG.md index 0d67aff..7f97da0 100644 --- a/wiki/log/DEVLOG.md +++ b/wiki/log/DEVLOG.md @@ -31,6 +31,20 @@ Reverse chronological implementation notes. Keep this factual: what changed, why 3 Act One integration tests, agent smoke, clippy both feature sets, Bevy build, corpus and wiki gates); observed agent-mode stall -> execute -> sight. - Log: wiki/log/2026-07-09-claim-camera-demand.md. +## 2026-07-09 - Dark-frame capture (spec only) + +- Intent: Cameron's screenshot feedback on the material opening frame — + close on the server, no squares/room definition, dev-togglable + lighting, soft floor glow from the servers. +- Changed: new spec wiki/interface/material-dark-frame.md (READY, + implementation dispatched separately): blueprint mass absent in the + material render, dark tick-zero rig, attention-close default camera, + cast amber floor pools, dev work light. Pointer amendments in + material-render.md, flat-materials.md, bevy-visual-floor.md, and + computer-visual-language.md (ruled claim ring leaves the material + frame; map-zoom mark [OPEN]). Decisions volume 2026-07-09 appended. +- Checks: corpus gate + wiki gate (docs-only change). +- Log: entry only (capture session). ## 2026-07-09 - The core's light is a linear fixture diff --git a/wiki/log/decisions/2026-07-09.md b/wiki/log/decisions/2026-07-09.md index dfd335e..55d9e94 100644 --- a/wiki/log/decisions/2026-07-09.md +++ b/wiki/log/decisions/2026-07-09.md @@ -262,3 +262,25 @@ Type: log and bone cargo, crimson dust, all standing in darkness. Cable runs keep the amber-warm service floor. Amended into interface/flat-materials.md; applied in the game floor materials and the tester pedestal. +- **2026-07-09 — The dark frame: the material render shows only light.** + Cameron, from a screenshot of the opening frame: zoomed in real close + to the server, no squares/room definition, lighting togglable for dev + work, a soft glow on the floor from the servers. Captured as + `wiki/interface/material-dark-frame.md` (READY): blueprint/remembered + mass stops drawing in the material render entirely (plan knowledge is + the flat sensorium's job — F3), the tick-zero rig drops the + institutional fluorescent overhead so machine light is the scene + light, the default material camera anchors close on attention (the + core) instead of fitting the known extent, powered owned machines + cast a soft-gradient amber pool on the floor, and a dev-only work + light (debug key + `worklight` shot stage) floods the scene for + geometry work. The ruled claim-ring frame leaves the material frame — + at close range the claim read is white chassis + cast pool. Rejected: + unlit gray blueprint slabs in the material view (reads as a debug + viewport, the very failure bevy-visual-floor.md guards), keeping the + ruled underglow square (UI painted on a physical floor, and the most + prominent unwanted square in the shot), and fit-to-known-content as + the material camera's default (frames a plan fact, not the subject). + [OPEN]: the map-zoom claim mark — brightened pool alone, ring only + beyond a zoom threshold, or map-zoom territory as a flat-sensorium + read; dark-frame proposes pool-alone with ring-at-distance fallback. diff --git a/wiki/process/specs.md b/wiki/process/specs.md index 5001339..09e2e52 100644 --- a/wiki/process/specs.md +++ b/wiki/process/specs.md @@ -41,6 +41,7 @@ replaced the old `spec/`/`knowledge/` directory split. | [interface/material-render.md](../interface/material-render.md) | Material render (HD-2D) from landed toggle to default quality | IMPLEMENTED | | [interface/flat-materials.md](../interface/flat-materials.md) | Flat materials: the world without textures; palette table; emissive as information | IMPLEMENTED | | [interface/computer-visual-language.md](../interface/computer-visual-language.md) | Computer visual language: the shared signal kit (territory at a glance) | IMPLEMENTED | +| [interface/material-dark-frame.md](../interface/material-dark-frame.md) | The dark frame: material render shows only light; close opening shot, cast floor pools, dev work light | READY | | [mechanics/machine-work.md](../mechanics/machine-work.md) | Machine work: one mode per machine; visible work/byproduct tokens on the flow graph | IN PROGRESS | | [mechanics/people-tokens.md](../mechanics/people-tokens.md) | People and tokens: carriers, attention pickup, trust as absorbed influence | DRAFT | | [world/story/opening.md](../world/story/opening.md) | The dark opening: tutorial made of fog (wake, camera glow, switch, first link) | DRAFT |