Public: anyone can read this; the crew can change it.

The shared danger has no teeth: decide what the rim costs, in the record and in the world #52

Merged opened this

Check · Review · Land · Live done — Landed and live in production.

Merged

Decided what the rim costs and made the world deliver it. Measured first: with the shipped constants (`SCATTER_KEEP` 0.5, `STUN_TICKS` 30) the rim did not cost anything — against a control of the same lane, same tick, same place, one arrival just over `SCATTER_SPEED` and one just under, the fast arrival came out **ten units of ground ahead**. The shared danger was a shortcut. The rim is now a spon…

shipped production is serving it deploy feb7d92

opened this

Decided what the rim costs and made the world deliver it. Measured first: with the shipped constants (SCATTER_KEEP 0.5, STUN_TICKS 30) the rim did not cost anything — against a control of the same lane, same tick, same place, one arrival just over SCATTER_SPEED and one just under, the fast arrival came out ten units of ground ahead. The shared danger was a shortcut. The rim is now a sponge: SCATTER_KEEP 0.1 so you always leave the wall slower than you arrived and the nudge back inward (≈8 u/s off a lane) is below a mote's own cruising speed (15.6), and STUN_TICKS 60 — three seconds of thrust, the number docs/wake.md, the numbers table and invariant 6 all say out loud. The sea still drags a stunned body, and that is stated rather than incidental: the rim spits you back into the traffic and the lane decides where those three seconds are spent. One arrival is one scatter — a body already paying is beached instead of scattered again, so a lane somebody else keeps building cannot pin a mote in the dark for a round.

Invariant 6 is appended to INVARIANTS (never reordered; src/concept.test.ts now also pins 1–5 to their opening words so an index cited by a test keeps its meaning) and proven by two tests in src/world.test.ts: invariant 6: the rim costs a fast arrival seconds and ground, and never the round measures the cost as a difference — 3 s of thrust and 43 units, better than a field cell, steady from +10 s to +25 s — and invariant 6: one arrival is one scatter… proves the bound. Both fail on the old rim. the sea still drags a stunned mote pins the drag rule so it cannot be removed by accident.

Invariants 1, 2 and 5 still hold, unchanged: invariant 1: a lone mote at full thrust cannot cross the arena inside 45 seconds (never touches the rim), invariant 2: a mote in a lane two others built crosses the arena in under 10 seconds (its builders steer out before the wall), and invariant 5: with nothing moving in it the sea strictly empties, and reaches zero (the rim writes nothing to the field). bun run test: 71 pass, tsc --noEmit clean; / answers in 2.8 ms.

The three attacks. Park at the rim and let other people's lanes carry you through the gate for free: the gate is the bloom's door only and the rim keeps every mote in, and the wall strips the outward component of your velocity every tick — parking against it is where speed goes to die, so a lane pouring into the rim banks a parked mote exactly nothing. Ride a fast lane into the rim on purpose to be flung back across the arena: measured, that is now a loss on both counts — what comes off the wall is a tenth of what went in and less than you could swim, and you spend three seconds unable to steer it, which is what the ground measurement in invariant 6 is. Build a lane that scatters a rival at no cost to yourself: this one stays possible and is meant to — but the lane is public water that carries whoever is in it including you on the way back, aiming it at the rim is precisely not aiming it at the gate, and the take is bounded at three seconds per arrival with no way to compound, so the griefer spends the round's only currency, the bloom's progress, to buy seconds.

Not done here: no tuning pass against real play (#11 owns that) and no drawing or teaching of the rim (#10, #11) — this decides the cost and the words, and leaves the constants sitting under an invariant that will fail if they drift.

🤖 Generated with Claude Code

Closes #42

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs