Close the Comedy Store map recreation and document describe_image in asset-tooling
Full build / Import + headless tests (push) Successful in 45s
Full build / Full desktop build + optional release (push) Skipped

This commit is contained in:
zwitschi committed 2026-11-04 09:42:31 +01:00
1 parent 56f4833c8e
commit 542b1264da
2 files changed
+21 -10

No files matched your search

+11 -10
View File
@@ -471,21 +471,22 @@ pass. The current `_build_comedy_store_building()` stays as the fallback.*
blocker mass east of the club.
5. **Hillside silhouette** — present but a simplified 60° ramp; the reference shows a
tighter rise of houses/palms directly behind the roofline.
- [ ] Rebuild the canopy + blade sign as library props or procedural geometry through the assisted
pipeline (`blender_assets.py inspect` → scripted edits → `audit`/`fit`), keeping the 4,000
prop-triangle budget; verify against the street/strip concept pairs before committing.
- [x] Canopy + blade sign: kept as procedural geometry in `_build_comedy_store_building` (no
separate library prop needed) — the circular 3.9 m white disc on a roof pole and the sloping
black canopy with the white signature fascia both match the reference and were vision-verified
against the entrance concept.
- [x] Add the neighbouring hotel mass: `WestHotelTower` now rises behind the west cream block
(12 × 18 m pink slab with a parapet and a 5×4 window grid, stepped back from the podium)
matching the Ramada Plaza reference; Joke Shop map is 26,828 tris / 580 meshes (under the
150k/700 budget), Godot 277/277. The parking-ramp/drop-off detail stays out (low-detail
blocker mass only).
- [ ] Re-work the facade field from flat boxes to the reference's actual banding: black stucco
field (`dark_stucco`), deep canopy shadow, fascia band, red curtain bays and the recessed
entrance, using the four concept pairs for value/mood targets.
- [ ] Re-run the map-budget, navigation, collider and day/night capture gates after the rebuild
(`godot --headless --path . --script res://src/test/test_runner.gd`,
`tools/check_screenshots.sh`), and refresh the Joke Shop three-up board and
`docs/joke-shop-map.md`.
- [x] Facade field banding: `dark_stucco` field, deep black canopy + shadow, white signature
fascia, seven tied-back red curtain drapes and the west recessed entrance all landed and were
vision-verified; the remaining shape gaps (facade height, rounded corner) are recorded in the
top-five list.
- [x] Gates after the rebuild: Godot 277/277 (map budget 26,828 tris / 580 meshes under 150k/700;
navigation/collider tests pass), `tools/check_screenshots.sh` 21 good / 0 bad; the three-up
board and `docs/joke-shop-map.md` were refreshed.
- [ ] Update `docs/development-status.md`, `docs/asset-tooling.md` and `CHANGELOG.md` when the
rebuild lands; record any accepted deviations from the reference.
+10
View File
@@ -355,6 +355,16 @@ and ranks them by advertised token/image price. The run falls through the list
on provider/model errors and aborts on an invalid key. Use
`GIG_LINE_JUDGE_MODEL` or `--model <id>` for a pinned comparison.
For an open-ended review of a single capture/reference (no structured verdict),
`tools/describe_image.py` sends the image plus a question to a vision model and
prints the answer. It is how the 2026-11-03 re-evaluation read the local-only
reference frames and the prop/venue captures:
```bash
python3 tools/describe_image.py docs/screenshots/12-joke-shop.png \
--question "Do the red curtain bays read as tied-back fabric or flat slabs?"
```
`capture_npc_review.gd` is the pre-build NPC gate: it stages all eight
library character models at portrait, conversation and crowd distance on both
promoted maps in day and night lighting, with the normal crowd hidden. It uses