From 8f364231b45c75d2607519417be57a9f6a3fbb98 Mon Sep 17 00:00:00 2001 From: Cameron Date: Thu, 9 Jul 2026 22:17:09 -0700 Subject: [PATCH] Capture the dark frame: material render shows only light MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit New spec wiki/interface/material-dark-frame.md (READY) from Cameron's 2026-07-09 screenshot feedback: the material opening frame is a close-up of the core in a dark basement — blueprint/remembered mass stops drawing in the material render (plan knowledge stays in the F3 flat sensorium), the tick-zero rig drops the institutional overhead so machine light is the scene light, powered owned machines cast soft amber floor pools, the default material camera anchors close on attention instead of fitting the known extent, and a dev-only work light (debug key + worklight shot stage) floods the scene for geometry work. The ruled claim-ring square leaves the material frame; the map-zoom claim mark is the recorded [OPEN]. Pointer amendments in material-render.md, flat-materials.md, bevy-visual-floor.md, computer-visual-language.md; ledgers appended. Defense: capture-only amendment of the binding interface specs. material-dark-frame.md now owns the material-mode blueprint clause and default framing (amending material-render.md's fog-contract sentence and bevy-visual-floor.md's composition default) and the close-range claim read (amending computer-visual-language.md's ring decision). No code changes; implementation is a separate work order against the new spec's acceptance criteria. --- wiki/SUMMARY.md | 1 + wiki/interface/bevy-visual-floor.md | 6 + wiki/interface/computer-visual-language.md | 29 +++-- wiki/interface/flat-materials.md | 8 +- wiki/interface/material-dark-frame.md | 137 +++++++++++++++++++++ wiki/interface/material-render.md | 9 ++ wiki/log/DEVLOG.md | 14 +++ wiki/log/decisions/2026-07-09.md | 22 ++++ wiki/process/specs.md | 1 + 9 files changed, 217 insertions(+), 10 deletions(-) create mode 100644 wiki/interface/material-dark-frame.md 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 | -- 2.51.2