Close the map-track J/L workstreams: procedural approach supersedes the facade kit
Full build / Import + headless tests (push) Successful in 44s
Full build / Full desktop build + optional release (push) Skipped

This commit is contained in:
zwitschi committed 2026-11-04 10:00:36 +01:00
1 parent 8cacd510bf
commit 2445ddab34
1 file changed
+21 -23
+21 -23
View File
@@ -413,17 +413,13 @@ facade evidence is still the 2009 CC BY frame. The 8 downloaded candidates are i
### J. Local map geometry and AI-assisted composing ### J. Local map geometry and AI-assisted composing
- [ ] Prototype OSM footprint import into Blender at game scale and orientation, then compare it - [x] OSM footprint import and 3D building massing: **deferred** — the §H decision keeps OSM as
against the current venue footprint/collider layout. reference-only, so no footprint/massing import runs; the procedural `VENUE_SPECS` plus the
- [ ] Import 3D building massing for the target block, clean the topology and assign LOD bands; reference-derived materials carry the geometry instead.
do not import unbounded city-scale meshes into the runtime (`scene-assembly`, - [x] Facade kit approach: **superseded** for this pass — §K delivered the banding/mass via
`asset-optimization`, `lod-pipeline`). procedural geometry plus photo-anchored tiles (`limestone_ashlar`, `dark_stucco`). A reusable
- [ ] Build a reusable photoreal facade kit (window bays, cornices, storefronts, awnings, signage) Blender facade kit (window bays, cornices, storefronts) is a future enhancement, not a
with `environment-artist`/`hard-surface`/`geometry-nodes` so buildings share materials and blocker for the current maps.
stay inside the venue triangle/material budgets.
- [ ] Run the assisted Blender pipeline end to end on the first block (OSM import → `inspect` →
retopo/UV assist → atlas → `audit`), and document the exact commands in
`docs/asset-tooling.md`.
- [x] Joke Shop building-appearance pass: `dark_stucco` tile (1024 px) promoted via the picks - [x] Joke Shop building-appearance pass: `dark_stucco` tile (1024 px) promoted via the picks
pipeline and wired into `_build_comedy_store_building`, replacing the grey paver tile so the pipeline and wired into `_build_comedy_store_building`, replacing the grey paver tile so the
hall reads as flat matte charcoal instead of masonry; photo-anchored day concept generated hall reads as flat matte charcoal instead of masonry; photo-anchored day concept generated
@@ -440,11 +436,13 @@ facade evidence is still the 2009 CC BY frame. The 8 downloaded candidates are i
0.28 night / 0.028 day). Marquee sign face + bulbs: warm-incandescent already in the prop 0.28 night / 0.028 day). Marquee sign face + bulbs: warm-incandescent already in the prop
PALETTE, now test-verified to brighten at night via `_marquee_emissive`. Day and night PALETTE, now test-verified to brighten at night via `_marquee_emissive`. Day and night
captures promoted, both three-up boards rebuilt.) captures promoted, both three-up boards rebuilt.)
- [ ] Upgrade the facade from flat material bands to photoreal detail: either texture-projected - [ ] Upgrade the facade from flat material bands to 3D photoreal detail (real cornices/reveals,
detail (Path B below) or AI-generated material tiles derived from the facade photo (with not just the ashlar/stucco tiles). Recorded as a deferred enhancement — the tiles already
provenance), then verify texel density, tiling and the night look. give the material read; the remaining gap is geometric reveal depth (texture-projected or
- [ ] Integrate the result behind `WorldBuilder.VENUE_SPECS` with colliders, navigation obstacles, Blender modules). Verify texel density, tiling and night look when it lands.
occlusion and the existing day/night materials. - [x] Integrate behind `WorldBuilder.VENUE_SPECS`: the photo-anchored tiles are wired into
`_build_masonic_building` / `_build_comedy_store_building` with colliders, navigation
obstacles and the existing day/night materials.
### K. Comedy Store map recreation ### K. Comedy Store map recreation
@@ -513,13 +511,13 @@ pass. The current `_build_comedy_store_building()` stays as the fallback.*
one `.refgen.json` provenance sidecar per frame. Verified live on the facade photo (night + one `.refgen.json` provenance sidecar per frame. Verified live on the facade photo (night +
overcast frames committed; the weathered treatment reads as mild overcast — noted on the overcast frames committed; the weathered treatment reads as mild overcast — noted on the
board). Tests in `AnchorTests`. board). Tests in `AnchorTests`.
- [-] Generate facade, street and signage concept frames for the target block - [x] Concept frames generated and committed: El Capitan facade day/night/weathered + entrance
(`scene_concepts.py generate --reference ...`), commit only the selected frames, and record day-v2; Comedy Store facade/street/strip/visitor pairs (gemini + gpt) + entrance day/night
model, prompt, spend **and source photo** in the block sidecar. (First frame done: + across-street; Jimmy Kimmel entrance day/night × two models. Each frame carries a
`hollywood_boulevard_entrance_day-v2`, anchored on the facade photo; remaining framings `.refgen.json` sidecar (model, prompt, source photo).
pending.) - [x] Palette/lighting/material targets derived: `limestone_ashlar` (masonic field), `dark_stucco`
- [ ] Derive palette, lighting and material targets from the real-photo board and the generated (comedy hall), the warm banner/marquee emissive and the awning tile are the material targets;
concepts, and record the deltas the facade kit has to close. the deltas (3D reveal depth) are recorded in §J as the deferred facade-detail enhancement.
- [ ] Generate signage, awning and poster texture candidates with `asset_pipeline.py`; run the - [ ] Generate signage, awning and poster texture candidates with `asset_pipeline.py`; run the
role audit and the `CREDITS.md` provenance check before anything is used in the kit. role audit and the `CREDITS.md` provenance check before anything is used in the kit.
- [ ] Compare generated concepts against the licensed photos: where they disagree, the photos win - [ ] Compare generated concepts against the licensed photos: where they disagree, the photos win