1
0
This repository has been archived on 2026-08-25. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
tera/CALIFORNIA.md
T
karti eeedfd7d6d feat: one California is the product, not a flag
Behind `?one=1` the merged board was something a visitor could not find
and did not get: the site still landed on the Bay Area, the left column
still offered two other boards, and clicking one still tore the board
down and built another. The board existed and the product did not change.

A bare URL is now one California. `?city=sf` and `?city=socal` still get
the dedicated boards, unchanged and on purpose — twenty-nine capture
guards and the `bay-area` and `socal` budget cells aim at those boards by
name and assert the `data-board` they land on, and a metro id falling
back to the merged board would not degrade them, it would make them
silently measure something else. `?one=0` forces the old arrangement, and
both `california` budget cells now pass it: their caps are the plain
state board's 440,000, and without it they would measure the merged board
that `california-one` already covers.

Also `CALIFORNIA.md`: what a single cohesive California is still missing,
measured rather than listed. Every district on the board by the latitude
of its centre is 1 / 23 / 26 / 1 / 2 / 54 across 32-37 N and **zero above
38 N** — 107 districts, 103 of them in two clusters four hundred
kilometres apart, and four hundred and fifty kilometres of northern
California with not one building on it. Eight airports, all Bay or LA.
Two ports, both in San Pedro Bay. Two freeways of twelve vertices each
across a thousand kilometres of state.

The scale is not the problem and the file says so first: the board is
32.50-42.05 N and -124.50 to -114.00 W at 1,919 m to the unit, every
feature on its real coordinate, nothing schematic. It is not too small.
It is empty.
2026-08-24 16:57:18 -07:00

185 lines
9.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Building out one California
What the merged board is missing, sized so it can be worked in parallel.
This is a **content** programme. It is deliberately separate from `TODO.md`,
which tracks engine work that is decided but not done: nothing below needs a new
mechanism, and every item is a data file somebody can write against a pack format
that already exists. The two do meet in one place, and the meeting is stated up
front so nobody starts at the wrong end — see "What has to come first".
---
## The scale is already right. The density is not.
Worth settling before anything else, because "make the map bigger" and "make the
map denser" are different jobs and only one of them is open.
The board runs **32.5042.05 N and 124.50 to 114.00 W** — the whole state, at
its true shape, on real latitude and longitude. `World.project` is a linear map
from degrees to scene units at 1,919 m to the unit, and every hill, district,
landmark, bridge, airport and port in every pack is placed by its real
coordinate. Nothing is schematic and nothing is squashed to fit. A board 554
units across is 1,063 km across, and that is a fact rather than a framing.
So the state is not too small. **It is empty above 38 N**, and this is the
measurement that says so — every district on the board, by the latitude of its
centre:
| band | districts |
| --- | --- |
| 32 N | 1 |
| 33 N | 23 |
| 34 N | 26 |
| 35 N | 1 |
| 36 N | 2 |
| 37 N | 54 |
| **3842 N** | **0** |
107 districts, and 103 of them are in two clusters four hundred kilometres
apart. The northern **four hundred and fifty kilometres of California has not one
building on it**, and the Central Valley between the clusters has three. The
state capital is absent. So is San Diego, Fresno, Bakersfield, Stockton, Redding
and Santa Rosa.
The same is true of everything else the board carries:
- **Airports — 8, all of them Bay or Los Angeles.** KSFO, KSJC, KLAX, KBUR,
KVNY, KLGB, KSNA, KONT. No Sacramento, no San Diego, no Oakland, no Fresno, no
Santa Barbara, no Palm Springs.
- **Ports — 2, both in San Pedro Bay.** USLAX and USLGB. No Oakland, no
Richmond, no San Diego, no Stockton, no Humboldt Bay, no Hueneme.
- **Freeways — 2 roads of 12 vertices each.** US-101 and I-5, as twelve-point
polylines across a thousand kilometres of state. That is roughly one bend
every ninety kilometres, which is why they read as a diagram rather than as
roads, and it is before the separate problem that the engine draws them 1,919 m
wide on purpose.
---
## What has to come first
**Two engine items gate the value of most of this, and both are measured and
written up in `TODO.md`.** Content added before them will be authored against
ground that is about to change and a budget that is about to stop being the
binding constraint.
1. **The relief ramp is landed (`d6dc307`) but unjudged.** Vertical exaggeration
now falls from 15x to 5.78x as the camera descends. Every judgement about how
a hill or a skyline reads is a judgement about relief, so wait until this has
been looked at before tuning heights.
2. **Cost does not track the view.** Measured with `scripts/cost-at.mjs`: the
merged board draws 355,759 triangles at 400 km and 329,392 at 2.5 km — flat,
because `createTerrain` is one mesh and the anonymous city is one
`InstancedMesh`, and `three` culls per object. Until the terrain and the lots
are chunked, **every district added anywhere is paid for everywhere**, and the
400,000 cap is reached by content that is nowhere near the camera. After it,
the cap stops being the reason a city cannot be dense.
The honest order is therefore: judge the ramp → chunk the terrain → chunk the
lots → then add the cities below at a lot size that is finally worth choosing.
**Coastline, hydrography, airports, ports and the freeway geometry are exempt**
they are cheap, they are not lot-limited, and they can be authored in parallel
starting now.
---
## The work, in parcels
Each parcel is one pack-format contribution, sized to be reviewable on its own.
`src/tools/poseEditor.ts` (godmode, `G`) emits paste-ready `Chapter` blocks,
which is what makes adding a place cheap; `src/cities/socal.ts` is the reference
for a multi-city region and `src/cities/sf.ts` for a dense one.
**Everything is traced by hand.** ARCHITECTURE.md §3.2 is the constraint and it
has not moved: OpenStreetMap is ODbL, ODbL is share-alike, and a share-alike
obligation cannot live in an Apache-2.0 repo — nor be discharged by serving it
from an API instead. Original expression, or a US-Government public-domain source
named in `NOTICE`. `scripts/check-no-binaries.mjs` enforces the other half.
### A. The Central Valley — the corridor the board already drives
The two freeway chapters run through it and there is nothing to see. Highest
value per district in the programme, because a visitor is already sent here.
- **Sacramento** — the capital, and the most visible single absence. A downtown
district, the Capitol as a landmark, the river confluence, Old Sacramento.
- **Stockton and Modesto** — Delta port town and valley grid.
- **Fresno** and **Bakersfield** — the two big valley cities, low and wide.
- The **agricultural fabric** between them: the valley is not empty ground, it is
a grid, and a very low-coverage district with a near-zero tower chance reads as
farmland where bare terrain reads as desert.
### B. The north — four hundred and fifty kilometres with nothing on it
`TODO.md` already records that the Klamath knot reads as four chains at four
bearings and that the Cascade corner reads as Basin and Range. Both are relief
notes; these are settlement.
- **Redding** and **Chico**, the two northern valley towns.
- **Santa Rosa** and the Sonoma/Napa corridor — the nearest real settlement to
the Bay's northern edge and currently a hard stop at the pack boundary.
- **Eureka and Humboldt Bay** — the only harbour on four hundred kilometres of
North Coast, and the one place up there with a port.
- **Tahoe**: the lake exists as inland water; the basin has no settlement.
### C. San Diego — the missing corner
The board runs to 32.50 N and the southernmost district centre is at 32.75.
San Diego is a metro the size of the ones already modelled and it is absent:
downtown, Coronado, the bay, North Island, the mesa canyons that shape it, and
**the port**, which is one of the two things the board's vessel layer could
already use.
### D. The freeway network — the roads, as roads
Twelve vertices is a diagram. Two roads is not a network.
- **Retrace US-101 and I-5** at a vertex density that survives being looked at
from ten kilometres rather than from a thousand. The `Road` type already
carries `widthM` alongside `width`, and `cities/reconcile.ts` already reads it.
- **Add the ones a Californian would notice missing**: I-80 over Donner, I-15 to
the Mojave, I-10 east from Los Angeles, I-405, I-880/I-680 around the Bay,
CA-99 up the valley, CA-1 down the coast.
- **The width question is engine work, not content.** `createFreewayWorld` draws
a 4.7 km-wide atlas glyph because DRIVE mode has to drive down it on a board
where a real freeway is a fifth of a pixel, and `23e4bb8` withdraws that glyph
close in rather than fixing it — so today a city has no roads on it at all.
The true-width corridor needs the roadside props to be re-scaled with it
(`structures.ts` sets their setback from the slab, so a 44 m ribbon with
today's props puts 600 m oaks beside a two-lane road) and drive mode's near
plane is 0.1 units, which is 192 m on this board, against a car 2.6 mm long.
**File this as engine work in `TODO.md`, not as a tracing job.**
### E. Airports and ports — the assets
Both types are plain data with an existing renderer, so these are the cheapest
items here and they are not gated on anything in "What has to come first".
- **Airports**: KSMF (Sacramento), KSAN (San Diego), KOAK, KFAT (Fresno),
KSBA (Santa Barbara), KPSP (Palm Springs), KRDD (Redding), KMRY (Monterey).
- **Ports**: Oakland, Richmond, San Diego, Stockton, Humboldt Bay, Port Hueneme.
Oakland is the one to do first — it is across the water from a board the
product already photographs, and the vessel layer is already wired.
### F. Landmarks the eye goes looking for
58 today, all Bay and LA. The state Capitol, the Coronado bridge, Shasta Dam,
the Golden Gate's northern approach, the Carquinez bridges, Vandenberg,
the Salton Sea's shoreline works.
---
## Two things to check before opening a parcel
- **The block cap.** `src/test/packs/californiaBoard.test.ts` holds the state
pack's block count under 9,200 and it currently reads 8,881. Several parcels
above will cross it. The cap is a real budget on a real board and the right
move is to measure and move it deliberately, in the same commit, with the
number recorded — not to raise it quietly to make a test pass.
- **Draw calls, not triangles.** `TODO.md` records that adding Sacramento is
"a district and about 300 lots; the budget that has to be checked first is
draw calls on the california mobile cell, not triangles." That board reads 411
draws of a 460 cap. Draw calls are the scarce resource on this board, and they
are what a new airport, port or landmark group spends.