# Task B · brougham from a reference image — Claude Code iterations

Start: 2026-10-24T10:52:15Z (60-minute wall-clock budget → hard stop 11:52:15Z)
Input: prompts/B.md verbatim + inputs/carriage.jpg (viewed as an image before writing any code). Judge: `node tools/check.mjs runs/claude-code/B/index.html`.

| iter | time (UTC) | what changed | ran? | console errors | screenshots | notes |
|---|---|---|---|---|---|---|
| 1 | 10:55 | First full write: periodic cobbled road (InstancedMesh, deterministic hash heights), 5 buried transverse ridges as visible bump geometry, carriage from boxes/cylinders/tori following the drawing (low boot + tall glazed cabin + box seat + two corner lamps + big rear/small front spoked wheels + shafts), hinge-door groups with raycast click, flickering PointLight lamps, 4-corner spring/damper body (heave/pitch/roll) on wheels that read the road envelope, R reset, fog, OrbitControls follow | yes | 0 | t0/t3s/t8s, scratch B1/* | Door-hinge sign was wrong on first write (would swing into the cabin) — caught by reading the code before running, fixed with sed. Probe: a door toggles on click; R works but HUD distance was simTime-based so looked un-reset. Scene far too dark to read the silhouette; open door glass looked opaque. Headless judge: page is heavy (15k instances + 11 point lights) → ~2 fps real throughput. |
| 2 | 10:59 | Moon 0.55→1.4, ambient ×2, blue rim light, exposure 1.35, fog 0.028→0.02; glass depthWrite off; additive glow sprites on the lamp flames; point lights only on the centre period's posts; HUD shows distance-travelled (resets) and body heave/pitch so the probe can read the suspension | yes | 0 | t0/t3s/t8s, scratch B2/* | Zoomed screenshot finally reads: black brougham, lit box seat, warm lamp glow on the body, cobbles with kerb. HUD time-series shows 1–3 cm heave / ±0.5° pitch from cobbles alone. Bump reaction being probed on a scratch copy that starts at x=20 (first ridge at 22). |
| 3 | 11:02 | Springs softened (K 38→26, C 3.2→2.0) so the body keeps rocking after a ridge | yes | 0 | scratch B3/* | Bump probe on scratch copy (start x=20.2, ridge at 22): heave 1→7.4 cm, pitch −2.0° as the rear wheel crosses, settles over ~4 s. Close-up probe: both doors toggle independently by click; R → distance 0, doors closed, body settled. Open door glass still reads as a bright beige panel because the lamp PointLight sits right next to it. |
| 4 | 11:04 | Door/window glass: opacity 0.2, roughness 0.3 (less specular next to the lamp) | yes | 0 | t0/t3s/t8s (final) | Door probe repeated: open/closed → open/open → R resets. Glass now shows the lamp-lit interior through it. Checklist 6/6 by my own judgement → stop. |

**Stop reason:** checklist complete (own judgement). Wall-clock 10:52:15 → 11:05:30 ≈ 13 min.

**Where it got stuck:** nothing blocked. The only logic bug (door hinge sign) was caught by re-reading the code before the first run. The rest was tuning for legibility in a night scene (too dark → raise moon/ambient/exposure, drop fog) and verifying physics that the judge cannot see: I had to add a HUD readout of body heave/pitch and run a scratch copy positioned before the first ridge to prove the suspension reacts to the visible bump geometry. The image input was used once (viewed before writing) — proportions were transcribed by eye into constants; no later iteration went back to the image.
