From 744bf8f357797175a84f09bb06d7a3c29a414b9a Mon Sep 17 00:00:00 2001 From: Zwitschi Date: Mon, 9 Nov 2026 10:10:50 +0100 Subject: [PATCH] =?UTF-8?q?release:=20v0.1.6=20=E2=80=94=20retail=20fronta?= =?UTF-8?q?ge=20changelog=20entry,=20TODO=20pruning?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Writes the 0.1.6 entry, removes the completed section from TODO.md (its goal stays in ROADMAP.md per the convention), and updates the roadmap status line. Release checks: 5/5 shots verify, scene audit 0 failures, 82 tool tests, LFS check clean, owner approval recorded for the retail shot. --- CHANGELOG.md | 40 ++++++++++++++++++++++++++++++++++++++++ ROADMAP.md | 2 +- TODO.md | 10 ---------- 3 files changed, 41 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6753db6..f60953e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,46 @@ Format: [Keep a Changelog](https://keepachangelog.com/) style, versions follow [ Nothing yet. +## [0.1.6] — 2026-11-09 + +Retail frontage. The two retail buildings beside the hero are modelled from their own photograph instead of the generic kit, and the photograph is treated as evidence: an analysis is written before any geometry, and every dimension the image does not resolve is carried into the part report as an assumption. + +### Added + +- **`Tools/retail_frontage_build.py`**: 6800 Lee Drug and 6806–6820 built from the one usable reference (`Art/reference/retail-neighbours/`, Gb321, CC BY-SA 4.0). Lee Drug gets a bronze cornice, storefront glazing with mullions, framed portrait panels, a painted lettering band, two-tier parapet with reveals and a fluted corner tower; 6806–6820 gets a burgundy fascia, brown pilasters, white-framed windows with security bars and its own banded parapet. Built in world coordinates from the blockout bounds (Lee Drug X −33.20…−14.37, face Y −14.63, H 12.10 m; 6806–6820 X −66.08…−33.07), joined to one mesh per building with a JSON part report. +- **`Tools/ue_import_retail_detail.py`**: imports the two meshes with complex-as-simple collision — trim decorates a solid the player already collides with and must not add snag points. +- **`Art/blender/retail/ref-analysis.md`**: the reference analysis the `references` skill pack requires, written before modelling. +- **`Tools/_common.py`** and `Tools/tests/test_retail_frontage.py`: the bay-layout arithmetic, extracted so it is testable without Blender (4 tests). +- **Review shot 5**, `demo/review-demo-retail-frontage`, embedded in `Screenshots/README.md`. + +### Changed + +- **The generic façade kit skips the two modelled buildings** (`MODELLED` list in `ue_apply_facade_kit.py`). It applies to every `Frontage_*`/`North_*` actor, so it was pasting a second, contradicting façade language over the new trim. +- **Retail trim stages as `RetailTrim_*`** and is spawned through the demo builder, so it is regenerable rather than hand-placed. +- Trim stucco, white and glass slots are mapped onto the demo's look-dev materials so the walls sit in the same noise and texture family as the rest of the block; the tones sampled from the photograph (bronze, burgundy, mural, lettering) stay as authored. + +### Fixed + +- **`Tools/render_screenshots.sh` never captured anything.** The capture step called `./Engine/...` while every commandlet above it went through `run_cmdlet`'s `cd "$ENGINE"`. Under `set -e` the script died at exit 127 _after_ rebuilding the maps, so the PNGs silently stayed a day old and `--verify` never ran. +- **Duplicate `RetailTrim_*` actors on every rebuild**: the demo builder's clear list did not include the new label, so each run stacked another copy. Caught by the scene audit, not by eye. +- **Mural plates were placed 0.20 m inside the solid blockout volume** and never rendered; the inset is now faked with a proud frame and a near-flush plate. +- **Trim detail sat 0.05 m off the wall**, under a pixel of depth at 40 m, so the wall won the depth test. Trim planes now stand 0.10–0.20 m proud. +- **6806–6820 parapet started at 0.62 H**, leaving a 4.6 m blank band; the window storey and parapet moved up to follow the photograph. +- **Mural panels, parapet and lettering were sized from the photograph's proportions, not the inherited defaults**: the first pass left a parapet that read as one blank white band. + +### Verified + +- `render_screenshots.sh --verify`: **5/5 shots OK**; scene audit **0 failures** (every mesh materialed, all spans in tolerance, no duplicate labels). +- Owner approved `demo-retail-frontage` (second pass) 2026-11-09; all five demo shots now carry approval. +- 82 tool tests pass. + +### Known limitations + +- **Wall lettering and the painted band do not read at 40 m.** A plate at 0.10 m still vanishes; this is a decal/texture problem, not geometry. Moved to `0.9.0 — Realistic buildings`. +- **The parapet has no moulded profile** and the corner tower is a fluted cylinder with two cap rings — both need the façade system in `0.9.0`. +- **6822 Budget is untouched**: no photograph of it exists. Deferred and blocked in `0.9.0`. +- The only reference for these two buildings is a single street-level oblique with a bus across Lee Drug's shopfront and a car across 6806's; several vertical proportions are assumptions recorded in the part report. + ## [0.1.5] — 2026-11-09 Façade finishing. The kit gets the hero detail it was missing, and a class of silent defect is found and gated: the map had been rendering with **604 of 620 mesh actors unmaterialed** without a single error. diff --git a/ROADMAP.md b/ROADMAP.md index 4df3189..8c9c237 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -8,7 +8,7 @@ Development roadmap for this project: milestone goals, scope, decisions, and rel ## Status at a glance — 2026-11-08 15:30 -Workstation, geo pipeline, and engine validation are done. The art pipeline has a first blockout, terrain, and street in metres, in one shared coordinate frame. **Project bootstrap is complete**: `Game/GigLine` builds, packages, and both content-acceptance tests (static-mesh scale, MPFB skeletal character) pass. **`v0.1.0` released 2026-11-08**: the walkable demo, hero façade, verified block frontage, first-person controls, ODbL attribution, and every release check pass (traversal, placement, collision, 60 fps at 1440p, fresh-checkout build, packaged build with controls). Next: the `0.1.1`–`0.1.4` patch series (collision detail, scale/façade corrections, packaging fixes, real building façades), **Next:** `0.1.6` retail frontage (6822, 6806–6820, 6800 — blocked on reference photography for two of the three), then `0.2.0` (player body, third-person camera, animation). +Workstation, geo pipeline, and engine validation are done. The art pipeline has a first blockout, terrain, and street in metres, in one shared coordinate frame. **Project bootstrap is complete**: `Game/GigLine` builds, packages, and both content-acceptance tests (static-mesh scale, MPFB skeletal character) pass. **`v0.1.0` released 2026-11-08**: the walkable demo, hero façade, verified block frontage, first-person controls, ODbL attribution, and every release check pass (traversal, placement, collision, 60 fps at 1440p, fresh-checkout build, packaged build with controls). Next: the `0.1.1`–`0.1.4` patch series (collision detail, scale/façade corrections, packaging fixes, real building façades), **`v0.1.6` released 2026-11-09**: retail frontage for 6800 Lee Drug and 6806–6820 modelled from their own photograph; 6822 Budget deferred (no reference) and the lettering/parapet detail moved to `0.9.0`. **Next:** `0.2.0` (player body, third-person camera, animation). | Area | State | | --- | --- | diff --git a/TODO.md b/TODO.md index acbed74..fc889e1 100644 --- a/TODO.md +++ b/TODO.md @@ -9,16 +9,6 @@ Actionable task list for this project. This file is the single, central place fo - When all steps in a version section are done: write a `CHANGELOG.md` entry, then remove the version section from this file. - Release gate: a version is tagged only on the owner's explicit go-ahead once its release checks pass, not automatically when the checkboxes close. -## 0.1.6 — Retail frontage (patch) - -Suggested blender skills: **references** (reference-image-match), **archviz**, **historical-worlds** for the 1920s–1990s retail mix on this run. - -### Patch tasks - -- [x] **Model 6800 Lee Drug and 6806–6820 from their own reference.** Built 2026-11-09 on branch `facade-retail-0.1.6`: `Tools/retail_frontage_build.py` (analysis in `Art/blender/retail/ref-analysis.md`), imported by `Tools/ue_import_retail_detail.py`, staged as `RetailTrim_*`; the generic façade kit skips these two so the wall carries one façade language. Delivered in this patch: bronze cornice, storefront glazing and mullions, framed portrait panels, two-tier parapets with reveals, burgundy fascia, pilasters, white-framed windows with security bars, fluted corner tower. **Moved out:** lettering decal, moulded parapet profile and tower refinement cannot be solved with geometry at this size and are now items under `0.9.0 — Realistic buildings`; the trim that does read is what this patch ships. -- [x] Review every façade change with `Tools/render_screenshots.sh --verify` before tagging. Done 2026-11-09: 5/5 shots verify OK, scene audit 0 failures, and the owner approved `demo-retail-frontage` (second pass) in `Screenshots/README.md`. -- [ ] Tag `v0.1.6` and write `CHANGELOG.md` entry; then remove this section. - ## 0.2.0 — MPFB player body, third-person camera, basic animation (weeks 7–9) ### Character setup