diff --git a/F-progress.md b/F-progress.md index 2c17229..888679e 100644 --- a/F-progress.md +++ b/F-progress.md @@ -4,6 +4,23 @@ --- +## Round 4 (v1-tag round) — IN PROGRESS + +Executing Fable's `ROUND4_INSTRUCTIONS.md` Lane F tasks. F1+F2 done & committed; F3/F4 gated on +other lanes' critical-path work (E1 ped decimation, B2 shot-harness fix); F5 (tag) follows. + +| task | status | +|---|---| +| **F1 setExposure wire** | ✅ **DONE** ([`index.html:245`](web/index.html)) — `citizens.setExposure(renderer.toneMappingExposure)` after `setTimeOfDay`. Boots clean, 0 console errors, exposure animates night 1.18↔midday 0.98. Awaiting D3 verify. | +| **F2 storeys-checker fix** | ✅ **DONE** — `permittedMax = max>=2 ? min(max+1,3) : max` (Lane A's rule). Consistency **0 warnings** across 6 seeds; single-storey-type-at-2 still trips. Awaiting A1 confirm. | +| **F1+F2 commit** | ✅ `9416d0a` (only my 2 files, atomic), ref `lane-f/round4-wireups`. `.gitignore` (Lane E's `.peds_orig/`) left unstaged. | +| **F3 gate-3 tris re-measure** | ✅ **PASS (OFFICIAL).** E1 committed decimated peds (`518678d`, 924k→46k tris, ≤3k each); **D2 signed off** (rigs bind/animate, no explosions, silhouettes read, fleet ≈59.6k at the 24-cap). Re-measured busiest node, pop 200, midday, 12-yaw peak, committed peds → **draws 138 ✅ (≤300) · tris ~31k ✅ (≤200k)**. Baseline was 372k. Gate 3 green. | +| **F1 follow-up (D3)** | D3 found+fixed a real double-tone-map bug and stubbed `impostor.setExposure` → my F1 call is now a no-op. Will **remove the dead line at finalization, AFTER D commits** the impostor fix (removing before would regress night brightness in the committed tree). | +| **F4 gate-6 shots** | 🟡 **PROVISIONALLY PASSING; awaiting B2 commit to finalize.** B2's `dbg.js` (letterbox `syncSize()` + the 3 new poses `crossroads_busy`/`residential_collar`/`warehouse_fringe`) is done on disk (uncommitted). Ran `shots.py v1_tour` → **10 full-frame 1280×720 shots (no letterbox)**, all poses resolve, night emissives + legible signs, decimated peds render human-scale. Re-capture + commit once B commits `dbg.js` (and B1's closed-facade night shot once B1 lands). | +| **F5 tag v1.0** | ⏳ pending gates 3+6 finalized against **committed** upstream + D2 sign-off. qa.sh --strict GREEN 4/4 (static gates). Both blocking gates provisionally verified — tag is close. | + +--- + ## Round 3 (lead lane) — DONE, verified live Executed Fable's `ROUND3_INSTRUCTIONS.md` Lane F tasks. All wiring verified in-browser on seed 20261990. diff --git a/web/index.html b/web/index.html index 29e6761..9cb1d87 100644 --- a/web/index.html +++ b/web/index.html @@ -242,7 +242,8 @@ function frame() { lighting.update(dt, player.position); const clk = lighting.getClock(); citizens.setTimeOfDay((clk.seg + clk.frac) / 6); // [Lane F] 0..1 day fraction → density (busy midday, empty at night) - citizens.setExposure(renderer.toneMappingExposure); // [Lane F R4] keep mid impostors matched to the animated day/night exposure (LANE_D_NOTES) + // [Lane F R4] no setExposure call: D3 (a5e4b64) made the impostor toneMapped:true, so three / + // OutputPass tone-map it globally via renderer.toneMappingExposure — the passthrough is now a no-op. citizens.update(dt); // [Lane F] reads camera pos internally for LOD tiers hud.tickToast(dt); hud.update(dt, { clock: clk, chunks: chunks.count }); // reads prev frame's total