Spec: the feel floor — rails, pads, and the build beam #
Type: spec
Status: IMPLEMENTED
Status note: implemented 2026-07-09 (ROADMAP #37). Tick-one no longer
seeds blueprint room topology; `Sim::feel_rail_segments` /
`growable_bays` / `FactSource::Feel` drive inspect + both frontends;
Bevy material draws shimmer rails/pads and a build-beam birth gesture;
terminal/agent paint feel midpoints and empty-bay `o` without room
shape. Same-day beam-first amendment: the first held material frame is
the host **presence beam** only (material-dark-frame.md) — rails/pads
are feel-light and must not paint a chassis or room plan before
sound/sight earn mass/form (#38). Amended 2026-07-09: the first issued
Voss job teaches the work route; pre-job opening frames expose neither
rails nor pads. Verified by `cargo test --lib` and
`cargo check --no-default-features --features bevy_ui --bin misaligned-bevy`.
2026-07-11 hall amendment: growable pads are exactly the three authored
pilot allocations around Rack 3. The other fifty-six sites contain live
foreign or dead Foundation chassis and never masquerade as empty pads.
2026-07-11 relay-composition amendment: close material rails are one
attention-local broken filament, not a doubled full-edge beam. The trace
holds near focus, tapers at junctions, and fades to nothing over distance;
moving attention along it reveals the next stretch. The flat sensorium
retains the complete schematic edge. An authored passive patch relay may
bend the material cable path without becoming a reach-graph node.
Stage: B1 — The Basement
Design:
- wiki/vision/simulation-laws.md#justification-and-legibility
- wiki/vision/simulation-laws.md#work-is-somewhere
- wiki/interface/presence.md#presence-the-cursor-and-the-senses
- wiki/interface/presence.md#two-views-of-one-world-same-frame-digital-and-real-representations
- wiki/art/visual-identity.md#visual-identity-clinical-gore
- wiki/gameplay/act-one.md#opening-state
Depends on:
- wiki/mechanics/reach.md#spec-digital-reach
- wiki/mechanics/cursor.md#spec-the-cursor-and-the-senses
- wiki/mechanics/machine-work.md#spec-machine-work-delegation-visible-tokens-and-the-byproduct-network
- wiki/mechanics/building.md#spec-building-intent-and-actuators
- wiki/interface/computer-visual-language.md#spec-computer-visual-language-territory-at-a-glance
- wiki/interface/material-dark-frame.md#spec-the-dark-frame-the-material-render-shows-only-light
- wiki/world/story/opening.md#spec-the-dark-opening-a-tutorial-made-of-fog
Dependency notes #
The structured references above identify the contracts to re-verify. Relationship context:
mechanics/reach.md (joined links you can feel), mechanics/cursor.md (telemetry; blueprint no longer seeds the open; audio channel / Seen form), mechanics/machine-work.md (work rides the same rails), mechanics/building.md (empty bays; placing a machine), interface/computer-visual-language.md (cast amber pool; chassis wrap when form is earned), interface/material-dark-frame.md (presence beam; material shows light, not plans), world/story/opening.md (dark opening beat 1)
Why this spec exists #
The opening used to hand you a blueprint — schematic room topology
and inspect tags like open bay [blueprint] — as if you already owned
a subnet floor plan. That fought the dark opening: you are a machine in
blackness with rack feel, not a facility diagram.
Cameron's replacement (2026-07-09): the basement floor becomes the diagram once work teaches it. Shimmery underfloor lines are the links you can feel. Shimmery pads mark empty bays where a server will stand. When you build, a thin beam rises from the pad and the chassis wraps it. No room slabs, no starting blueprint facts — light on the floor and the boxes that stand in it.
Behavior #
Feel rails #
Feel rails are shimmery lines on (or just under) the floor that trace only joined links you can feel — edges on your connection, the same graph work already travels.
- A rail exists iff the player has earned its first work-route read (the first Voss job) and can feel that hop (owned/joined path; proprioception of the wire, not sight of the room).
- Rails are the visible nervous system: track where demand and thought can travel. In-flight blips ride the same edges (machine-work.md).
- Cutting or losing a link kills its rail with it.
- Rails do not sketch foreign topology, unread rooms, or walls. They never punch a thick beam through drywall or doors as a light sculpture. Rejected 2026-07-09: wall-cutting showpiece beams — fun to show, wrong fantasy ("map as light show" instead of "my connection").
Exact shimmer treatment is [TUNE] (hue, pulse, thickness). Futurism lives in the living underfloor light, not in cutting architecture.
In the close material dialect, a felt edge is deliberately incomplete: one fine, irregular filament answers around the attention anchor and decays into darkness over several tiles. It must not render as parallel rails or a uniform laser all the way to a remote endpoint. Junctions taper before their shared anchor instead of welding into a bright hard corner. Moving attention along the trace reveals the next local stretch — the player can follow the signal without the frame drawing the complete answer. The flat sensorium is the diagrammatic dialect and may retain the complete edge.
Material routing may pass a direct digital edge through an authored passive fixture when the map owns that cable geography. In the Foundation hall, Rack 3 and the environmental monitor meet at the local patch relay before the onward leg continues to the network-closet switch. This is a physical waypoint only: it does not create another reachable device, alter graph gates, or move cargo between different graph nodes.
Empty-bay pads #
An empty bay you can grow into shows a shimmery floor pad — soft
light saying a server belongs here — not a labeled blueprint fact
(open bay [blueprint]).
- Pads are placement affordances, not room topology. They arrive with the earned work-route read, never as part of the opening frame.
- No chassis until built; the pad is the promise.
- Foreign empty slots you cannot feel stay dark (no intel, no pad).
- In the Foundation hall this is a deliberately scarce authored set: three pilot allocations, all near Rack 3. Adjacency to fifty-one live foreign racks does not make them growable; five dead chassis require SALVAGE and remain physical rack bodies rather than becoming floor pads.
The build beam #
When a machine is placed on a pad:
- A thin beam of light rises from the pad.
- The chassis wraps around the beam once form is earned (computer-visual-language.md ownership albedo and strip land with the box; material-dark-frame.md — same light family as the opening presence beam).
- The pad becomes the machine's cast amber pool (material-dark-frame.md); the beam is the birth gesture, not a permanent prop.
[TUNE] beam duration, height, and whether a brief afterimage remains.
Opening contract #
At the first held material frame (post-wake, pre-job) the read is the
host presence beam and its softest wash only — you are not aware of
your server as a chassis or the floor around it (material-dark-frame.md).
The first issued Voss job teaches the work route: only then may joined-hop
feel rails and empty-bay pads appear as subordinate feel-light. They never
outline a room or promote a pictured box. No blueprint room mass, no FOCUS
lines tagged [blueprint] for schematic bay/device names earned only from
the old subnet seed.
Blueprint as a fog grade may still exist later for plan knowledge earned another way (records, schedule, flat sensorium) — cursor.md and material-dark-frame.md own that split. It is not the opening seed and not the material-frame diagram.
Player surface #
- Material Bevy: rails, pads, and build beam are diegetic floor light.
- Flat sensorium / terminal / agent: the same feel-graph must be legible (line/glyph conventions), never as unearned room shape.
- FOCUS / inspect: feel-link and telemetry facts stay provenance-tagged; opening no longer dumps blueprint topology for the seeded subnet map.
Acceptance criteria #
- A fresh run's first held material frame shows the host presence beam (and softest wash) without a chassis, feel rails, or pads — no blueprint room slabs or floor-plan grid (screenshot in the session log).
- The first issued Voss job makes the work route legible: joined-hop rails
and empty owned/growable bays then read as shimmer pads, not
open bay [blueprint]inspect lines from a tick-one topology seed. - Placing a machine plays pad → rising beam → chassis wrap; the lasting floor read is the cast pool, not a permanent beam prop.
- Rails appear only for feel-joined links and vanish when the link dies; no rail sketches foreign or unfelt topology; no wall-cutting light sculpture through doors or drywall.
- Work-in-flight blips continue to ride the same edges the rails draw (one graph, two zoom reads).
- Terminal and agent surfaces expose the same feel-graph without inventing room geometry the material frame refused.
- The sixty-site data hall exposes exactly three feel pads after the route is earned. A foreign or dead rack never renders or inspects as an empty bay.
- At close material framing a long felt edge is a single broken filament strongest near attention, tapered at its endpoints, and fully absent at distance. Following it with the cursor reveals successive local stretches; the flat sensorium still exposes the complete felt edge.
- The Foundation material route passes both opening hall edges through the authored local patch relay and deduplicates their one onward segment. The shared reach graph still contains the original Rack 3/sensor-to-switch edges, and the switch remains in the network closet.