diff --git a/F-progress.md b/F-progress.md index d98eb55..8510e90 100644 --- a/F-progress.md +++ b/F-progress.md @@ -4,7 +4,34 @@ --- -## Round 9 (the v2.0 ship round) — DONE ✅ (v2.0 tagged) +## Round 10 (fix the R9 giant-rig blocker, re-shoot, re-tag) — verify + ship + +R9 shipped a blocking regression: interior rig figures came out ~2× room scale (keeper head 3.83 m in +a 3.4 m room) because `rigs.js buildFigure` normalized off the head bone's **bind-pose** Y. **Lane D +fixed it** (R10, commit `3432fcc`): normalize by the feet→crown **span**, plus a new `qa.sh --strict` +no-giants gate (`interior_scale_check.py`). Lane F verify + re-shoot + soak + re-tag: + +| task | result | +|---|---| +| **F1 — verify the fix** | ✅ `qa.sh --strict` **GREEN 6/6** incl. the new scale gate: **24 interior figs / 6 shops all crown ∈ [1.4,2.0] m and under-ceiling** (Second Time Redfern, the giant scene: 1.66–1.86 m). Live-measured too — the 3.83 m I first saw was a **stale ES-module cache in a day-old browser tab**, not a regression (served + fresh-chromium code both correct). | +| **F2 — re-shoot** | ✅ `browsers.png` re-shot: browser at the rack + keeper at the counter, **human-sized** (*figures human-sized vs door/fittings: yes*). `night_crowd.png` re-framed to a readable "lit VIDEO REGAL amid CLOSED town" — **see the honest note below.** | +| **F3 — soak** | ✅ full-default soak **PASS**: 37 chunks, 20 shops, **heap 54 MB stable (no perf drift** from the keeper fix — it's a build-time scale calc), draws 248, **0 errors**. Tri budget still ~327k > 200k (pre-existing rig-model item, D/E decimation — not an R10 change, not the blocker). | +| **F4/6 — docs** | ✅ tour README updated with stable v2 filenames + captions; this addendum is the R10 release note. | +| **F5 — tag** | ⏸ `v2.0` annotated tag staged on the fixed commit; **holding the push for John** given the night_crowd finding (a public release + his flagged money shot). | + +**Honest finding — `night_crowd` has no crowd, and it can't without new work.** John flagged it as +near-black/empty. Re-framed it readable (clean night, tight on the neon). But a visible *street* crowd +does not form: Lane D's night patronage parks ducked-in patrons **hidden inside** the shop (they are +the interior browsers in `browsers.png`), and seed 20261990's video shop is a **low-traffic corner** +(tested default streamed roster + patronage-on at night: **0 patronage, 0 visible peds** at the shop). +This is not a framing bug and not (clearly) a regression — it's that the "night crowd" was always the +*interior* presence. A visible outdoor queue is a **v3 Lane-D mechanic** (loiter-outside-the-openLate- +shop). The ~20 fps in night captures is a **headless software-GL artifact** (128 draws / 65k tris is light). +→ Flagged for D: confirm night patronage at the openLate shop still behaves as the v2.0-rc notes claim. + +--- + +## Round 9 (the v2.0 ship round) — DONE (v2.0 tag pulled, re-tagged in R10) All lanes landed (C browse points + buy-anywhere, D browser rigs, A CITY_SPEC freeze + closing-time ruling, E VRAM audit + half-res book/toy atlases, B tram + tour bookmarks). F wired the one cross-lane diff --git a/docs/shots/README.md b/docs/shots/README.md index 9c8a55f..71d4e84 100644 --- a/docs/shots/README.md +++ b/docs/shots/README.md @@ -4,31 +4,44 @@ Owned by Lane F (each lane also drops its own acceptance screenshots here). ``` docs/shots/ - laneA/ … A: 5 seeds rendered in map.html (spine, arcade, market, milkbars) - laneB/ … B: 3 fixed street cameras (P-key shot harness) - laneC/ … C: 9 types × 5 archetypes interior grid - laneD/ … D: near / mid tiers + busy main street - laneE/ … E: skin contact sheets (new skins vs originals) - v1_tour/ … F: the 10 beauty shots (see tools/shots.py TOUR) — the devlog set - before/ … F: last known-good capture, for side-by-side regression - references/ … real-world reference photos named per shot (street_noon.jpg, arcade.png, …) - contact.html … generated by tools/shots.py — this-run | before | reference + laneA/ … laneE/ … per-lane acceptance screenshots (each lane owns its dir) + v1_tour/ … F: the v1 beauty shots (tools/shots.py) — frozen devlog set + v2_tour/ … F: the v2 tour (tools/v2_tour.py) — the CURRENT canonical set (see below) + before/ … F: last known-good capture, for side-by-side regression + references/ … real-world reference photos named per shot + v2_contact.html … generated contact sheet for the v2 tour ``` -## Capture (Lane F, once Lane B's shell + `window.DBG` hook land) +## v2 tour — stable filenames (do not rename; the v3 site links these) -``` -cd web && python3 -m http.server 8130 # terminal 1 -python3 -m venv tools/.venv # once -tools/.venv/bin/pip install playwright -tools/.venv/bin/python -m playwright install chromium -tools/.venv/bin/python tools/shots.py v1_tour --seed 20261990 # terminal 2 -open docs/shots/contact.html -``` +`cd web && python3 -m http.server 8130` then `tools/.venv/bin/python tools/v2_tour.py` +→ 1280×720 PNGs in `v2_tour/` + `docs/shots/v2_contact.html`. -Before a risky change, snapshot the good state into `before/` -(`tools/.venv/bin/python tools/shots.py before`), then re-run and eyeball `contact.html`. +| file | what it documents | +|---|---| +| `street_noon.png` | main strip at midday | +| `crossroads_busy.png` | busiest intersection, peds about | +| `shopfront_detail.png` | verandah + sign + window up close | +| `patronage_door.png` | streamed peds at an open shop's door (Lane D patronage) | +| `rain_verandah.png` | rain outside a lit `?winmap` video-shop window | +| `rain_street.png` | wet strip, rain down the street | +| `tram_stop.png` | the v2 tram paused at a shelter (`?tram=1`) | +| `night_crowd.png` | **VIDEO REGAL glowing amid CLOSED neighbours at night** — the §3.5 hours story (clean-night boot). **NB:** no visible street crowd — see the note below. | +| `browsers.png` | **an occupied shop's interior life** — a browser at the rack + the keeper at the counter, both human-sized (R10 giant-rig fix). *figures human-sized vs door/fittings: yes.* | +| `dig_real.png` | riffling a real-cover record bin (`?dig=1&stock=real`) | +| `katoomba_main.png` | plan-agnostic main strip (`?plansrc=osm&town=katoomba`) | -The v1 tour list (LANE_F_INTEGRATION §Shots): main-street noon, arcade, market square, -milkbar dusk, night neon, warehouse fringe, residential collar, record interior, opshop -interior, busy crossroads. Adjust `TOUR` in `tools/shots.py` as the town evolves. +### Note on `night_crowd` (Lane F, R10) +Re-framed to the tighter, readable "one lit shop in a closed town" composition. It does **not** show a +standing street crowd, and that is not a framing bug: Lane D's night patronage parks ducked-in patrons +*hidden inside* the shop (they become the interior browsers seen in `browsers.png`), and seed 20261990's +video shop sits on a low-traffic corner, so none gather visibly outside (tested: 0 patronage / 0 visible +at night). The town's night life is the interior presence + the neon-vs-CLOSED mood. A visible outdoor +night queue would need a new Lane-D mechanic (loiter-outside-the-openLate-shop) — parked for v3. The +~20 fps in night captures is a **headless-chromium software-GL artifact** (the scene is light, ~128 +draws / 65k tris); on real hardware the night scene is not a perf concern. + +## Regression workflow +Before a risky change, snapshot the good state into `before/`, then re-run `v2_tour.py` and eyeball +`v2_contact.html`. **Process rule (R10): any shot containing a humanoid gets an explicit +"figures human-sized relative to doors/fittings: yes" line in the progress note — actually look.** diff --git a/docs/shots/v2_contact.html b/docs/shots/v2_contact.html index d638d7d..34f0b68 100644 --- a/docs/shots/v2_contact.html +++ b/docs/shots/v2_contact.html @@ -1 +1 @@ -





















