1
0

feat: the boards stop being three products

The owner asked twice why there are still three separate boards. The honest
answer, and what this round executes: **it feels like three boards, but not
because the scale jumps 20x — because the three packs draw three different
Californias, and the loudest difference is that the mountains are four times
taller on one of them.**

**THE 20x HORIZONTAL SCALE JUMP IS INVISIBLE**, and measuring that collapsed the
cost of this whole round. `World.project` is a uniform scale in x/z with no
vertical term, and a uniform scale leaves a perspective image identical — so a
camera carried across the seam on matched true-metre offsets draws a
pixel-identical horizontal frame. 1,919 -> 94 m/unit costs nothing to look at.
Rescaling was never the problem. A boot card, a tab strip and a 4.17x vertical
deflation were.

**THE PAUSE WAS MOSTLY FAKE.** A switch covered the screen for 1,715 ms but only
608 ms blocked the main thread; the page drew 46 of 69 frames with nothing to
show, because the outgoing board had already been disposed. `mountCity` now
retains it: the incoming board builds BEHIND a live, interactive picture, and
`stage.setScene` fires only on completion. Measured across all six directions,
three runs each — boot card yes -> **no**, opaque cover 726-1,415 ms -> **0**,
blank frames 21-46 -> **exactly 1**, wall clock down 12-29%, blocked main thread
down 15-47%. A return to a board already seen links **zero** shader programs and
blocks **zero** milliseconds: 298-312 ms of camera flight where it was ~1,600 ms
behind a card. Disposal had been throwing away the shader cache too — linkProgram
ran 38, 59, 78, 109, 127 across five mounts and never reused one.

**The transition is a fog dip, not a crossfade**, through the `setAerialFog` seam
built last round. Every both-boards-live crossfade breaks a budget — ca+sf is
2,640,307 triangles against bay-area's 2,600,000 cap — and a fade never lands
inside the harness's sample window, which is the "a cap you do not measure is a
cap you do not have" failure this repo already argues against. The dip costs zero
triangles and zero draw calls, and it hides the 4.17x deflation, the 4,025 m
projection disagreement and the vanishing 2 km freeway symbols at once, because
all three happen at maximum obscuration. It is also diegetic: a descent through
haze.

The first dip was wrong and the photograph caught it: collapsing to 6% of board
SPAN turned the whole night frame into one flat field — the exact "turns the map
off" failure the risk list named. Re-anchored to 70% of camera STAND-OFF, so the
coastline survives and only the relief melts.

**One ladder, one places list.** 26 authored chapters become 24 rungs sorted
descending by STAND-OFF, not altitude — by altitude they interleave badly and
altitude cannot tell a low oblique from a high plan. The three-board tab strip is
off by default; the left column is now one scrolling list of all 24 rungs under
three region headings that does not change when the board does. Only which row is
lit changes. Label collisions are resolved in the ladder and never in a pack, so
the 29 index-aimed capture guards are untouched.

The minimap stops turning through 90 degrees between boards: every board is
pinned to a rectangle with California's proportions.

**SF and SoCal are not regressed**, and that was the acceptance that mattered:
95.9-98.8% of board pixels are delta-0 against a baseline hash-verified identical
to what the live site serves, and every one of the 34-70 surviving pixels per
frame is an aircraft or a hull.

**A real defect found only by photograph:** `minimap.setMarkers()` had zero call
sites. Every marker on every board was gone — the LA studio's door dot, the Bay
Area's eight company markers — dropped when the minimap went per-board.
Typecheck, tests, budgets and the console were all green with that bug in.

Also fixed: two capture presets that lied. `look.mjs`'s `glyph-la` and `glyph-sf`
claimed California chapter closeups and returned SoCal and Bay Area frames,
because they aimed by chapter index and the indices had moved. Aiming is now by
identity, with a guard test.

NOT SHIPPED, DELIBERATELY: the pack merge. At Bay density it is 34.04M triangles,
13x the highest budget — dead, not a trade. At SoCal density it is 1.99M and fits
today, and the price is San Francisco rendering at 164 m lots instead of 40 m,
i.e. SF looking the way SoCal looks now. SF and SoCal carry every marketing still
on the site. That is the owner's decision and it is worthless as an argument and
decisive as a photograph, so it ships as a measurement artifact with a
side-by-side still and is wired into nothing. The four data reconciliations that
would make one world honest — one exaggeration rule, roads in metres, one
projection centre, one coastline convention — are behind TERA_RECONCILE, default
OFF.

Tests 1,570 -> 1,651, server 295. All ten budget cells pass, no cap raised.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-23 06:20:18 -07:00
parent bcac6aa41a
commit 4bd8481be1
32 changed files with 6628 additions and 264 deletions
+99
View File
@@ -842,6 +842,105 @@ under ground standing 3 to 15 units above it is a hole, not a lake. The Salton
Sea works because it really is below sea level. Each polygon is also its own
draw call, and the California mobile cell is the tightest in the project.
### 12.4 Three packs draw three Californias, and what one would cost
The complaint this section answers is "why does it still feel like three
boards", and the first thing to record is the measurement that removes the
obvious suspect: **the 20× horizontal scale jump at the seam is invisible.**
`World.project` is a uniform scale in x/z with no vertical term, and a uniform
scale leaves a perspective image identical, so a camera carried across the seam
on matched true-metre offsets draws a pixel-identical horizontal frame. 1,919 →
94 m per unit costs nothing to look at. Rescaling was never the problem.
What is visible is that the three packs disagree, in data, about what California
looks like. `src/cities/reconcile.ts` holds four rules that replace those
disagreements with one authored constant each, behind `?reconcile=` and **off by
default**, because San Francisco and Southern California carry every marketing
still on lumbridgecorp.com and a photograph is the only instrument that can say
whether a rule made a board better.
| | rule | california | sf | socal |
| --- | --- | --- | --- | --- |
| (a) `verticalExaggeration` | `RELIEF_IN_FRAME` = 0.0724, peak units over span | 15 → **15.00** | 3.6 → **5.78** | 3.4 → **3.41** |
| (b) road width | true metres, floored at `LEGIBLE_SPAN_FRACTION` = 0.000199 of span | 1,9192,034 m → **212 m** | 1932 m → **unchanged** | 3155 m → **unchanged** |
| (c) `coastFalloff` | `COAST_RAMP_CELLS` = 0.8 × the coarse ground cell | 0.0250° → **0.0250°** | 0.0018° → **0.0032°** | 0.0045° → **0.0058°** |
| (c) palette | one family, mixed by how far south and how far inland the board reaches | **unchanged** | mix 0.05 | mix 0.77 |
| (d) `lngScale` | one `REFERENCE_LAT` = 37.3° for every board | **unchanged** | 87,990 → 88,552 m/° | 92,484 → **88,552** m/° |
Three of the four leave the state board exactly where §12.1's photograph put it,
and that is not luck: each constant is taken *off* California, which is the board
this document already tuned against a picture. What the rules then say is that
**San Francisco is the board that is out of family** — 1.6× too flat for its own
span, and the only pack with no palette at all.
Four things worth writing down so they are not re-derived:
- **The relief rule narrows the seam step; it does not close it.** Apparent
relief at a *matched* pose is proportional to the exaggeration itself, not to
relief-in-frame, so the rule takes California → Bay Area from 4.17× to 2.60×
and leaves California → Southern California at 4.4×, because those two were
already on one number. Making it 1.0× means one exaggeration everywhere, which
puts the state at 1.7% of its own frame. Relief-in-frame and matched-pose
relief are the same quantity only for boards of the same span.
- **The relief rule moves buildings too, and on a metro board the buildings are
the subject.** §12.1's argument that a taller exaggeration makes towers a
*smaller* fraction of the frame holds only because California's span grew in
the same change. San Francisco's span does not move, so the Financial District
comes out 1.60× taller in an unchanged frame — measured and photographed, and
the one place where (a) makes a board arguably worse rather than better. It is
the sub-item most likely to be reverted or split into a separate building
term.
- **The road floor was measured, not chosen.** The two metro packs, authored
separately, put their narrowest road at 0.00019940 and 0.00020356 of their own
span. The floor sits just under the tighter of the two, so neither metro board
moves and California's two-kilometre freeway symbols fall onto it.
- **The projection rule costs local aspect.** Southern California draws 4.25%
narrower in x at 37.3° than at its own 33.82°, and San Francisco 0.64% wider,
against a registration error that goes from 4,010 m to **zero by
construction**.
Measured with the flag on, against the flag off: California is identical on
every layer to the digit; the Bay Area gains 10.8% of terrain triangles and 1.0%
of building instances; Southern California loses 4.3% of instances with the
narrower board. No cap is approached, let alone raised.
### 12.5 The merge, priced
`scripts/merge-feasibility.mjs` builds the statewide merged pack in node and
counts it. It is a measurement artifact: no board id, no route, nothing wired
into the product.
A lot is `LOT = 0.42` **scene units**, so how much ground a building stands on is
decided entirely by the board's metres-per-unit — 40 m on the Bay Area, 164 m on
Southern California, 806 m on the state. A merged board must pick one:
| density | lot | extent | instances | triangles | vs the 2.6M desktop cap |
| --- | --- | --- | --- | --- | --- |
| Southern California | 164 m | 2,380 × 2,722 u | 93,253 | 1,119,036 | 0.43× |
| Southern California, all 116 districts | 164 m | 2,380 × 2,722 u | 165,417 | 1,985,004 | 0.76× |
| Bay Area | 40 m | 9,856 × 11,269 u | 1,599,401 | 19,192,812 | 7.4× |
| Bay Area, all 116 districts | 40 m | 9,856 × 11,269 u | 2,829,753 | 33,957,036 | 13.1× |
The two rows per density differ by one judgement: whether the state pack's own
coarse Bay Area and Los Angeles districts are dropped where a metro pack already
draws that ground. They should be — but both are printed, because a number
quoted without saying which one it is has already produced a 1.8× disagreement
inside this round's own brief. Terrain adds 75,996 triangles on California's
existing 3,473 m cell; it is the cheap half.
So **Bay Area density is dead** and **Southern California density fits**, and its
price is that San Francisco is drawn the way Southern California is drawn now.
That price is a picture and not an argument: `merge-sf-40m-vs-164m.png` is the
Financial District at 40 m lots beside the same frame at 164 m, and downtown
stops being a skyline. The still varies `LOT` in a throwaway tree under `/tmp`
rather than `latScale`, so the camera, the terrain and every chapter pose are
held constant and lot size is the only variable.
One measurement is noise and is labelled as such: instance and triangle counts
are deterministic to the digit across runs, and placement milliseconds on this
box span 323 to 1,989 ms for the same 93,253 lots.
## 13. Four layers, one seam, and two gates each
The port kit, the ships, the reflectivity raster and the migration field arrived