Add AI mockups for the seven remaining catalogue screens
The design catalogue grew to 19 screens, but only the original twelve had an AI reference; the rest still showed "design -" in `list`. Generated the missing set so every screen can be reviewed against an intended look: - wand screening (metal-detected panel with carried items and allow/deny) - Joke Shop queue, TV Studio arrival, crowd panic, responder arrival - body-camera timeline, escalation HUD `generate` now loads `.env` the same way `judge` does, so `--ai` no longer needs the API key exported by hand. Each reference is 1280x720; the twelve existing mockups were kept (no `--force`). Verification: `list` reports 19 designs, Python tooling 53/53, headless suite 182/182, `compare` still 6 good / 0 bad on the captured screens. Version 0.3.2.
No files matched your search
@@ -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).
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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/<prop>.glb` contract.
|
||||
- [ ] Regenerate the AI screen mockups for the seven new catalogue entries (only the
|
||||
deterministic wireframes exist so far).
|
||||
|
After Width: | Height: | Size: 1007 KiB |
|
After Width: | Height: | Size: 1.4 MiB |
|
After Width: | Height: | Size: 1.4 MiB |
|
After Width: | Height: | Size: 1.2 MiB |
|
After Width: | Height: | Size: 1.1 MiB |
|
After Width: | Height: | Size: 1.2 MiB |
|
After Width: | Height: | Size: 1021 KiB |
@@ -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")
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||