docs(composer): the composer runs once per season, offline -- so it can take all night

Second half of the design session. The realisation that resets the whole cost
budget: everyone shares one seed per season, so there is exactly one world per
season and the composer never runs on a player's machine. It runs once, on a
build box. Not "fast enough for a loading screen" -- "runs overnight". It can
generate a thousand candidates, keep eight, and let Jahni veto the season before
it publishes. What ships is the seed plus the chosen parameter vectors.

The measurement pass itself is one coarse grid and one flood fill, producing one
feature vector that serves validation, danger and rarity at once. Noted the one
place coarse sampling can lie -- a wall thinner than the sample spacing makes
sealed spaces look connected, which would pass the primordial-law check on an
impassable strate. Coarse to find the route, full resolution to confirm it.

And the answer to "how do we ever judge what's good": the judge is the corpus,
not a model. Good never gets defined, only collected -- strate-level thumbs
up/down, player behaviour, and best of all where players choose to snapshot
their home, which is an ungameable "I love this place" that costs nothing to
collect. Known risk written down: promote only what you already liked and the
system converges on a comfortable middle.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DPUuCtn5zTLui6WybLbkNb
This commit is contained in:
Fr0zkaandClaude Opus 5 committed 2026-08-23 13:05:59 +02:00
1 parent d8f7dabee8
commit eae7e68caf
1 file changed
+59
+59
View File
@@ -700,3 +700,62 @@ discovered ops, discovered strates, discovered parameter regions. It is the spin
throwaway — the debug beacon **is** the real solution in programmer art. The placement logic is throwaway — the debug beacon **is** the real solution in programmer art. The placement logic is
identical; only delivery changes later (light spilling from the passage, a draft, a shift in identical; only delivery changes later (light spilling from the passage, a draft, a shift in
ambience). Build the ugly version; ship a reskin. ambience). Build the ugly version; ship a reskin.
---
## 2026-08-17 — the MEASUREMENT PASS (and how "good" ever gets judged)
### ⭐ The reframe that sets the budget: the composer runs ONCE PER SEASON, OFFLINE
Everyone shares one seed per season ⇒ there is exactly **one world per season, ever** ⇒ the composer
never runs on a player's machine and never runs at load. It runs once, on Jahni's box or a build
machine. **The problem is not "fast enough for a loading screen", it is "runs overnight."** So it can:
- generate a thousand candidate strates, measure them all, keep the best eight;
- validate at any resolution it likes;
- later run a model over the candidates at **zero runtime cost to anyone**;
- ⭐ **let Jahni review the world before publishing the season.** The system does the work; he keeps a
veto. Costs nothing because it is all offline anyway.
**What ships is small:** the season's seed + the chosen strates' parameter vectors. Clients generate
terrain from those exactly as today. **No runtime composition anywhere.**
### The pass itself: ONE coarse grid + ONE flood fill → one feature vector → three jobs
Sample the candidate into a coarse voxel grid (a few boxes at hash-chosen XY within its Z band), flood
fill the air once, derive everything from that grid. A 4–8× downsample preserves all of it.
**Validation (is it garbage?):** air fraction · **largest connected component share** (low = swiss
cheese: sealed pockets nobody reaches = generation paid for and never seen) · walkable surface (air
above, solid below, survivable slope) · **feature scale** (median distance-transform of the air —
catches "noise fog", structures smaller than a few voxels read as static not rock) · vertical
clearance · **entrance→exit reachability** (the primordial law, as a number).
**Danger (same grid, different questions):** fall exposure (walkable surface with a long drop beside
it) · **openness** (mean distance to solid from walkable positions — sightlines and room to retreat,
which is most of what makes a fight good or "blergh") · traversal mix (walk/climb/swim) · **tortuosity**
(path length ÷ straight-line — maze-likeness).
**Rarity:** nothing new — the vector of all the above, distance from the corpus centroid.
⚠️ **Coarse sampling can LIE about connectivity.** A wall thinner than the sample spacing vanishes and
two sealed spaces look joined ⇒ a strate could pass the primordial-law check while being impassable.
The one metric where a false pass is dangerous. **Fix: coarse to FIND the route, then re-verify that
one path at full resolution.** Cheap — only the corridor you found.
**This is the same tool as F1** (`fable-idea.md`'s top-pick 2D world-preview): the measurement pass
with a visualisation on top. Build the measurement, get the preview nearly free — and it's needed
anyway for reviewing a season before publishing.
### Judging "good" — Jahni is right to doubt, but the judge is the CORPUS, not a model
Measurements catch **broken**, not **boring**. The gap is narrower than it looks because *good* never
has to be defined — only **collected**:
- **Rate at the STRATE level, not the world level.** Twenty candidates, thumbs up/down = twenty labels
in minutes; a hundred in an evening. Approved ones join the corpus and become blend parents.
**This loop works with ZERO machine learning.** A model only makes it faster, later.
- **Player behaviour in a live season** — lingering, revisiting, rushing past. Free telemetry, but
careful: time spent can mean *fascinating* or *lost and furious*.
- ⭐ **Where players choose to SNAPSHOT THEIR HOME.** An unambiguous "I love this place", no UI, no
prompt, ungameable. The strongest quality signal in the design, and it costs nothing.
⚠️ **Known risk: convergence to a comfortable middle.** Promote only what you already liked, keep
blending near the corpus, and the system slowly stops surprising you. Same failure mode as the
build-vote pool, same counter: keep extrapolating past the corpus, and keep some unrated weird
candidates in circulation.