diff --git a/TODO.md b/TODO.md new file mode 100644 index 0000000..eef97e2 --- /dev/null +++ b/TODO.md @@ -0,0 +1,43 @@ +# Open work on Tera + +Short, and only things that are decided but not done. Anything speculative belongs +in an issue, not here. + +## Re-shoot the time-lapse films + +The 18 product stills and both share cards were re-shot on 2026-08-22 at `2b2dd5c` +and are live. **The films were not.** `films.ts` in lumbridge-v4 records the tera +commit each reel was shot at, so a stale reel is visually stale and no caption edit +fixes it — check that commit against tera HEAD before assuming a reel is current. + +What the reels predate: ACES tone mapping and the runtime PMREM environment rig; a +sea that reflects, with a swell normal map, Fresnel and sun glitter, in place of a +flat `MeshLambertMaterial` that had no specular term at all; a world-space sky dome +replacing the screen-space gradient, which at dusk painted the sunset band along the +*bottom* of the picture, under the board; terrain that casts shadows; a California +board with the Basin and Range, Death Valley, the Salton Sea and San Diego on it; +aircraft you can actually see; a rebuilt LA studio; the studio device hardware; and +a new UI chrome with a first-run flow. + +```sh +npm run build +node scripts/brand-assets/films.mjs --frames 24 # rough cut first: ~20 s, and it is + # the cheapest way to find out a + # camera is pointed at the wrong thing +node scripts/brand-assets/films.mjs # ~90 s per 180-frame film on the Radeon +``` + +Worth knowing before starting (the rest is in `~/.claude/skills/tera-capture`): + +- Check the run prints the Radeon and not SwiftShader. The software path is ~15x + slower — 22 minutes a film rather than 90 seconds — and it reports success. +- `hero-soma` is a different animal: `chrome: "bare"`, midnight to midnight, and a + two-stage encode (a CRF 18 master, then 1440w CRF 28 and 960w CRF 30 delivered). +- **The hero camera is worth reconsidering.** Whole-board was tried and rejected + because the edge of the terrain plate showed against the sky. That seam no longer + exists: the sea now runs eighteen board spans and ends past the fog's far plane. +- After tuning the hero, run `npm run check:hero` in lumbridge-v4. +- `#onboarding-host` is in `FURNITURE.CLUTTER` now. Every *new* overlay has to be + added there too, because a frame with a stray card in it still renders and still + looks deliberate. +- Commit tera first, then re-run, so the manifest records a clean sha.