diff --git a/DONE.md b/DONE.md index abfb18c..3a8d3d5 100644 --- a/DONE.md +++ b/DONE.md @@ -678,3 +678,16 @@ regenerated and `screen_designs.py compare` still reports 6 good / 0 bad. - [x] Tests: atlas determinism and power-of-two sizing, UV range, palette override reaching the atlas, and a Godot test that each imported prop scene uses exactly one material. - [x] Removed the now-unused sRGB→linear factor helpers (colours travel in the sRGB texture). + +## Complete AI Mockup Set + +Completed 2026-10-31 (v0.3.2). All 19 catalogue screens now have an AI reference; Python +tooling **53/53**. + +- [x] Generated mockups for the seven entries that only had wireframes: wand screening, + Joke Shop queue, TV Studio arrival, crowd panic, responder arrival, body-camera + timeline, escalation HUD. +- [x] `generate` loads `.env` like `judge` already did, so `--ai` works without exporting + `OPENROUTER_API_KEY` by hand. +- [x] Verified every reference is 1280x720, reviewed the new images visually, and confirmed + `list` reports 19 designs (12 kept, 7 new). diff --git a/MEMORY.md b/MEMORY.md index 48c6138..489f299 100644 --- a/MEMORY.md +++ b/MEMORY.md @@ -37,6 +37,10 @@ Session memory for durable decisions, state, and gotchas. Keep concise, remove o material (`baseColorTexture` + `metallicRoughnessTexture`, NEAREST sampling). Colours are sRGB in the texture, so the old `srgb_to_linear`/`_linear_rgba` helpers were removed. `audit_glb` fails if a prop is not exactly one material or misses TEXCOORD_0/images. +- **Mockups complete (v0.3.2):** `docs/screens/designs/` holds AI references for all 19 + catalogue screens. Only the six staged captures (01–06) are compared/judged; the other 13 + have no `capture`, so adding staged captures for the wand panel, timeline and escalation HUD + would extend automated visual checks. `generate` now calls `_load_env_file()`. - **Backlog complete:** every planned TODO section is done and moved to `DONE.md`; `TODO.md` now only lists optional future ideas (live 3D replay, NPC LOD, more venues, real audio, prop atlas, AI mockups for the new catalogue entries, image-to-mesh props). GUT was consciously not diff --git a/README.md b/README.md index 193aadb..894acb8 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ The central design goal is simple: > Downloads are public (no sign-in required) since the host's instance-wide > `REQUIRE_SIGNIN_VIEW` was disabled on 2026-10-31. > -> **Latest: v0.3.1** — props draw with a single atlas material instead of one material per part. +> **Latest: v0.3.2** — every screen in the design catalogue now has an AI reference mockup. > Releases are built automatically when a `vX.Y.Z` tag is pushed > (see [`docs/RELEASING.md`](docs/RELEASING.md)); manual builds use > `./tools/build_releases.sh`. Installer/AppImage packaging runs in the same pipeline @@ -261,7 +261,9 @@ python3 tools/screen_designs.py judge --dry-run # build requests, no network The catalogue covers 19 screens: the six README captures plus the start menu, pause overlay, settings, shift review, radial menu, emergency radio, wand screening, Joke Shop queue, TV Studio arrival, crowd panic, responder arrival, -body-camera timeline, and the escalation HUD. +body-camera timeline, and the escalation HUD. All 19 have an AI reference in +`docs/screens/designs/`; the six screens with staged captures are also compared +or judged against the running game. `compare` flags gross drift: wrong aspect ratio, undersized frame, near-blank frame, and large layout/palette/detail distance. It is a regression gate, not a diff --git a/TODO.md b/TODO.md index c9c7283..3077b5a 100644 --- a/TODO.md +++ b/TODO.md @@ -1,6 +1,6 @@ # TODO -Godot 4.3 prototype. Latest release **v0.3.1** (prop atlas). Headless suite **182/182** plus +Godot 4.3 prototype. Latest release **v0.3.2** (mockup set). Headless suite **182/182** plus **53** Python tooling tests; the session, PLAN-verb, crowd, emergency, timeline, audio, scenario-content, and windowed focus/radial smokes pass. Anonymous downloads are enabled on the host. @@ -14,5 +14,3 @@ All planned backlog sections are complete (see `DONE.md`). Optional future ideas - [ ] Real voice/dialogue audio (the crowd bed and radio crackle are procedural). - [ ] Swap the primitive prop builder for an image-to-mesh model API behind the same `assets/models/generated/.glb` contract. -- [ ] Regenerate the AI screen mockups for the seven new catalogue entries (only the - deterministic wireframes exist so far). diff --git a/docs/screens/designs/body_camera_timeline.png b/docs/screens/designs/body_camera_timeline.png new file mode 100644 index 0000000..4051307 Binary files /dev/null and b/docs/screens/designs/body_camera_timeline.png differ diff --git a/docs/screens/designs/crowd_panic.png b/docs/screens/designs/crowd_panic.png new file mode 100644 index 0000000..245a099 Binary files /dev/null and b/docs/screens/designs/crowd_panic.png differ diff --git a/docs/screens/designs/escalation_hud.png b/docs/screens/designs/escalation_hud.png new file mode 100644 index 0000000..fea24d0 Binary files /dev/null and b/docs/screens/designs/escalation_hud.png differ diff --git a/docs/screens/designs/joke_shop_queue.png b/docs/screens/designs/joke_shop_queue.png new file mode 100644 index 0000000..1338360 Binary files /dev/null and b/docs/screens/designs/joke_shop_queue.png differ diff --git a/docs/screens/designs/responder_arrival.png b/docs/screens/designs/responder_arrival.png new file mode 100644 index 0000000..a9a190c Binary files /dev/null and b/docs/screens/designs/responder_arrival.png differ diff --git a/docs/screens/designs/studio_arrival.png b/docs/screens/designs/studio_arrival.png new file mode 100644 index 0000000..e760de5 Binary files /dev/null and b/docs/screens/designs/studio_arrival.png differ diff --git a/docs/screens/designs/wand_screening.png b/docs/screens/designs/wand_screening.png new file mode 100644 index 0000000..657e039 Binary files /dev/null and b/docs/screens/designs/wand_screening.png differ diff --git a/project.godot b/project.godot index 7c72d9e..c57c752 100644 --- a/project.godot +++ b/project.godot @@ -8,7 +8,7 @@ config_version=5 config/name="Step Line" config/description="Workplace security simulation about observation, access verification, and proportionate escalation." -config/version="0.3.1" +config/version="0.3.2" run/main_scene="res://scenes/main.tscn" config/features=PackedStringArray("4.3", "GL Compatibility") diff --git a/tools/screen_designs.py b/tools/screen_designs.py index 1525f13..a3a46b6 100644 --- a/tools/screen_designs.py +++ b/tools/screen_designs.py @@ -592,6 +592,7 @@ def _generate_ai(screen, model, request_size): def generate(args): + _load_env_file() DESIGNS_DIR.mkdir(parents=True, exist_ok=True) failed = [] selected = [screen for screen in SCREENS