City sim: roads, water, generated cities, every vehicle

Page built Sat 26 Sep 14:53 · repo ~/fun/wfc on office-tux (~/fun/wfc-godot on the Mac) · refreshes every 2 min
NowLOD, boats and roads round 3 merged into main. Grown city merging main now, then its last fixes and the plan cache. Van to boat jobs starting on branch harbour.
NextMerge the grown city; merge harbour jobs; lamp glare fix; 20-minute slice play test

v1: the Harbour run slicein progress

The first playable version: Portmere on a grown European city, drivable by foot, car, drone, plane and boat, with one job chain across modes (van to the quay, boat across the bay). 1. Roads round 3, every building has a road: final fixes; Tim accepted from renders 2. LOD, stand-ins that match the buildings: DONE, merged beffc2e 3. The grown city, with the game on it: final fixes; Tim accepted from renders 4. Boats: DONE, merged 8e1769e (suites re-running on merged main) 5. Van to boat jobs: starts when 1 and 3 merge 6. White lamp-head glare by day: one city-wide fix, after 5 7. Slice play test: 20 minutes from New game on 3 unseen seeds After v1: rail and the train timetable, traffic, ferries and planes in job chains, locks and opening bridges.

The grown city (layout B, full build)done

The grown European city is the default layout; the old all-families city is --layout showcase. Old town: cobbled 5 m lanes, burgage rows at shared levels, a paved market square with church, town hall and market hall, bollards the GPS respects. The wall line is a ring boulevard with parks; outside it a 19th-century grid with L-shaped corner blocks, the station and business towers. Docks and quays run along the river under street bridges. City size varies by seed and the motorway is sized to fit. Portmere runs on it: hubs at the market, station, business quarter, harbour office on the quay road and castle gate, 12-14 sights per seed. Density over seeds 1-8: old town 64-67% built over; 83-89% of old-town kerbs built up (target 85%, met on 6 of 8 seeds).

Seed 1 from above
Seed 1, the old town and the market square
Seed 1 at street level: the market square
Seed 1 at street level: an old-town lane
Seed 1: the river, the docks and a bridge
Seed 1: the business towers and the docks industry
Seed 2, the old town from above
Seed 2 at street level
Seed 2 map, lots by zone
Seed 3 from above, a smaller city
Seed 3 at street level: a lane of shops
Seed 3 map
Grown city marina at night: lamp glints on the water
Showcase marina, before
Showcase marina, after

Roads round 3: every building has a roaddone

Round 3 of the road network (branch network), built; waiting for the critic. Every building has a road, as a rule for any layout: a lot whose front is not within 6 m of a road gets its own (37 do), cut-off pieces are linked not removed, and test_city_network fails on any lot without a road, any piece removed, or any site left out. Lamp pools are warm. No errors at exit. All four city tests pass on the default city; seed 2 does not yet (two sites unreached, 2 surface overlaps, detours).

Night, suburbs: before (left) the lamp pools on the grass verges glow lime-green; after (right) warm and soft
Map, the Port: its warehouses (blue) on streets now linked to the city (the road from the top); before they had no road at all
Map, the Uplands: the cable-car stations (grey) each reached by a lane of their own (magenta: where it meets the building front)
The Port at night: its warehouses on streets now linked to the city, warm lamp pools on the roads and verges
The Port by day: the warehouses (brick) and the link road up to the city (right)
The Uplands: the cable-car stations reached by lanes of their own
Castle Hill, map: before (left) a street joined the grid by a short dog-leg meeting it at 33 degrees; after (right) it comes in straight
Uplands cable-car station, map: before (left) its lane hooked round; after (right) the lane is carried straight on to it

Boats (Harbour run 4): collisions, spray, night waterdone

Round 4 fixes (critic round 3 was 6/10). The breakwater now collides where its stones are drawn. Spray is thrown off the bow shoulders and never over the boat. Night water is never darker than the sky it reflects. The pilot is safe at 12 m/s through the buoy gates and across the lake. Every major has a regression test. All 18 suite runs pass on office-tux (seeds 1, 3, 5 and 11 checked where it matters). Ready for critic round 4.

Driven by keys at the marina breakwater, from overhead as each approach ends: ahead and astern from each side. No stone inside her; she stops about a metre off the visible rocks (the underwater core counts).
Spray from the helm at dusk and planing, from the helm by day on the critic seed-5 voyage, and from the chase camera. Thrown out beside the bow, never over her deck.
Night: over the marina from 22 m (seed 5), the high camera away from the moon (seed 5), the check view from 22 m, and the moon path from the water with no squiggles near the eye.
Dusk from the helm: spray thrown off the bow, water now mirrors the sky (pale pink)
Marina at night from 22 m: no longer black
Moon path across the bay

2 · LOD: stand-ins that look like the buildingsdone

Round 2 ready for the critic (branch lod, c1502e8). Stand-ins: pitched roofs, facade colours averaged as shown (sRGB), no chimney spikes, gables kept, no eave bulk; night windows lit by the real rooms rules. From 35-60 m over the old town a swap changes 2-40 of 22400 8x8 boxes by day (round 1: 146-482) and 17-18 at night (136-213). Air tour vs main, interleaved: 15.1-15.6 ms mean vs 16.3-16.9 (p95 31.5-32.3 vs 31.1-34.5); street tour equal. All city and Portmere suites pass.

Old town 40 m up, by day: stand-ins as the crashed WIP left them, stand-ins now, real buildings
Old town 40 m up by day: every chunk 200-460 m away as stand-ins (top) and as real buildings (bottom), same camera
The same at night
Old town 55 m up by day: stand-ins (top) vs real (bottom)
The same at night
Towers from 170 m at night: stand-ins (top) vs real (bottom); the same share of rooms lit

5 · The game: jobs, map, GPS (Portmere)done

Portmere plays start to finish through its own keys and clicks: a title over the city, New game (asks before replacing a save) and Continue, a job board with parcels to walk, bulky loads to drive, drone drops onto roofs and charter flights, a beacon and a waving customer at each stop, pay with a swift bonus, a Shop that sells the drone and the pilot licence, a map with GPS, a minimap and chevrons on the road, 27 sights to find, a pause menu with a Controls card, and saves that restore exactly. Every test passes.

The title screen: the Portmere name and menu over a slow flight round downtown at golden hour
The full map (M): districts, job boards, a parcel pickup ringed in gold and the GPS route to it in blue
On foot in Chinatown at dusk: the gold pillar marks the pickup 40 m ahead; job card top right, minimap bottom left
Driving to a pickup: blue chevrons on the road show the turn ahead, the job card, speed and minimap with the route
A whole job played with the keyboard and mouse: title, start beside the car, job board, driving to the pickup, loaded, driving to the drop-off, delivered with confetti, the map, the pause menu
The job board, the pause menu, the Delivered card with confetti, and a job board in the street downtown
An express drone drop heading for the teal pillar on a Chinatown roof; a charter flight over downtown making for the violet pillar above the Capitol
A pickup beacon down a Chinatown street at dusk, 40 m away
Top: the title with Continue after saving; a pickup ring on the road at dusk, 20 m away. Bottom: the Downtown Depot job board at night; a drone drop at night, the teal pillar on a Chinatown roof
The final playthrough, keyboard and mouse only: title, start, job board, to the pickup, loaded, to the drop-off in the Suburbs, delivered with a thank-you, the map, pause, back at the title with Continue, and a new game in city number 2
The map with the guidebook bought: grey stars mark landmarks still to find; the GPS route runs from downtown to a Chinatown pickup
Critic round 1, four problems: glow blobs over the title; V at a pickup puts the car on top of you; after a drone roof drop, putting it away drops you inside the tower; night driving has no headlights
Critic round 1, the best of it: an express drone drop at night, the teal beacon and ring on a roof terrace, flown by keys
1 the title with no white blobs; 2 New game asks first; 3 the called car stops 10 m along the kerb; 4 the drone sets you down in the street, not in the tower; 5 the car keys shown as you get in; 6 standing in the marker, no orange wash
7 night driving with headlights and tail lights; 8 the map zoomed right out, its edges fading into the sea; 9 someone waiting on the pavement by the pickup, waving
The playthrough with real keys and clicks: the start, the job board, loaded at the pickup, driving to the drop-off, delivered, the map, the keys from the pause menu, New game asking before it replaces the save
10 the job board: short parcels, bulky from a furniture shop, locked jobs say what they need; 11 the city number with - and + buttons
Critic round 2, fixed (my renders at 1920x1080): your car called 10 m ahead, the drone setting you down in the street, the New game question, headlights and lit roads at night
Critic round 2, still to do: the drone under the sea after N over the harbour, your car parked across a junction, the bare cockpit view, empty paved blocks in the title shot (city side)

2 · Roads that join instead of crossingdone

Roads are one graph (CityNetwork): district grids join the arterials and each other at T and cross junctions, cut streets reach the next road or end in turning heads, one connected network. Junctions are single surfaces with kerb fillets, pavements round the corners, stop/give-way lines and zebras. The ring is a grade-separated dual-carriageway motorway on a viaduct (piers, barriers, lamps) with a diamond interchange at the avenue; river bridges keep the channel clear and are on record. Cars and the walker drive and walk on decks and under them. All tests pass. Gaps: one interchange only (the ring ends at T junctions with the east-west road), street lamps do not light the roads at night, loading is ~4 s longer.

Map, ring x avenue. Left before: the ring crosses the avenue and every street flat. Right now: the ring on its viaduct (light), four slip roads (orange) to junctions on the avenue, streets end in turning heads (blue) at the interchange
Map, avenue x east-west road downtown. Left before: grids run over the arterials. Right now: streets meet them at junctions (black dots)
Ring x avenue from the air. Before: the ring lies flat across the avenue and every street. After: the ring on its viaduct, a diamond interchange with four slip roads, streets that end in turning heads short of it
The interchange closer. After: slip roads on their own decks beside the viaduct, coming down to junctions on the avenue; the infield planted
On the avenue at the interchange. After: the avenue passes under the viaduct; kerb, pavement, zebra at the slip-road junction
Where two district grids meet (Midtown and Chinatown). Before: grids overlap and roads run into each other. After: they join at T junctions with rounded kerbs; a cut street ends in a turning head
Downtown grid meeting the east-west road. After: streets join it at junctions with pavements
River bridge. Before: a deck floating above the road ends. After: the road climbs on embankments onto a deck with parapets, piers outside the channel
On the bridge approach at street level
On the motorway viaduct: two lanes and a hard shoulder each way, central barrier
The avenue x east-west junction from above: kerb fillets, pavements round the corners, zebras on every leg, stop lines on the minor road
Where a slip road meets the motorway: the lane narrows into it with a hatched gore; double lamps on the reservation
Old Town from the air: every street joined, rounded kerbs at every junction
Slavic Quarter meets the Suburbs at 18 degrees; the ring viaduct passes over
The ring comes down to the ground and ends at a T junction with the east-west road
The interchange at night
Critic: the east-west road to the airport runs into the airport pad and disappears; the airport ring road is buried (only its trees show)
Critic: an arterial junction on the east-west road: good kerbs and zebras, but a lamp stands on the east zebra and a tree on the asphalt at the corner
Airport road from the air: before, it ran into a grass bank; now it joins the airport streets
Driving east to the airport: before, a wall of grass; now the road carries on
Castle Hill street level: before, paving covered the road; now the road is clear
Castle Hill junction: before, a tree on the corner asphalt and a lamp on the zebra; now clear
Farm crossing: before, a tree in the junction; now clear
Downtown at night, street level: before, the road was black; now the lamps light it
The avenue at the interchange at night: before dark; now lit, with the viaduct lit above
Old Town from the air at night: the lit street grid
Daylight: before, white glare blobs on the horizon; now gone
Farm lanes: before, dark asphalt squares at each crossing; now gravel like the lanes
The new west interchange: slip roads down from the viaduct to the west avenue
The avenue interchange: before, an empty lawn round it; now blocks up to the slip roads
East-west road at a Castle Hill side street: before, paving over the road; now a level junction
The road to the airport: before, into a grass bank; now onto the airport streets
The avenue at night: before, black; now lit by the street lamps
The new west diamond from the air by day: the motorway, the slip roads and the west avenue passing under it, with houses right up to the ramps.
Under the east diamond at night: the underside of the viaduct and its pier columns glow a flat cream, brighter than the street lamp.
Before: under the motorway at night, the whole underside and the piers glow cream
After: the underside is dark, the piers are lit by the nearby lamps, the road is lit by a light under the deck
Before: the west interchange from the air at night, with lamp discs on the grass under the motorway
After: the same view; the discs under the motorway are gone
Before: streets end in turning heads on both banks, no crossing between the east-west bridge and the motorway
After: the same view with a new street bridge across the river
Another new street bridge further south, from the air
Before: two T junctions 16 m apart on the east-west road run into one blob of asphalt
After: the same place, one junction
Before: Port warehouses buried in the raised apron
After: they stand on it
Before: under the ring viaduct at night, the whole underside glows cream
After: the underside is dark, the street under it is lit
Before: on the motorway deck at night, asphalt and barriers washed out tan
After: the deck lit by its own lamps, the barriers no longer glowing
Night, under the motorway at the east diamond: the deck underside and piers are dark now, and the avenue beneath is lit
The Port from the air: warehouses on sand pads by the sea, with no road to any of them

3 · Navigable water: boats, harbours, bridges, ferriesdone

Sea, river and a lake you can steer a boat on: a water query (surface, depth, flow), a drivable boat, fairways for AI boats (ferries, barges, yachts), quays, marinas and landings, locks where levels change; bridges high enough for the channel or opening (bascule/swing), car and rail crossings of water planned with the network.

The new lake with its island, the river south of the east-west bridge, the bay from the beach, and the river mouth through the old town
The marina from above with its boats, and where --spawn boat puts you: on the pontoon beside the RIB
Chase camera on the run to the lake: backing out of the marina, the bay, the old town, the river landing with its water taxi, the suburbs, arriving on Wendmere
From the helm: the shore road bridge ahead, the old town, under the east-west bridge, the suburbs, the river into the lake, and slowing at the lake jetty
The marina entrance buoys and light, the river-mouth buoy, the 5.0 m clearance board on the shore road bridge, and the RIB at 20 knots with spray and wake
The water taxi and the yacht moored on the marina T-head, and the RIB at dusk on the river and on the lake
The marina from the shore road where you walk onto the jetty, and the view from the water taxi helm approaching the shore road bridge
Left: a water taxi put astern onto a finger pontoon ends with the pontoon running through her hull. Right: where the test run to the lake ends, the player RIB and the moored lake RIB in the same spot.
Left: RIB helm view under the shore road bridge at 12 kn, with spray drawn as round blobs and lamp glare ahead. Right: the marina from the water at night, black water and unlit pontoons.
Top: the helm at speed, before (big round spray discs) and now (a few small drops). Bottom: the marina at night from the water, before (black) and now (the water mirrors the lit towers).
Top: up the river under the shore road bridge by day, before (white blobs) and now (none). Bottom left: the RIB planing at 27 kn from the chase camera, spray off the bow. Bottom right: the view from the Old Town Steps by day.
Left before, right now. Top: a RIB driven into a moored water taxi now stops against her stern. Middle: the water taxi going astern onto a finger pontoon now stops at its tip. Bottom: the RIB moored at the lake jetty, on its own berth.
Top: the lake from the water near its jetty, before (bare hills) and now (woods and the boathouse). Bottom left: the lake from above with its copses, wooded island and the gravel path. Bottom right: the T-head water taxi leaving bow first, clear of the green buoy.
Top left: the marina pontoon at night with its lamp posts and pools of light. Top right: the Old Town Steps at night, the river mirroring the lit houses. Bottom left: the night chase camera under the shore road bridge. Bottom right: the day helm view leaving the marina, the sun now a soft sheen on the windscreen.
Critic: the RIB in her berth after W for 1.5 s then D for 3 s, followed by 6 s of full astern. She is still at 0.0 kn with her bow against the walkway, and the HUD says Alongside. Only astern with the helm hard to starboard gets her out.
Critic: what works now. The marina pontoon at night with lamp pools and cleats; the downtown skyline reflected in the bay at night; the planted lake and its boathouse at golden hour; the river bridge at night with lit windows reflected (note the blocky wake).

4 · Organic cities generated from a seedin progress

Tim: the rectangles of zones don't read as a city; European towns are organic. So the generator grows a European city on its terrain: a medieval core round a market square at the river crossing below the castle, radial roads out of the old gates, the wall line turned ring boulevard, 19th-century perimeter blocks and the station outside it, industry by the rail and port, garden suburbs, estates and absorbed villages further out. Two designers are prototyping different ways to do it in parallel (A: grow it era by era; B: lay the road skeleton first, then fill it with street fields); a judge compares them, then Tim picks before the full build.

Seed 5 (not shown by either designer), same boxes and camera eyes: A (left) vs B (right): city map 4 m/px, old core 1 m/px, city from the bay, core aerial, NW suburbs, market square at street level
Seed 3 after step 1: same layout as the prototype, now error-free (castle-hill rings still there; next step)
Seeds 1, 3 and 5 (top to bottom): walled old town (dark red), bent 19th-century grid (orange), suburbs (yellow), estates (teal), villages, retail at the diamonds (pink), motorway ring (light red)
Street level in a cobbled lane of the seed 1 old town: burgage rows with shopfronts and stalls
The seed 1 old town from 40 m: burgage rows along the lanes, paved yards, the cathedral
Seed 1 market square, street level: town hall, market hall, bollards at the car-free lane on the right
The same square the other way: the baroque church faces it across the setts
The seed 1 old town from 160 m: burgage rows along radial lanes, gardens behind, the square in the middle

Layout B: skeleton, then fieldsdone

Prototype B (road skeleton, then street fields): the judge's pick and Tim's; the full build starts from it.

seed 1: lots by era (dark red old town, orange 19th c ring, yellow suburbs, teal estates, red villages, pink retail at diamonds, purple business, grey docks/port)
seed 2
seed 3
seed 1: the walled old town, streets radiating to the square, cathedral + town hall, boulevard on the wall line, bridge east
street level on the market square
seed 1 whole city: old town by the river, business towers across it, port and airport east
19th-century ring and radials north of the wall
suburbs and estates in the north-east (too sparse)
old core map, 1 m/px
seed 1 map, lots by era
seed 2
seed 3
seed 1: walled old town, radial streets to the square, cathedral + town hall, boulevard on the wall line
street level: the market square
seed 1: old town by the river, business towers across it, port and airport east
19th-century ring and radials north of the wall
north-east suburbs and estates (still sparse)
old core map, 1 m/px
seed 1 map, lots by era
seed 2
seed 3

Layout A: history as simulationdone

Prototype A (era by era growth): the judge scored it second; its ring boulevard with parks, the 19th-century grid bent round the old wall, the docks and per-era growth are being grafted into the full build.

Seed 3 (best): lots coloured by era
Seed 1
Seed 2
Seed 3: the whole city from the bay
The old core: cathedral on the market, lanes, burgage rows (too open)
The 19th-century grid bent round the ring, east bank rows
A suburb: curving streets, cul-de-sacs, an estate
Street level in the old core

0 · Work moves to office-tuxdone

The Mac edits; office-tux runs Godot (tools/tux.sh syncs a checkout and runs tools/godot.sh there). The other agent's city, harbour and world-map work is committed (719e608, c774de7, a3fc2bc); office-tux is on dc1fcd7. The city's 588 building prototypes baked on office-tux in 305 s.

Before: the city today from above (4 m a pixel). Each district is its own rectangle of streets; the ring, the avenue and the east-west road run straight over them, and districts only touch at their edges.

Log

  1. Sat 14:53 — 26 Sep: roads round 3 merged (b7ffce8)
  2. Sat 14:53 — Roads round 3: every building has a road: 26 Sep: merged to main b7ffce8 (Tim accepted from renders). Known defects in README.
  3. Sat 14:52 — The grown city (layout B, full build): Night marina: lamp heads now glint in the water (8c2fcf3); grown 0.047 to 0.071 brightness, showcase 0.094 to 0.109
  4. Sat 12:56 — Roads round 3: every building has a road: Round 3b: seed 2 passes (Port shortcuts), seeds 1, 2, 3, 8 pass test_city_network, every site reached on seeds 1-8; plan back to ~10 s from 13; explore now checks against the rendered meshes; dog-legs straightened, forks thinned, Ls instead of hooks. Open: river detours on seeds 4, 5, 7 (as in round 2), seed 6 worst pair 10.2x, pavement over asphalt at 3 places.
  5. Sat 12:11 — The grown city (layout B, full build): Full build done: network rules pass on seeds 1-4 and 8; seeds 5-7 fail only the detour count (motorway tapers). Plan 15 s on the Mac against main 6.5 s.
  6. Sat 11:51 — 26 Sep: boats merged (8e1769e); v1 board added
  7. Sat 11:51 — 2 · Roads that join instead of crossing: Round 2 merged 25 Sep (cb3fb95 era); round 3 continues as item roads
  8. Sat 11:51 — 3 · Navigable water: boats, harbours, bridges, ferries: Superseded by the boats item (Harbour run 4), merged 26 Sep
  9. Sat 11:51 — Boats (Harbour run 4): collisions, spray, night water: 26 Sep: round 4 fixed the critic r3 majors (breakwater from the drawn stones, spray off the bow, night water never darker than the sky) with regression tests; Tim accepted; merged to main 8e1769e
  10. Sat 11:35 — Boats (Harbour run 4): collisions, spray, night water: Round 4 fixes: breakwater collision from the drawn mound (input test adds 8 breakwater approaches plus a random drive, seeds 1/5/11); spray outward and aft from the bow shoulders (views test fails on any spray drawn over the boat, helm by day, dusk and planing); night water never darker than its sky (views test from 22 and 30 m up); new fairway test (RIB and taxi at 7 and 12 m/s, seeds 1/3/5); lake point-in-ring fix; moon glints fade near the eye; two-sided lamp check.
  11. Sat 10:21 — LOD merged (Tim accepted). Boats: merges after its current fix round (Tim happy with renders).
  12. Sat 10:21 — 2 · LOD: stand-ins that look like the buildings: 26 Sep: accepted by Tim at c1502e8, merged to main (beffc2e); 9 city suites pass on merged main, 0 script errors
  13. Sat 10:11 — 2 · LOD: stand-ins that look like the buildings: Frame time measured vs main (air tour now faster on average, p95 equal); README updated; ready for critic.
  14. Sat 09:48 — 2 · LOD: stand-ins that look like the buildings: Stand-in fixes committed (sRGB facades, roofs from sloped samples, gables, indoor-only cells); bake v5; all suites pass.
  15. Sat 09:37 — The grown city (layout B, full build): Full build: merged main, network tidied to the road rules, bridges, corners, Portmere hubs and sights, renders for seeds 1-3
  16. Sat 09:35 — Roads round 3: every building has a road: Builder done with round 3: all four city tests pass on office-tux with no errors printed (network, plan, drive, explore). Also fixed: pads brought level with the roads beside them, trees off zebra crossings, you stand on the carriageway as drawn, chunks freed at shutdown. Not done: acute street forks, level crossroads at the ring ends, no Old Town river bridge, and seed 2 fails the network test.
  17. Sat 09:29 — Boats (Harbour run 4): collisions, spray, night water: critic r3: FAIL 6/10. Majors: (1) hull goes through the marina breakwater rocks: my own key-driven runs on seeds 3, 5, 11, 16 of 16 approaches ahead/astern put 1.8-3.5 m2 of drawn rock inside the RIB (random driving on seed 3: 4.1 m2, 0.85 m deep at 12.7 m/s); the wall stops hulls at 5.0 m from its line but the armour stones reach ~6 m. (2) bow spray from the helm at dusk reads as candle flames standing on the foredeck (vertical Y-billboards), not spray; chase-view mist is fine. (3) night water from any raised view (high camera, 22 m over the marina) is black: marina basin RGB (0,0,3), darker than the sky (1,10,30); water-level and chase views read well. Passed: pontoons, finger tips, guide piles, buoys and moored boats clean in 50 scenarios (0.000 m2, measured from meshes and landing primitives) incl. reversing with helm hard over; channel to the lake at 12 m/s on seed 5: 0 dry points, >=2.09 m under the keel; all 14 suites pass, no SCRIPT errors; roads, verges, zebras by the river look right. Narrowed lamp test: legitimate (3-5 excused points per seed, all embankment lamps 13-22 m from the deck end, none under a deck).
  18. Sat 08:50 — Boats (Harbour run 4): collisions, spray, night water: Builder round done: main merged; drawn-hull outlines; real-input collision check; spray streaks and mist; night sky and moon path on the water; roads kept off the widened river. All 15 suites pass on office-tux.
  19. Sat 08:32 — Roads round 3: every building has a road: Builder: every lot now has a road (36 sites and the Port warehouses / Uplands buildings got their own or were linked; test fails on any lot without one, any piece of road removed, or any site left out). Lamp pools warm, no longer lime-green. test_city_network and test_city_drive pass; test_city_explore still has 14 points (of 560k) where you stand up to 12 cm off new roads, being fixed.
  20. Sat 07:45 — 2 · LOD: stand-ins that look like the buildings: Merged main into lod; rebaked city_cache_v4; test_city_explore ok (22 checks).
  21. Sat 07:26 — 26 Sep: restarted after crash; slice plan in docs/city-sim/plan.md
  22. Fri 21:34 — 3 · Navigable water: boats, harbours, bridges, ferries: Round 2 fixes, step 1 of 5 done: a boat that touches a pontoon now backs off it. The cause was arithmetic: the overlap area was summed in single floats a few hundred metres from the origin, so a pontoon she was 4 cm into read as clear, and backing away read as a knock that sent her straight back in. Now measured in her own frame; touching is not a collision; she slides along with friction and her fenders ease her off. Checked with the critic probes: every nudge, every pinned berth and the new-player W, D, S backs out (8 to 31 m). One knock as she comes up against something, a fender creak while held, and after 3 s held the line says Stuck: R to return to the berth. Next: blocky wake, night reflections, solid lamp posts.
  23. Fri 21:33 — 4 · Organic cities generated from a seed: Steps 5-6 of 8 mostly done: the market square is sized to its great church (baroque church or cathedral facing it, town hall opposite, market hall on setts in the middle); the square and the lanes round it are car-free (marked nocar in the road graph, bollards cars stop at, walkers pass); rows are wall to wall with a second pass for gaps, gardens in the blocks. Density on all 8 seeds: old-town lot cover 53-64% (target 50), built frontage 83-87% (85), ring 81-82% (70), suburbs 53-57% (50). Next: docks and quays, then the grown layout as the default.
  24. Fri 21:17 — 2 · LOD: stand-ins that look like the buildings: Proxies now carry each building's facade (what its walls show from outside, a texel a metre, one texture for the city) and light their panes by the real rooms' own rules; chunks fade in across the last 100 m of their reach by distance, white-noise dither. Swap probe, 8x8 boxes changing by over 40 when a ring of chunks swaps: old town day 482 -> 61, towers day 413 -> 252, towers night 1349 -> 205, avenue night 127 -> 2. Air pose GPU time at parity with lod-base (9.35 vs 9.37 ms p10). Next: frame-time tours against lod-base, README, commit.
  25. Fri 21:05 — Merged roads and the game into main (cb3fb95); all 8 suites pass. Roads round 3 started.
  26. Fri 20:59 — 2 · Roads that join instead of crossing: Critic (round 2): fail, 8/10 - both round-1 majors are fixed (viaducts no longer glow at night, and pier columns now stop cars and walkers), but the Port (32 warehouses) and the Uplands (19 buildings) still have no road to them at all, and minors remain: no bridge along 930 m of the Old Town river, 5 sharp corners, level crossroads at the ring ends, and leak errors at exit.
  27. Fri 20:59 — 4 · Organic cities generated from a seed: Step 5 of 8 (density) under way: lots are now cut from the blocks of the road graph, plot by plot along each kerb so rows turn with the street, wall to wall, with back houses in the yards; new narrow burgage houses and 5 m cobbled lanes without kerbs (setts in the road shader). Old town lot cover 56-59% (target 50%, was 17-20%), its built frontage 67% (target 85%), ring 68-69% (70%), suburbs 42-45% (50%). Next: the paved market square, car-free lanes with bollards, and closing the frontage gaps.
  28. Fri 20:44 — 3 · Navigable water: boats, harbours, bridges, ferries: Critic (round 2): FAIL, 6.5/10. All five round-1 majors are fixed: boats no longer pass through boats, pontoons or buoys, the spray is fine drops, the white blobs are gone by day, the water reflects the lit city at night, and the lake is planted. One new major: a boat that has touched a pontoon often cannot back off it. In her own berth after W then D, full astern leaves her at 0.0 kn with the HUD reading Alongside. If you step off there, R puts her back in the same spot. Smaller: the wake is blocky, the night reflections have hard edges, and every knock thuds again while you hold the throttle.
  29. Fri 20:31 — 2 · Roads that join instead of crossing: Fix round 2 done, handed to the critic. Night: undersides of viaducts stay dark, roads under them lit, 95% of road length in a lamp pool. Pier columns are solid. Five new street bridges over the river. No two junctions closer than 20 m. Cars stand on the asphalt as drawn. Not done: the Old Town has no street bridge (roads run along both banks too close to the water for a ramp); no trumpet at the ring ends; the raw arterial-to-lane end west of the shore road; intermittent leak errors in headless tests.
  30. Fri 20:08 — 3 · Navigable water: boats, harbours, bridges, ferries: Round 2 fixes, part 3: night from the pontoons and the river (lamp pools, the water mirroring the lit town), the sun on the windscreen is a sheen rather than a blinding spot, and a boat pressed bow on against another with the helm over now pivots off it instead of sticking. All boat checks pass: the journey, the knocks, and the rendered-view checks (no blobs, small spray, lit night water). Frame times by day match round 1 (15 ms mean).
  31. Fri 20:08 — 4 · Organic cities generated from a seed: Steps 2-4 of 8 done: each era is now sized by seeded area on the land (medieval wall, 19th-century outer ring road, motorway round the 20th century), so cities differ in size; no more target streets on the castle hill (a stretch of town wall and one street up to the gate instead); radials meet roads squarely; layout A's ring grafted in: parks and monuments along the boulevard, a station outside it with the business district beyond, and the 19th-century grid bent round the ring. Next: density (lots from block faces, burgage plots).
  32. Fri 19:59 — 2 · LOD: stand-ins that look like the buildings: Fix round 1 under way. Proxies of pitched-roof houses now carry the real roof shape (sloped tops from the roof heights) instead of stepped boxes, and walls take the colour they show from outside. Swap probe, old town from a drone by day: 8x8 boxes changing by over 40 went from 482 to 76. Next: facade texture, night lighting of proxy rooms, frame time.
  33. Fri 19:50 — 2 · Roads that join instead of crossing: Cars and walkers now stand on the roads as they are drawn instead of the coarse 4 m ground grid, so wheels no longer sink into steep Castle Hill streets: driving up Castle Hill, 2 of 625 points are more than 15 cm off the asphalt (was 54, up to 50 cm). All 12 test routes across the city drive through without being stopped. Loading is back to about 1 s slower than before round 2 started.
  34. Fri 19:44 — 4 · Organic cities generated from a seed: Step 1 of 8 done: a grown-layout test over seeds 1-8 now passes its network checks (no script errors, one connected road network, a diamond at every square motorway crossing, plan under 10 s); fixed the seed 3 interchange failure, the missing airport cargo terminal, bare nodes and 188 km junction slivers where radials forked at a shallow angle. Next: castle hill without target streets.
  35. Fri 19:20 — Tim picked layout B + A's grafts, drivable cobbled lanes, car-free square; full layout build started. Game passed (8/10).
  36. Fri 19:20 — 4 · Organic cities generated from a seed: Full build started on layout B with A's best parts; Tim chose narrow drivable lanes and a car-free square
  37. Fri 19:17 — 4 · Organic cities generated from a seed: Judge: Layout B (skeleton, then fields) wins: at city scale it reads as one continuous city round a walled oval core, with rings, forking radials, villages absorbed into suburbs, real motorway interchanges and one connected road graph every seed; A's bent 19th-century grid, ring parks, docks and era-by-area growth get grafted in, and both need a density pass (the old towns are ~20% built).
  38. Fri 19:17 — 3 · Navigable water: boats, harbours, bridges, ferries: Round 2 fixes, part 2: the collision fixes staged as the critic staged them (a RIB into a moored taxi, a taxi astern onto a finger, the RIB at the lake): nothing goes inside anything now. The finger pontoons have small cleats and low lamp posts instead of the big quay bollards. Wendmere has woods, reeds, a boathouse cafe and a path to the road, and keeps a berth free. The pilot leaves a berth bow first when it can and steers round buoys and boats.
  39. Fri 19:10 — 2 · Roads that join instead of crossing: Closely spaced junctions fixed: a road that is carried on to meet another now meets it at the junction already there if one is within 20 m, so no two junctions on a road are closer than 20 m (there were 10 such pairs, including a double junction on the east-west road). Also: the warehouses at the Port were buried 4 m deep in the airport apron; they now stand on it.
  40. Fri 19:09 — 2 · LOD: stand-ins that look like the buildings: Critic r1: FAIL. Good: nothing streams in within one frame any more, and the white NaN blobs over the old town and sea are gone. Still visible: from a drone 35-60 m up, the proxies of pitched-roof houses are whitish stepped boxes, so each 200 m block about 320 m ahead dissolves from white boxes to orange roofs, with a checkerboard stipple for about 0.5 s. At night the downtown towers visibly light up as they fade in. With the camera held, the total change per install is as big as on lod-base (8x8 max 72-160 of 255); it is only spread over 0.8 s. Frame time: the air tour is +1.6 to +2.0 ms mean (lod-base 15.3 and 14.9 ms, lod 16.9 ms in three runs) and p95 is +7 to +9 ms, which is over the 1 ms budget. The street tour is about +0.9 ms. Container near/far bands still switch whole batches, because CityBatch reads lod_band as the default (0, 1e9) rather than null. CityPops cannot see engine visibility-range switches, or how big a fade is in total. Tests pass: parse, city_plan (5), city_explore (15).
  41. Fri 19:04 — Layout A: history as simulation: 3D for seed 3. Reads as a history: red-roofed core and cathedral at the river mouth, ring with parks, white 19th-c rows in a bent grid, towers by the station, suburbs along the radials with villages and estates, port. Weak: the old town is far too open (wide streets, grass, loose plots), suburb loops are half empty, fingers leave empty wedges, motorway has no interchanges. Note: docs/city-sim/layout-a.md on branch layout-a.
  42. Fri 19:03 — Layout B: skeleton, then fields: Final pass: market square kept clear of minor streets and enlarged; trees and lamps now build on the grown layout. Plan 7.4-8.4 s, ~3,100 lots per seed. Note: docs/city-sim/layout-b.md (branch layout-b).
  43. Fri 19:02 — 5 · The game: jobs, map, GPS (Portmere): Critic (round 2): pass, 8/10. All five majors from round 1 are fixed, checked by playing through real keys and clicks: your car pulls up 10 m along the kerb, the drone sets you down in the street, each vehicle shows its keys and says R or G when it will not go, New game asks before replacing a save, and the white blobs are gone. The first parcel took 2 minutes on foot and the drone was affordable after two jobs. Still to do (all minor): no sound but a chime and no traffic; the drone sinks under the sea if you land it over water; 8 of 27 landmarks (a park, the stadium, the port) refuse the drone landing; 1 car call in 10 parks across a junction; the plane opens in a bare cockpit view.
  44. Fri 19:01 — Layout B: skeleton, then fields: Prototype done (--layout grown). Site picks the centre by river/harbour/castle hill; wall boulevard hugs the river bank; least-cost radials fork outside the gates to villages, port, airport, motorway ends; outer ring road; motorway diamonds where a radial crosses squarely; zones from age along the roads (old town, 19th c ring, suburbs/estates, villages, docks, business, retail at diamonds); tensor-field streets (radial+ring in the core, square to arterials in the ring, contour on hills, curving suburbs); lots cut along frontage. Plan 7-8 s (districts 5.6 s). Weak: sparse outside the wall, perimeter blocks read as rows, old town streets too wide. Note: docs/city-sim/layout-b.md
  45. Fri 19:01 — Layout A: history as simulation: Maps for three seeds: founded at the river mouth under the castle hill, radials routed over the land, medieval lanes inside the wall line, ring boulevard with parks, 19th-c grid bent round the ring, villages absorbed by curving suburbs, docks, ring motorway (pink). Colours: dark red old town, orange 19th c, blue business district, yellow suburbs, purple estates, brown villages, grey docks, pink retail. Plan 6-8.5 s. 3D views next.
  46. Fri 19:00 — 3 · Navigable water: boats, harbours, bridges, ferries: Round 2 fixes, part 1: the white blobs up the river by day were NaNs from the ground shader (far-off sliver triangles under MSAA), now clamped. Bow spray is small drops and streaks, with a sheet only when planing. At night the water mirrors the lit city (screen-space reflection in the sea shader) and the landings have lamp posts with light pools and a flashing green entrance light. Boats now collide with each other and nothing slips inside a hull going astern (the hull is tested as a polygon).
  47. Fri 18:57 — Layout B: skeleton, then fields: Grown layout (--layout grown): walled old town by the river under the castle hill, boulevard on the wall line, least-cost radials forking outside the gates to villages/port/airport/motorway ends, outer ring road, then a tensor-field street net traced per zone (old town 62 m, ring 165 m, suburbs 140 m curving), lots cut along each frontage. Plan ~7 s. 3D aerials coming.
  48. Fri 18:37 — 2 · Roads that join instead of crossing: Five new street bridges over the river in the north, where streets on both banks used to end in turning heads facing each other. The worst detour between neighbours across the river went from 20.7x to 8.2x (382 bad pairs down to 28). The remaining ones are in the Old Town and one stretch further north, where roads run along both banks too close to the water to fit a bridge ramp. Also: no lot stands on a pavement or within 2 m of a slip road any more.
  49. Fri 18:26 — 5 · The game: jobs, map, GPS (Portmere): Fix round 1 done, ready for the critic. Final run of the keyboard-and-mouse playthrough on the finished code: 16 of 16 steps pass. parse_check: 124 scripts, no errors. Still open, for the lod branch: engine RID leaks reported at exit after long sessions. The title flight measured 66 ms a frame against 57 ms on foot downtown in the same run, with the GPU shared with a training job, so the title costs about the same as play; nothing changed there.
  50. Fri 18:24 — Layout A: history as simulation: Started: the city grown era by era on the same site (founding at the river crossing below the castle hill, medieval lanes off the radial roads inside a wall, the wall turned into a ring boulevard, a bent 19th-century grid beyond it, curving suburbs and cul-de-sacs, villages absorbed, docks by the port, ring motorway). Code under way; first map in ~40 min.
  51. Fri 18:20 — 5 · The game: jobs, map, GPS (Portmere): Fix round 1, second update. The keyboard-and-mouse playthrough passes all 16 steps, including the new ones: Controls in the pause menu shows the keys, and New game over a save asks first. Also fixed: a white blob high in the sky and at the end of streets came from the beacon pillar shader (a bad pixel at its top), now gone. Someone now waits on the pavement by each pickup, waving. The job board fits at 1080p, and locked jobs say what they need. City number has - and + buttons. The map zooms out only until the whole map fits. Tests: test_portmere 25, test_portmere_care 22, test_gps 8, playthrough 16, all pass; the city tests pass.
  52. Fri 18:16 — Tim on the layout: rectangles of zones don't read as a city; European towns are organic. Layout prototypes A and B started.
  53. Fri 18:16 — 4 · Organic cities generated from a seed: Two layout prototypes started (A: history as a simulation; B: skeleton + tensor field), judge after
  54. Fri 18:14 — 5 · The game: jobs, map, GPS (Portmere): Fix round 1 in progress. Done and tested: the white blobs over the city were bad pixels in the ground, water and beacon shaders (merged the fixes from network and lod, and fixed the beacon one). V now brings your car 10 m along the kerb, not on top of you. Putting the drone away over a building sets you down in the street. Getting into a vehicle shows its keys for 10 s, a stuck car says R, the plane says G. New game asks before replacing a save. Parcels are now short walks (pickup within 400 m, 250-700 m to deliver), shops send what they sell, drone is $180 and the licence $450. Headlights at night, the map fades into the sea, someone waits at the pickup waving. New test test_portmere_care: 22 checks pass; test_portmere, test_gps and the city tests pass. Next: the full keyboard playthrough.
  55. Fri 18:12 — 2 · Roads that join instead of crossing: Night fixed: street lamps now light only the ground and road surfaces facing up at their own level, so viaduct undersides, piers and barriers no longer glow and the motorway lamps no longer paint yellow discs on the grass below. Underpasses got lights under the deck, junction corners got lamps, and roads are lit along 95% of their length. Pier columns are now solid: a car or walker driven at one stops.
  56. Fri 18:03 — 3 · Navigable water: boats, harbours, bridges, ferries: Critic (round 1): FAIL, 5/10. All 7 test suites pass and I drove the RIB by keys from the marina up the river to the lake at 25 kn without touching anything, but boats drive straight through other boats (the checked lake run ends with two RIBs in one berth), a boat going astern rides over finger pontoons and buoys (the hull outline has no points across the stern), the bow spray shows as big round blobs all over the helm view, lamps glare as white blobs ahead on most of the route, and the water is black at night.
  57. Fri 17:59 — LOD builder handed over; LOD critic loop started (critic, then fix and re-judge on a fail)
  58. Fri 17:59 — 2 · LOD: stand-ins that look like the buildings: Builder done (12 commits, last 1add265): worst pop street 71 -> 6, air 123 -> 26, low 110 -> 14; frame time about +0.8 ms street, +2 ms air (noisy, shared GPU). Critic judging now.
  59. Fri 17:57 — 2 · LOD: stand-ins that look like the buildings: Builder done, handing to the critic. Pops: street worst 71 -> 6 (none visible), air 123 -> 26 (6 steps, paving slivers while ground morphs), low 110 -> 14. Frame time, best estimate: street +0.8 ms mean (11.9 -> 12.7), air about +2 ms (15.0 -> 17.1), the extra in frames while chunks stream; over the 1 ms budget in the air. Noisy: office-tux GPU is shared with 4+ agents Godot runs, so only runs with no other windowed Godot were counted, and even those vary ~1 ms. Baseline copy for re-measuring: ~/fun/wfc-wt/lod-base.
  60. Fri 17:56 — LOD builder told to wrap up (benchmark loop); roads 7/10 and game 6/10 in critic round 1, both in fix rounds; boats with its critic
  61. Fri 17:39 — 3 · Navigable water: boats, harbours, bridges, ferries: The water taxi seated at her helm under the roof, clearer glass; any boat can take the camera trip (--boat N).
  62. Fri 17:36 — 3 · Navigable water: boats, harbours, bridges, ferries: Boats turn wider when fast and stop against quays and moored ships; the wheel and outboard turn with the helm; the instrument line says when you can step ashore; a bay route to the ferry quay, which the water taxi runs to lie alongside. The keys are checked through the boat itself. All city tests pass (water 14, boats 25 checks).
  63. Fri 17:35 — 2 · Roads that join instead of crossing: Fix round 2 started: viaducts and bridges glow at night (lamp light painted on every deck, pier and barrier), pier columns you can drive through, no street bridge over the northern river, closely spaced junctions and sharp forks, small road/ground gaps on steep streets, a lot too near a slip road, rough road ends, and leak errors at exit.
  64. Fri 17:34 — 2 · Roads that join instead of crossing: Critic (round 1): fail, 7/10. The blocker and the three majors from round 0 are fixed. A car now drives the 5.1 km from downtown to the airport terminal without being stopped, and the ground agrees with the roads. No trees or lamps stand in junctions, the districts are joined, and there is a second diamond. Two new majors: at night the lamp-light map makes every viaduct and bridge glow, including the undersides, pier columns and barriers; and cars and walkers pass straight through the viaduct pier columns.
  65. Fri 17:30 — 5 · The game: jobs, map, GPS (Portmere): Critic (round 1): fail, 6/10. The whole loop plays by real keys and clicks (walked a parcel, drove, left mid-job, saved to the title, Continue, delivered; bought the drone and did a roof drop; flew and landed a charter by keys), and every test passes. But: V puts your car on top of you at every marker, putting the drone away after a roof drop lands you inside the tower, nothing on screen tells you the plane needs G or the car reverses with R (F1 is hidden and never mentioned), New game silently overwrites the save, and white glow blobs float over the title screen.
  66. Fri 17:06 — 2 · Roads that join instead of crossing: Fix round 1 finished (8 commits), ready for the critic: on a hill, a main road now keeps its own level straight through a junction and a steep side street ramps down or up to it, so the east-west road through Castle Hill no longer has bumps at each side street (both lanes within 7 cm of the road over 900 m). Paving no longer shows through junctions. All five tests pass, with new checks: the ground under every road and junction, places near each other being near by road, no tree or lamp on a junction or zebra, no viaduct column on a pavement. Still open: a few sharp forks and junctions 13-16 m apart look untidy, and loading takes about 4 s longer.
  67. Fri 16:58 — 3 · Navigable water: boats, harbours, bridges, ferries: Marks to steer by (buoys at the marina entrance and the river mouth that ride the waves, posts up the river, a danger mark by the lake island), the clearance painted on each bridge, bow spray, a ferry-quay landing you walk down to, and the README section. Every city test passes; frames under way up the river average 14 ms.
  68. Fri 16:53 — 5 · The game: jobs, map, GPS (Portmere): Builder round done, handing to the critic. All tests pass (parse_check, test_city_plan, test_city_network, test_city_explore, test_city_drive, test_gps, test_portmere with 25 checks) and the keyboard-and-mouse playthrough passes all 12 steps. New since last time: a guidebook to buy that marks every landmark still to find, and the job board now follows you after each delivery. Known issues that belong to the city, not the game: street lamp heads glow into white blobs from afar even by day; headless runs of the city can hit a thread race in the dummy renderer (test_city_drive showed it once); a long session leaves some streamed chunks unfreed at exit.
  69. Fri 16:37 — 5 · The game: jobs, map, GPS (Portmere): The playthrough now also goes back to the title, clicks Continue (the saved money and delivery come back), then picks city number 2 and starts a new game in a different city: all steps pass. Deliveries now come with a thank-you from the customer, the district name sits above the minimap, and the title has a soft vignette. Night looks good: beacons and the lamp-lit job boards glow.
  70. Fri 16:15 — 2 · Roads that join instead of crossing: Fix round 1, part 3 committed: a second motorway interchange. A new west avenue runs north through the Bazaar and the Suburbs, and the ring motorway has a diamond interchange where it crosses it, like the one on the main avenue. The first interchange no longer sits in a 750 m empty lawn: houses come right up to the slip roads.
  71. Fri 16:14 — 5 · The game: jobs, map, GPS (Portmere): Portmere now plays through its own keys and clicks: a script starts at the title, clicks New game, opens the job board with J, clicks Take it, gets in the car with E, drives with WASD along the GPS to the pickup and the drop-off, gets paid, opens the map and the pause menu and saves. Drone drops and charter flights are checked end to end too. Beacons are taller so pilots see them; a delivery now throws confetti.
  72. Fri 16:02 — 3 · Navigable water: boats, harbours, bridges, ferries: Boats you drive: a RIB, a water taxi and a yacht (her mast is too tall for the river bridges and she is stopped short with the reason). A marina with pontoons, berths, a breakwater and its light; landings at the old town, the lake and the ferry quay; you walk on and board. A scripted run from the marina under all three bridges to the lake and back stays on water the whole way; bank, pontoon and bridge contacts stop and slide the boat, R recovers it.
  73. Fri 15:56 — 2 · Roads that join instead of crossing: Fix round 1, part 2 committed: roads now read at night. Every street lamp lights a pool on the road and pavement (streets got lamps too), and the lamps near you light trees, cars and walls. The white glare blobs on the horizon in almost every view are gone (a maths error in the ground shader). Junctions where farm lanes meet are gravel, not dark asphalt squares; pavements turn the corner onto slip roads and lanes. Viaduct columns no longer stand on pavements.
  74. Fri 15:50 — 2 · LOD: stand-ins that look like the buildings: Final pops check on the street tour: worst one-step change 6 (a few dithered pixels), no visible pops; before 71 with 13 visible (177 with the white blobs). Air and low tours re-measuring; frame times next.
  75. Fri 15:37 — 5 · The game: jobs, map, GPS (Portmere): First playable slice of Portmere is in: a title screen over the city, a job board with parcel, bulky, drone and charter jobs (each a .tres), glowing pillars at pickup and drop-off, pay with a swift bonus, a full-screen map with the GPS route, a heading-up minimap, chevrons on the road, 27 landmarks to discover, a drone and pilot licence to buy, pause menu and save/load. Tests: test_gps and test_portmere pass, the old ones still pass.
  76. Fri 15:33 — 2 · LOD: stand-ins that look like the buildings: Frame time: the first version cost 1.5 ms (street) and 2.8 ms (air) a frame. Found why and cut it: the dither is a discard, which slows every fragment of a material that has it, so now only fading things use a DITHER copy of their material; the ground loop visits only chunks near the eye; fade data is written only while chunks move. A per-frame global shader uniform (tried for time-based fades) cost ~3 ms and was dropped. Measuring again with a benchmark that retries runs other agents overlap.
  77. Fri 15:26 — 2 · Roads that join instead of crossing: Fix round 1, part 1 committed: the road to the airport now climbs gently onto the airport level and its streets are on the ground, not buried. The ground under every road is now the road as drawn, junctions included, so cars no longer drive a metre under the asphalt on Castle Hill. Trees and lamps keep off junctions and zebra crossings. Neighbouring districts are joined by link roads across the gaps (and under the ring), so near places are near by road. New tests check all three.
  78. Fri 15:11 — 3 · Navigable water: boats, harbours, bridges, ferries: Water is now data with one query: the bay, the River Wend and a new lake, Wendmere, north of the suburbs; all at sea level so boats reach the lake without a lock. One sea surface draws all three, its swell calmed up the river and on the lake. Three river bridges on record: the shore road and the east-west road at 5.0 m clear, the motorway at 9.4 m.
  79. Fri 14:50 — 3 · Navigable water: boats, harbours, bridges, ferries: Builder started: water becomes data (CityWater: the bay, the river and a new lake in the northern hills, all at sea level, with a sample() query); a RIB and a water taxi you drive behind the Vehicle contract; a marina, river and lake landings and the ferry quay you walk onto and board from; bridge clearance by air draft.
  80. Fri 14:47 — Project copies on office-tux moved to the big SSD (fun-data/wfc-wt, 680 GB free); boats and game builders started
  81. Fri 14:46 — 5 · The game: jobs, map, GPS (Portmere): Builder started: turn the city explorer into Portmere, a cosy delivery game: title screen over the city, pause menu, jobs as Resources (parcels on foot/car, drone rooftop drops, charter flights) with light-pillar beacons, a full-screen map with GPS routes on the road graph, a minimap, sights to discover, and save/load.
  82. Fri 14:41 — Roads round 1 failed its critic (5/10); fix round started
  83. Fri 14:40 — 2 · Roads that join instead of crossing: Fix round 1 started: the airport road buried in the airport pad (blocker), roads and ground disagreeing on hills, lamps and trees on junctions, districts poorly joined across the ring, then the minors: a second interchange, lane and ramp junction finish, piers on pavements, acute forks, dark roads at night.
  84. Fri 14:15 — 2 · LOD: stand-ins that look like the buildings: Measured with CityPops (the largest one-step change of an 8x8 pixel block, 0-255; 12+ counts as visible). Street tour: before (blob fix only) worst 71, 13 visible steps; after worst 6, none. Air circle at 250 m: before worst 123, 118 visible steps; after worst 26, 4 (slivers where fine ground morphs under paving). Distance switching (trees, kit bands) after: worst 14 street, 7 air. Low circle, films and frame times next.
  85. Fri 13:48 — 2 · LOD: stand-ins that look like the buildings: Proxies (the far buildings) now match their real buildings better, so the fade has less to hide: lot paving and lawns laid flat, roof and wall colours by area-weighted majority. Before, a window's many tiny frames outvoted the brick wall, so brick blocks turned white in the distance. Bake cache moved to city_cache_v3 (rebaked in 50 s on office-tux).
  86. Fri 13:38 — 2 · Roads that join instead of crossing: Critic: FAIL, 5/10. The graph, viaduct and diamond work (all tests pass, both off-ramps drive), but the road to the airport runs into the airport pad and is buried up to 4.4 m (a car stops at x=3315), roads and ground disagree on hills (175 roads buried, 90 floating by up to 2 m, e.g. the east-west road through Castle Hill), and 297 lamps and trees stand inside junctions (lamps on zebras).
  87. Fri 13:35 — 2 · LOD: stand-ins that look like the buildings: Found the worst pop was not LOD at all: white glowing blobs over the city were NaN pixels (a vertex colour extrapolated below zero at an MSAA edge, then pow()) that the glow spread; clamped in the ground and building shaders. River glints at grazing angles overflowed too: water is rougher where its waves are sub-pixel. Chunk cross-fade, per-tree/per-part dithered bands and a ground geomorph are in; a pops tool (--pops) measures what each step switched.
  88. Fri 13:18 — 2 · Roads that join instead of crossing: Builder done for this round; all tests pass (parse, plan, network, explore, drive). Waiting on the critic.
  89. Fri 13:16 — 2 · Roads that join instead of crossing: Polish pass: road colours fixed (they were near black: sRGB), kerb band on pavements, zebras no longer flicker, slip lanes taper into the motorway with a hatched gore and broken merge line, motorway lamps show everywhere (were one city-wide mesh), lamps on the river bridges, trees in the interchange infield, ground levelled under every road (it was not running), deck ends square for cars (a car no longer bumps at a deck end). New check: a car crosses the river bridge on the road; the bridge is on record 5.0 m clear, 73 m span. All tests pass (network, drive, plan, explore, parse). Frame times unchanged.
  90. Fri 12:43 — 2 · Roads that join instead of crossing: Roads are now drawn from the graph: each road stops at its junction mouth, every junction is one surface with kerbs and pavements turning the corners, stop and give-way lines on minor roads, zebras where an arterial meets, turning heads at dead ends. The ring is a dual carriageway on a viaduct (piers, barriers, median lamps) with a diamond at the avenue; slip roads have 90 m lanes beside the motorway. The ground is levelled to every road and raised into embankments. Cars and the walker drive and walk on decks and under them. Tests: test_city_network (planar, one network, heads, ramps, no lots on roads, no overlapping surfaces), test_city_drive (car up the ramp onto the viaduct, car under it, walker on the deck, parked cars, trees) all pass; plan and explore tests still pass.
  91. Fri 12:09 — Godot slots on office-tux raised to 8 (WFC_GODOT_SLOTS in ~/.zshenv)
  92. Fri 11:36 — 2 · Roads that join instead of crossing: Plan step done: every road is now one graph. District streets join the arterials at T and cross junctions instead of running over them, cut streets reach the next road or end in a turning head, stray pieces are linked or dropped (one connected network), and the ring is a motorway on a viaduct: every street passes under it, with a diamond interchange at the avenue. Plan checks pass. Drawing is next (still the old flat ribbons in 3D).
  93. Fri 11:33 — Roads milestone: graph + motorway viaduct + diamond, tests green. LOD builder restarted after the first one died.
  94. Fri 11:21 — 2 · LOD: stand-ins that look like the buildings: Builder started
  95. Fri 10:24 — The plan (waves, critic loop, game sketch): http://office-tux:8090/wfc/city-sim-plan/
  96. Fri 10:22 — Setup done; wave 1 builders reading the code
  97. Fri 10:22 — 0 · Work moves to office-tux: Baked the city on office-tux: 588 prototypes in 305 s; baseline map rendered
  98. Fri 10:21 — 2 · Roads that join instead of crossing: Builder started
  99. Fri 10:21 — Wave 1 launched: LOD and road network builders, critic after each
  100. Fri 10:21 — 2 · LOD: stand-ins that look like the buildings: Builder started
  101. Fri 10:18 — Started. Tim asked for: roads that do not cross, no visible LOD switching, navigable water with boats and infrastructure, generated cities, and a multi-vehicle sim from the bits in ~/fun.
  102. Fri 10:18 — 0 · Work moves to office-tux: Committed the uncommitted work in 3 commits and fast-forwarded office-tux to a3fc2bc