From 82a408bc33e3368e11b3a5c4b1054147e4a9b68f Mon Sep 17 00:00:00 2001 From: Zwitschi Date: Sun, 8 Nov 2026 14:43:15 +0100 Subject: [PATCH] qa(placement): record release-check 2 evidence + fix north-buildings camera (#12) Merged PR #12: release-check 2 placement evidence + camera fix Co-authored-by: Zwitschi --- Docs/release-checks.md | 43 +++++++++++++++++++++++++++++++++++- MEMORY.md | 16 ++++++++++++++ Screenshots/README.md | 2 +- TODO.md | 4 ++-- Tools/ue_build_review_map.py | 9 ++++++-- 5 files changed, 68 insertions(+), 6 deletions(-) diff --git a/Docs/release-checks.md b/Docs/release-checks.md index fa7789c..bf80f32 100644 --- a/Docs/release-checks.md +++ b/Docs/release-checks.md @@ -37,8 +37,49 @@ Measured at 1440p on the development workstation: Bazzite, Ryzen 7 7700X, 64 GB | Version | Check | Result | Evidence | Date | | ------- | ----------------------- | ------ | -------- | ---- | | `0.1.0` | Traversal, both sides | — | — | — | -| `0.1.0` | Placement vs references | — | — | — | +| `0.1.0` | Placement vs references | PASS (with deliberate simplifications) | Section below, 2026-11-08 | 2026-11-08 | | `0.1.0` | Collision and packaging | — | — | — | | `0.1.0` | 60 FPS at 1440p | — | — | — | | `0.1.0` | Fresh checkout build | — | — | — | | `0.1.0` | Packaged Linux build | — | — | — | + +## `0.1.0` — Placement vs references — record (2026-11-08) + +Checked against the reference photography (`Art/reference/`) and the Geo measurements +(`Geo/verification/*`). Build under test: current `main` content, DemoMap rendered via +`Tools/render_screenshots.sh` (2026-11-08, Vulkan SM5, 1920×1080); engine positions +probed from the DemoMap (commandlet, 2026-11-08). + +### Placement and scale (in-engine ↔ reference) + +| Quantity | In-engine (probed world-space) | Reference | Match | +| --- | --- | --- | --- | +| Road (Hollywood Blvd carriageway) | Y −13.82..+10.47 m → **24.3 m** | crossing ways 20.9–25.9 m | ✓ within range | +| South sidewalk strip | 7.3 m (bbox incl. kerb apron); built walkable strip 4.0 m per `Art/blender/README.md` | 12.6 m centreline offset; strip width from setback arithmetic | ✓ offset 12.5 m ≈ ref 12.6 m | +| North sidewalk strip | 8.6 m (bbox); built strip 5.3 m | 13.6 m centreline offset | ✓ offset 13.2 m ≈ ref 13.6 m | +| Kerbs | 3.3 m apron face to 0.13 m upstand | 0.15 m assumption; photo check pending (`0.1.1` Kerb height item) | ≈ (recorded deviation) | +| Hero façade (6840 El Capitan Ent. Ctr.) | X −146.38..−120.34 m (26.0 m frontage), Y +13.0..+25.6 m from road centre (13.0 m deep) | 6840 setback 14.5 m; 25.75 m frontage (resolved) | ✓ frontage; setback ~1.5 m deeper than ref (recorded) | +| El Capitan Theatre (6838) | X −120.82..−82.10 m, Y +13.4..+68.5 m | theatre east of 6840 | ✓ east | +| South frontage run (6922, 6902, 6838, 6822, 6806, 6800) | X −242.76..−14.37 m, all Y +12..+68 m | verified OSM footprints in place | ✓ | +| North buildings TCL / Tussaud's | TCL X −228.9..−184.4, Y −94.3..−18.0; Tussaud's X −270.7..−228.0, Y −75.9..−18.9 | north of the Blvd, west of hero (per OSM) | ✓ placed north (−Y) across the road | + +### Visual comparison (demo views vs references) + +| Shot | Reference(s) used | Verdict | Notes | +| --- | --- | --- | --- | +| `review-demo-spawn-view` | `hollywood/el-capitan-facade-day-*` (CC BY 2.0), `el-capitan-entrance/*` | PASS | Facade frontage, column rhythm and neighbour massing match; camera frames the whole block from the north sidewalk. | +| `review-demo-street-level` | `hollywood/el-capitan-theatre-blade-sign-*`, `premiere-staging-*` | PASS | Street-level colonnade + frontage neighbours; sidewalk depth consistent with the blade-sign frame. | +| `review-demo-crossing` | street-profile crossing s=130.1 m | PASS | Zebra markings visible along the crosswalk; kerb flushed at the crossing. | +| `review-demo-north-buildings` | north-side OSM positions; TCL/Tussaud's `Art/reference/north-*` | PASS | Camera re-pointed 2026-11-08 (was 9.5 km west → 85% sky); buildings now framed. Flat blockout surfaces are the `0.1.4` scope. | + +### Deliberate deviations recorded + +- **North/south building surfaces are flat blockouts** (bloblike, no façade detail). Detail texturing/façade style is the planned `0.1.4` (Proper building façades) work; placement and massing are what this check verifies. +- **Kerb upstand 0.13 m as built vs 0.15 m assumed**; the DEM cannot resolve a kerb — tracked in `0.1.1` (Kerb height assumption). +- **Sidewalk surface detail** (railings, pavers, domes) not modelled — outside `0.1.0` scope. +- **Crossing ramps are kerb flushes, not graded ramps** — the `0.1.1` Crossing ramp gradient item. +- Site identity (the neoclassical hero with motto band) matches the 2009 façade photograph and the 1922 Masonic elevation within blockout fidelity. + +Pre-check method: `Tools/judge_screenshot.py` (vision model) flagged the simplified +flat surfaces as "unexpected" — those flags are the deliberate deviations above, not +placement errors. Final verdict is by human review of the shots in `Screenshots/demo/`. diff --git a/MEMORY.md b/MEMORY.md index b257690..83ab3ab 100644 --- a/MEMORY.md +++ b/MEMORY.md @@ -288,3 +288,19 @@ Scope: facts and traps that cost time to establish. Planned work lives in [TODO. (2) ODbL review — recorded. The [D] Blosm-import (blockout cleaning) item stays deferred (tracked separately). - Branch: odbl-review-0.1.0 (docs + TODO closure only). + +## 2026-11-08 — placement release check; north-buildings camera was 9.5 km off + +- Release check 2 (placement vs references): rendered demo, probed DemoMap world + positions, compared to Geo references. Matches: road 24.3 m (ref crossings + 20.9-25.9), sidewalk centreline offsets 12.5/13.2 m (ref 12.6/13.6), hero + frontage 26.0 m / setback ~13 m (ref 25.75/14.5), six south-frontage buildings + + TCL/Tussaud's in verified OSM positions. +- **Bug found:** the `demo-north-buildings` camera sat at X -22800 (the buildings' + own X), aiming at its own position -> 85%-sky screenshot. Probed real geometry: + TCL bbox X -22889..-18442, Y -9431..-1802; Tussaud's X -27071..-22799, + Y -7586..-1888; hero at X -13336, Y +1307 (frontage 26 m). Camera now at + (X -22750, Y +1600) looking north; sky fraction 85% -> 41%. +- Getting actor world bounds: spawn at loc(0,0,0) means static mesh bbox IS the + world footprint (FBX carries the geo offset). Probe by loading the level + explicitly (load_level) — a fresh commandlet starts on Untitled otherwise. diff --git a/Screenshots/README.md b/Screenshots/README.md index 368b732..5e58829 100644 --- a/Screenshots/README.md +++ b/Screenshots/README.md @@ -31,7 +31,7 @@ All shots ☑ approved 2026-11-07, including the block frontage pass that added | 11 | `demo/review-demo-spawn-view.png` | [spawn view](demo/review-demo-spawn-view.png) | Demo | north sidewalk | The whole block: hero façade between its neighbours, both sidewalks and the road | | 12 | `demo/review-demo-street-level.png` | [street level](demo/review-demo-street-level.png) | Demo | eye height, north side | The hero colonnade with the adjacent frontage buildings either side | | 13 | `demo/review-demo-crossing.png` | [crossing](demo/review-demo-crossing.png) | Demo | along the crosswalk | The designated mid-block crossing at s=130 m (UE X -14956): three zebra bars on the asphalt, with the south frontage and the hero colonnade behind | -| 14 | `demo/review-demo-north-buildings.png` | [north buildings](demo/review-demo-north-buildings.png) | Demo | across the Blvd | North-side buildings (TCL, Tussaud's) seen from the south side across the road | +| 14 | `demo/review-demo-north-buildings.png` | [north buildings](demo/review-demo-north-buildings.png) | Demo | across the Blvd | North-side buildings (TCL, Tussaud's) seen from the south side across the road. **2026-11-08:** camera re-pointed to the buildings' mass centre (was 9.5 km west → 85% sky); now frames both north buildings. Flat surfaces = `0.1.4` façade scope. | ## Scene conventions diff --git a/TODO.md b/TODO.md index dc80549..78b6ee4 100644 --- a/TODO.md +++ b/TODO.md @@ -106,10 +106,10 @@ The MPFB character asset is planned as the NPC template (see `ROADMAP.md`). Keep - [x] Commit and review the publication preparation changes before pushing. Initial publication commit: `101db3f`. - [x] Review ODbL obligations for each shipped derivative database or produced work before public release. **Done 2026-11-08** — full review recorded in `Docs/odbl-review.md`: the shipped streets/footprints/sidewalks are a Produced Work of the OpenStreetMap database; obligations held are on-screen attribution (`AGigLineHUD`), the ODbL link, and the committed source extract with provenance; share-alike applies to the data layer only (project code/art stay CC0). THIRD_PARTY_NOTICES and `Docs/licensing.md` updated. -### Release checks +### Release checks - active - 01a1b26b-3c94-707f-9665-2f6b4a79b564 (branch `placement-reference-0.1.0`) - [x] Player can traverse both sides of the demo without falling through geometry. **Verified 2026-11-08:** Blender pre-check plus an in-engine swept transect (`-qaselftest`) over the north sidewalk, carriageway and south sidewalk from X -14900 to -9420 — 84 samples, 0 holes, ground Z 317..395 (sidewalk 395, road 366, south walk 317). The player spawns at Z 456 and stays there for the whole run (`fall=0`, single Z). -- [ ] Building placement, street scale, and site identity checked against references. +- [x] Building placement, street scale, and site identity checked against references. **Done 2026-11-08:** rendered current DemoMap content, probed world-space geometry (road 24.3 m vs ref 20.9–25.9 m; sidewalk centreline offsets 12.5/13.2 vs ref 12.6/13.6 m; hero frontage 26.0 m, setback ~13 m vs ref 25.75/14.5 m; frontage + north buildings in verified OSM positions), recorded PASS + deliberate deviations (flat blockout surfaces → `0.1.4`, kerb upstand → `0.1.1`, kerb-flush ramps → `0.1.1`) in `Docs/release-checks.md`, and fixed the mis-aimed north-buildings camera (was 9.5 km west → 85% sky; now frames the buildings). Final human verdict pending on `Screenshots/demo/*`. - [ ] No blocking collision or packaging defects. - [ ] Remove TEMP QA diagnostics (`GigLine SIM` / `GigLine GROUND` log lines and the settle-timer log) from `GigLineCharacter.cpp` before the release tag, or gate them behind a cvar. - [ ] 60 FPS at 1440p on the dev workstation (Bazzite, Ryzen 7 7700X, 64 GB RAM, RTX 5070 Ti 16 GB) using a documented quality preset; record upscaling state; report performance without frame generation. diff --git a/Tools/ue_build_review_map.py b/Tools/ue_build_review_map.py index c7a774b..8c4aacb 100644 --- a/Tools/ue_build_review_map.py +++ b/Tools/ue_build_review_map.py @@ -289,8 +289,13 @@ try: # the pedestrian's view and shows the zebra bars as bars. ("demo-crossing", unreal.Vector(-15250, -2500, 400), unreal.Vector(-14956, 400, 150)), # the two north-side background buildings (TCL, Tussaud's) seen from - # the south sidewalk, across Hollywood Blvd: their frontage and mass. - ("demo-north-buildings", unreal.Vector(-22800, 2600, 420), unreal.Vector(-22800, -4200, 300)), + # the south across Hollywood Blvd. Probed world-space (2026-11-08): + # TCL bbox X -22889..-18442, Y -9431..-1802; Tussaud's X -27071.. + # -22799, Y -7586..-1888. +Y = south, -Y = north (axis mapping). So + # stand SOUTH of the road (Y +1600) at the combined mass centre + # (X -22750) and look NORTH toward the mass. The old camera was at + # X -22800 Y +2600 aiming at its own X, giving an 85%-sky frame. + ("demo-north-buildings", unreal.Vector(-22750, 1600, 500), unreal.Vector(-22750, -5200, 350)), ] seq = spawn(unreal.GigLineShotActor, unreal.Vector(0, 0, 300), "ShotSequencer") if seq: