diff --git a/MEMORY.md b/MEMORY.md index 5a5beb1..c548f5e 100644 --- a/MEMORY.md +++ b/MEMORY.md @@ -626,7 +626,7 @@ Session memory for durable decisions, state, and gotchas. Keep concise, remove o - Screen mockups with baked-in controls are used as backdrops plus an opaque `ArtPanel` cover, not as clickable full-screen skins. - Radio, wand, inspection, and body-camera timeline panels use their reference art as backdrops; forms sit on transparent, padded panels over the covered mockup controls. - HUD target names use a boxed chip under the crosshair; escalation has a five-segment bar below the text label. The body-camera REC/clock block starts at y=92 on the right so it clears the shift/rep/crowd text. -- Staged captures in `docs/screenshots/` are committed and were last regenerated after the realism and NPC passes; re-run `tools/check_screenshots.sh` (not a partial capture) before replacing them. +- Staged captures in `docs/screenshots/` are committed and were regenerated on 2026-11-03 with the full `tools/check_screenshots.sh` run (21 good / 0 bad, 13 PNGs changed). Re-run the whole script, never a partial capture, before replacing them. The README, `docs/README.md` quick preview, `docs/screenshots/README.md` and `docs/blender_previews/README.md` now carry captioned galleries; the previews README is curated by hand (all tracked sheets linked, local per-asset PNGs described as untracked). - `tools/check_screenshots.sh` is the repeatable capture+compare smoke; both capture scripts accept `--out=res://docs/screenshots`. Judge verdicts on the staged set were 7 match / 4 review / 0 diff. - Venue selection used to leave `guard.input_locked` true and the mouse visible; `_start_shift()` must call `_refresh_freeze()` after starting the clock. diff --git a/README.md b/README.md index b768273..8076569 100644 --- a/README.md +++ b/README.md @@ -18,18 +18,56 @@ Versions are assigned only when a track's scope is accepted into a release. Ever ## Screenshots +Every capture is rendered from the current build by [`tools/check_screenshots.sh`](tools/check_screenshots.sh) +(21 captures, compared against the runtime art). The full gallery, including every UI state, is in +[`docs/screenshots/`](docs/screenshots/README.md). + +### Venues + | | | | --- | --- | -| ![Venue overview: the El Capitan Entertainment Centre facade with six Ionic columns, red banners and stone steps](docs/screenshots/01-venue-overview.png) | ![Targeting an approaching NPC with the interaction HUD](docs/screenshots/02-targeting-npc.png) | -| ![Access inspection: wristband/credential check with allow/deny prompt](docs/screenshots/03-access-inspection.png) | ![Radio report form: emergency dispatch panel](docs/screenshots/04-radio-report.png) | -| ![Late night: street lamps lit, marquee glowing, dark Hollywood Boulevard](docs/screenshots/05-late-night-avenue.png) | ![Night shift: guard flashlight cutting through the dark](docs/screenshots/06-night-flashlight.png) | -| ![Wand screening at The Joke Shop: false alarm on keys](docs/screenshots/07-wand-screening.png) | ![Escalation HUD at L3 with body camera armed and reaction log](docs/screenshots/08-escalation-hud.png) | -| ![Body-camera timeline: formal warning, body camera on, blocking](docs/screenshots/09-body-camera-timeline.png) | ![Prop gallery: the six generated street-furniture models on a studio backdrop](docs/screenshots/10-prop-gallery.png) | -| ![Precision walk at the venue steps with the HUD chip visible](docs/screenshots/11-precision-walk.png) | ![The Joke Shop: a black Sunset Strip club under its signature canopy at night](docs/screenshots/12-joke-shop.png) | -| ![Late-night TV studio arrival: stone facade, bulb canopy, black car and barriers](docs/screenshots/13-studio-arrival.png) | | +| ![Hollywood Boulevard day shift](docs/screenshots/01-venue-overview.png) | **Hollywood Boulevard — day.** The El Capitan Entertainment Centre block: six Ionic columns, Masonic parapet, event banners, eight stone steps and the Walk of Fame terrazzo. | +| ![Hollywood Boulevard at night](docs/screenshots/05-late-night-avenue.png) | **Hollywood Boulevard — late.** Sconces pool on the limestone, street lamps light the boulevard and the skyline fades into night haze. | +| ![Flashlight on the entrance at night](docs/screenshots/06-night-flashlight.png) | **Night patrol.** A tight flashlight spot picks out the door and the person in front of it; movement and awareness change at night. | +| ![The Joke Shop at night](docs/screenshots/12-joke-shop.png) | **The Joke Shop.** A black Sunset Strip club under its signature-covered canopy, circular blade sign, red curtains and the dry hillside behind. | +| ![Late-night TV studio arrival](docs/screenshots/13-studio-arrival.png) | **TV Studio arrival.** Stone facade, bulb canopy, black car and crowd barriers for a late celebrity arrival. | -*Screenshots are generated by [`src/test/capture_screenshots.gd`](src/test/capture_screenshots.gd) and [`src/test/capture_prop_gallery.gd`](src/test/capture_prop_gallery.gd) from the current build — day, late-night, wand screening, escalation, shift-review timeline, -precision walk, the Joke Shop's Sunset Strip frontage, the TV Studio arrival, and the prop lineup.* +### Interaction and systems + +| | | +| --- | --- | +| ![Targeting an NPC](docs/screenshots/02-targeting-npc.png) | **Focus and targeting.** The cone focus ring, name tag and target chip; `Tab`/wheel cycles nearby people without aiming. | +| ![Access inspection](docs/screenshots/03-access-inspection.png) | **Access inspection.** A venue-correct wristband check with evidence shown before the admit/refuse decision. | +| ![Radio report](docs/screenshots/04-radio-report.png) | **Radio report.** Security assistance with location, behaviour and what was actually seen. | +| ![Wand screening](docs/screenshots/07-wand-screening.png) | **Wand screening.** A false alarm on keys: ask the guest to identify the item before choosing a response. | +| ![Escalation HUD](docs/screenshots/08-escalation-hud.png) | **Escalation.** Level 3 blocking with the shape meter, body camera armed and the reaction log. | +| ![Body-camera timeline](docs/screenshots/09-body-camera-timeline.png) | **Body-camera timeline.** Every recorded event, step by step, in the shift review. | +| ![Precision walk](docs/screenshots/11-precision-walk.png) | **Precision walk.** Half-speed close work on the steps, with the HUD state chip visible. | + +### Shell and UI + +| | | +| --- | --- | +| ![Start menu](docs/screenshots/14-start-menu.png) | **Venue menu.** Day and night rows for Hollywood, the Joke Shop and the TV Studio, campaign continue and review links. | +| ![Settings](docs/screenshots/16-settings-panel.png) | **Settings.** Difficulty, volumes, HUD scale, reduce motion, captions and key/button remapping, all persisted. | +| ![Shift review](docs/screenshots/17-shift-review.png) | **Shift review.** Grade, policy outcome, incidents, responder results and campaign Continue. | +| ![Action wheel](docs/screenshots/19-radial-menu.png) | **Action wheel.** De-escalation first: stop, look, point, no, ask, inspect, warn, block, reason, recognize, radio. | + +### 3D asset progress + +The character, gear and prop libraries are authored procedurally in Blender and audited before use; +the sheets below track their visual progress. + +| | | +| --- | --- | +| ![Eight NPC characters](docs/blender_previews/sheet_npc.jpg) | **Character library.** Eight skinned variants (4.5–5.5k triangles each) with five tint slots, attach-point gear and baked maps. | +| ![Prop library](docs/blender_previews/sheet_props.jpg) | **Street and venue props.** Twenty library props with colliders, navigation avoidance and colour atlases. | +| ![Neutral NPC baseline](docs/blender_previews/sheet_npc_baseline.jpg) | **Neutral baseline.** 8 characters × 6 views (front, three-quarter, profile, back, full body, crowd) used for the 0.9.4 pass and the current re-evaluation. | +| ![Texture refinement comparison](docs/blender_previews/sheet_texture_refinement_0.9.5.jpg) | **Texture refinement.** 128 → 256 px NPC maps and a 4× fabric weave, shown before/after on the same camera. | +| ![Crowd-variety prototypes](docs/blender_previews/sheet_npc_crowd_prototypes.jpg) | **Crowd variety prototypes.** Four approved looks (bun/slim, bald/broad, coat/umbrella, hood/cup) queued for the roster build. | + +More sheets and the review criteria are in [`docs/blender_previews/`](docs/blender_previews/README.md) +and [`docs/3d-model-review.md`](docs/3d-model-review.md). ## ⬇️ Downloads diff --git a/docs/README.md b/docs/README.md index 0bf6012..f037388 100644 --- a/docs/README.md +++ b/docs/README.md @@ -42,9 +42,13 @@ This folder holds the project documentation, visual references and generated QA ## Quick preview -| Reference | Screenshot | +| Reference | Capture | | --- | --- | | Venue design | Venue overview design | -| Current entrance | In-game venue overview | +| Current entrance (day) | In-game venue overview | +| Current entrance (late) | Late-night boulevard | +| Joke Shop | Joke Shop at night | | Character sheet | NPC character sheet | +| Neutral NPC baseline | Neutral NPC baseline sheet | +| Texture refinement | Texture refinement comparison | | Prop sheet | Prop asset sheet | diff --git a/docs/blender_previews/README.md b/docs/blender_previews/README.md index fa0b321..c783162 100644 --- a/docs/blender_previews/README.md +++ b/docs/blender_previews/README.md @@ -1,71 +1,31 @@ -# Blender Previews +# Blender previews -Committed contact sheets and local Blender renders for the character, gear and prop library. Individual PNGs are development previews and are gitignored; the sheets are tracked. +Committed contact sheets for the character, gear and prop library. Per-asset Cycles renders +(`*.png`) are local development output and gitignored; the sheets below are the review artefacts +and are built with `blender_assets.py render` + `sheet`, `npc_baseline.py sheet/compare`, or the +capture harnesses. -## Image previews - -| Preview | File | +| Sheet | What it records | | --- | --- | -| a_frame_sign.png | [`a_frame_sign.png`](a_frame_sign.png) | -| backpack.png | [`backpack.png`](backpack.png) | -| beanie.png | [`beanie.png`](beanie.png) | -| bench.png | [`bench.png`](bench.png) | -| bollard.png | [`bollard.png`](bollard.png) | -| camera.png | [`camera.png`](camera.png) | -| cap.png | [`cap.png`](cap.png) | -| clipboard.png | [`clipboard.png`](clipboard.png) | -| crowd_barrier.png | [`crowd_barrier.png`](crowd_barrier.png) | -| cup.png | [`cup.png`](cup.png) | -| double_door.png | [`double_door.png`](double_door.png) | -| fire_hydrant.png | [`fire_hydrant.png`](fire_hydrant.png) | -| firefighter_helmet.png | [`firefighter_helmet.png`](firefighter_helmet.png) | -| flashlight.png | [`flashlight.png`](flashlight.png) | -| handrail.png | [`handrail.png`](handrail.png) | -| hood.png | [`hood.png`](hood.png) | -| lanyard.png | [`lanyard.png`](lanyard.png) | -| marquee.png | [`marquee.png`](marquee.png) | -| newspaper_box.png | [`newspaper_box.png`](newspaper_box.png) | -| npc_casual.png | [`npc_casual.png`](npc_casual.png) | -| npc_coat.png | [`npc_coat.png`](npc_coat.png) | -| npc_dress.png | [`npc_dress.png`](npc_dress.png) | -| npc_firefighter.png | [`npc_firefighter.png`](npc_firefighter.png) | -| npc_guard.png | [`npc_guard.png`](npc_guard.png) | -| npc_hoodie.png | [`npc_hoodie.png`](npc_hoodie.png) | -| npc_jacket.png | [`npc_jacket.png`](npc_jacket.png) | -| npc_vest.png | [`npc_vest.png`](npc_vest.png) | -| palm_tree.png | [`palm_tree.png`](palm_tree.png) | -| phone.png | [`phone.png`](phone.png) | -| planter_box.png | [`planter_box.png`](planter_box.png) | -| protest_sign.png | [`protest_sign.png`](protest_sign.png) | -| radio.png | [`radio.png`](radio.png) | -| round_planter.png | [`round_planter.png`](round_planter.png) | -| scba_tank.png | [`scba_tank.png`](scba_tank.png) | -| security_podium.png | [`security_podium.png`](security_podium.png) | -| sedan.png | [`sedan.png`](sedan.png) | -| sheet_npc.jpg | [`sheet_npc.jpg`](sheet_npc.jpg) | -| sheet_npc_sources_research.jpg | [`sheet_npc_sources_research.jpg`](sheet_npc_sources_research.jpg) | -| sheet_npc_crowd_prototypes.jpg | [`sheet_npc_crowd_prototypes.jpg`](sheet_npc_crowd_prototypes.jpg) | -| sheet_npc_baseline.jpg | [`sheet_npc_baseline.jpg`](sheet_npc_baseline.jpg) | -| sheet_npc_baseline_compare-p1.jpg | [`sheet_npc_baseline_compare-p1.jpg`](sheet_npc_baseline_compare-p1.jpg) | -| sheet_npc_baseline_compare-body.jpg | [`sheet_npc_baseline_compare-body.jpg`](sheet_npc_baseline_compare-body.jpg) | -| sheet_npc_baseline_compare-face.jpg | [`sheet_npc_baseline_compare-face.jpg`](sheet_npc_baseline_compare-face.jpg) | -| sheet_npc_baseline_compare-torso.jpg | [`sheet_npc_baseline_compare-torso.jpg`](sheet_npc_baseline_compare-torso.jpg) | -| sheet_npc_baseline_compare-face-detail.jpg | [`sheet_npc_baseline_compare-face-detail.jpg`](sheet_npc_baseline_compare-face-detail.jpg) | -| sheet_npc_hands_compare.jpg | [`sheet_npc_hands_compare.jpg`](sheet_npc_hands_compare.jpg) | -| sheet_npc_hands_grip_compare.jpg | [`sheet_npc_hands_grip_compare.jpg`](sheet_npc_hands_grip_compare.jpg) | -| sheet_npc_baseline_compare-shoes.jpg | [`sheet_npc_baseline_compare-shoes.jpg`](sheet_npc_baseline_compare-shoes.jpg) | -| sheet_npc_baseline_compare-tex256.jpg | [`sheet_npc_baseline_compare-tex256.jpg`](sheet_npc_baseline_compare-tex256.jpg) | -| sheet_npc_baseline_compare-texuv.jpg | [`sheet_npc_baseline_compare-texuv.jpg`](sheet_npc_baseline_compare-texuv.jpg) | -| sheet_texture_refinement_0.9.5.jpg | [`sheet_texture_refinement_0.9.5.jpg`](sheet_texture_refinement_0.9.5.jpg) | -| sheet_npc_gear.jpg | [`sheet_npc_gear.jpg`](sheet_npc_gear.jpg) | -| sheet_props.jpg | [`sheet_props.jpg`](sheet_props.jpg) | -| shoulder_bag.png | [`shoulder_bag.png`](shoulder_bag.png) | -| stanchion.png | [`stanchion.png`](stanchion.png) | -| street_lamp.png | [`street_lamp.png`](street_lamp.png) | -| street_tree.png | [`street_tree.png`](street_tree.png) | -| sunglasses.png | [`sunglasses.png`](sunglasses.png) | -| traffic_cone.png | [`traffic_cone.png`](traffic_cone.png) | -| trash_bin.png | [`trash_bin.png`](trash_bin.png) | -| umbrella.png | [`umbrella.png`](umbrella.png) | -| wall_lantern.png | [`wall_lantern.png`](wall_lantern.png) | -| wand.png | [`wand.png`](wand.png) | +| [![sheet_npc.jpg](sheet_npc.jpg)](sheet_npc.jpg)
`sheet_npc.jpg` | Eight skinned character variants (casual, jacket, coat, hi-vis vest, dress, hoodie, firefighter, guard) with their gear attach points. | +| [![sheet_npc_baseline.jpg](sheet_npc_baseline.jpg)](sheet_npc_baseline.jpg)
`sheet_npc_baseline.jpg` | Neutral studio baseline: 8 characters x front, three-quarter, profile, back, full body and crowd views. | +| [![sheet_npc_baseline_compare-body.jpg](sheet_npc_baseline_compare-body.jpg)](sheet_npc_baseline_compare-body.jpg)
`sheet_npc_baseline_compare-body.jpg` | Neck/shoulder transition: fuller neck base and a lower shoulder root. | +| [![sheet_npc_baseline_compare-face-detail.jpg](sheet_npc_baseline_compare-face-detail.jpg)](sheet_npc_baseline_compare-face-detail.jpg)
`sheet_npc_baseline_compare-face-detail.jpg` | Face detail: nose ala wings, a single rounded mouth and a darker ear concha. | +| [![sheet_npc_baseline_compare-face.jpg](sheet_npc_baseline_compare-face.jpg)](sheet_npc_baseline_compare-face.jpg)
`sheet_npc_baseline_compare-face.jpg` | Face-depth pass: recessed sclera, upper lid and sculpted chin/cheek planes. | +| [![sheet_npc_baseline_compare-p1.jpg](sheet_npc_baseline_compare-p1.jpg)](sheet_npc_baseline_compare-p1.jpg)
`sheet_npc_baseline_compare-p1.jpg` | 0.9.4 P1 pass: tourist photo-prop visibility and the refit backpack straps. | +| [![sheet_npc_baseline_compare-shoes.jpg](sheet_npc_baseline_compare-shoes.jpg)](sheet_npc_baseline_compare-shoes.jpg)
`sheet_npc_baseline_compare-shoes.jpg` | Footwear: rounded toe/heel caps on shoes and responder boots. | +| [![sheet_npc_baseline_compare-tex256.jpg](sheet_npc_baseline_compare-tex256.jpg)](sheet_npc_baseline_compare-tex256.jpg)
`sheet_npc_baseline_compare-tex256.jpg` | 128 -> 256 px NPC slot maps on the same camera. | +| [![sheet_npc_baseline_compare-texuv.jpg](sheet_npc_baseline_compare-texuv.jpg)](sheet_npc_baseline_compare-texuv.jpg)
`sheet_npc_baseline_compare-texuv.jpg` | 4x fabric weave with the baked per-character AO removed. | +| [![sheet_npc_baseline_compare-torso.jpg](sheet_npc_baseline_compare-torso.jpg)](sheet_npc_baseline_compare-torso.jpg)
`sheet_npc_baseline_compare-torso.jpg` | Torso/hip taper without changing the skeleton or build multipliers. | +| [![sheet_npc_crowd_prototypes.jpg](sheet_npc_crowd_prototypes.jpg)](sheet_npc_crowd_prototypes.jpg)
`sheet_npc_crowd_prototypes.jpg` | Four approved crowd-variety looks queued for the 12-character roster. | +| [![sheet_npc_gear.jpg](sheet_npc_gear.jpg)](sheet_npc_gear.jpg)
`sheet_npc_gear.jpg` | Eighteen gear pieces authored in attach space: caps, hood, helmet, bags, tanks, lanyards and handheld items. | +| [![sheet_npc_hands_compare.jpg](sheet_npc_hands_compare.jpg)](sheet_npc_hands_compare.jpg)
`sheet_npc_hands_compare.jpg` | Hand pass: wider palms, segmented fingers and a separate thumb. | +| [![sheet_npc_hands_grip_compare.jpg](sheet_npc_hands_grip_compare.jpg)](sheet_npc_hands_grip_compare.jpg)
`sheet_npc_hands_grip_compare.jpg` | Grip pass: the forward hand-item offset that puts props in the palm. | +| [![sheet_npc_sources_research.jpg](sheet_npc_sources_research.jpg)](sheet_npc_sources_research.jpg)
`sheet_npc_sources_research.jpg` | External character-source evaluation (CC0/CC-BY) for the roster research. | +| [![sheet_props.jpg](sheet_props.jpg)](sheet_props.jpg)
`sheet_props.jpg` | Twenty street and venue props with baked maps, ground contact and collider footprints. | +| [![sheet_texture_refinement_0.9.5.jpg](sheet_texture_refinement_0.9.5.jpg)](sheet_texture_refinement_0.9.5.jpg)
`sheet_texture_refinement_0.9.5.jpg` | 0.9.5 texture refinement before/after: pavers, awning stripes and NPC fabric. | + +The acceptance criteria for these sheets are in [`../npc-visual-review.md`](../npc-visual-review.md), +the measurements in [`../npc-proportion-audit.md`](../npc-proportion-audit.md) and +[`../3d-model-review.md`](../3d-model-review.md), and the asset contract in +[`../blender-assets.md`](../blender-assets.md). diff --git a/docs/screenshots/01-venue-overview.png b/docs/screenshots/01-venue-overview.png index 8d00b22..dbc1ca2 100644 Binary files a/docs/screenshots/01-venue-overview.png and b/docs/screenshots/01-venue-overview.png differ diff --git a/docs/screenshots/02-targeting-npc.png b/docs/screenshots/02-targeting-npc.png index ab2bdf2..bf61bd0 100644 Binary files a/docs/screenshots/02-targeting-npc.png and b/docs/screenshots/02-targeting-npc.png differ diff --git a/docs/screenshots/05-late-night-avenue.png b/docs/screenshots/05-late-night-avenue.png index eeac7c5..263d3f6 100644 Binary files a/docs/screenshots/05-late-night-avenue.png and b/docs/screenshots/05-late-night-avenue.png differ diff --git a/docs/screenshots/06-night-flashlight.png b/docs/screenshots/06-night-flashlight.png index 588847e..a2b0269 100644 Binary files a/docs/screenshots/06-night-flashlight.png and b/docs/screenshots/06-night-flashlight.png differ diff --git a/docs/screenshots/08-escalation-hud.png b/docs/screenshots/08-escalation-hud.png index 3445582..97b0385 100644 Binary files a/docs/screenshots/08-escalation-hud.png and b/docs/screenshots/08-escalation-hud.png differ diff --git a/docs/screenshots/09-body-camera-timeline.png b/docs/screenshots/09-body-camera-timeline.png index aa0ef88..3d01e53 100644 Binary files a/docs/screenshots/09-body-camera-timeline.png and b/docs/screenshots/09-body-camera-timeline.png differ diff --git a/docs/screenshots/11-precision-walk.png b/docs/screenshots/11-precision-walk.png index 2053381..b414f34 100644 Binary files a/docs/screenshots/11-precision-walk.png and b/docs/screenshots/11-precision-walk.png differ diff --git a/docs/screenshots/12-joke-shop.png b/docs/screenshots/12-joke-shop.png index 8fd5698..fe02156 100644 Binary files a/docs/screenshots/12-joke-shop.png and b/docs/screenshots/12-joke-shop.png differ diff --git a/docs/screenshots/13-studio-arrival.png b/docs/screenshots/13-studio-arrival.png index 45fcc0f..8edb9e1 100644 Binary files a/docs/screenshots/13-studio-arrival.png and b/docs/screenshots/13-studio-arrival.png differ diff --git a/docs/screenshots/17-shift-review.png b/docs/screenshots/17-shift-review.png index d5b8436..28520ef 100644 Binary files a/docs/screenshots/17-shift-review.png and b/docs/screenshots/17-shift-review.png differ diff --git a/docs/screenshots/19-radial-menu.png b/docs/screenshots/19-radial-menu.png index f3be1c4..0c5689a 100644 Binary files a/docs/screenshots/19-radial-menu.png and b/docs/screenshots/19-radial-menu.png differ diff --git a/docs/screenshots/20-crowd-panic.png b/docs/screenshots/20-crowd-panic.png index 401fe9c..2b52df6 100644 Binary files a/docs/screenshots/20-crowd-panic.png and b/docs/screenshots/20-crowd-panic.png differ diff --git a/docs/screenshots/21-responder-arrival.png b/docs/screenshots/21-responder-arrival.png index 7f0711f..88611e4 100644 Binary files a/docs/screenshots/21-responder-arrival.png and b/docs/screenshots/21-responder-arrival.png differ diff --git a/docs/screenshots/README.md b/docs/screenshots/README.md index 8699d23..2ab3164 100644 --- a/docs/screenshots/README.md +++ b/docs/screenshots/README.md @@ -1,29 +1,34 @@ -# Screenshots +# Game screenshots -Committed gallery captures generated from the current build by src/test/capture_screenshots.gd, src/test/capture_ui_states.gd and src/test/capture_prop_gallery.gd. +The gallery is regenerated with `tools/check_screenshots.sh`, which re-renders every capture from +the current build and compares it with the screen-design reference. Captures are used by the +README, the gameplay docs and the screenshot gate; do not edit them by hand. -## Image previews +| # | Capture | What it shows | +| --- | --- | --- | +| 01 | [Overview](01-venue-overview.png) | Hollywood Boulevard, the El Capitan facade and the shift HUD | +| 02 | [Targeting](02-targeting-npc.png) | Focus ring, name tag and the target chip | +| 03 | [Inspection](03-access-inspection.png) | Artifact check and the recognize / decide controls | +| 04 | [Radio](04-radio-report.png) | Dispatch panel with the report fields | +| 05 | [Night street](05-late-night-avenue.png) | Late-shift lighting and the skyline | +| 06 | [Flashlight](06-night-flashlight.png) | Night patrol with the flashlight spot | +| 07 | [Wand screening](07-wand-screening.png) | False alarm on keys at the Joke Shop | +| 08 | [Escalation](08-escalation-hud.png) | Level 3 blocking with the body camera armed | +| 09 | [Timeline](09-body-camera-timeline.png) | Recorded events in the shift review | +| 10 | [Prop gallery](10-prop-gallery.png) | The Blender prop library on a studio backdrop | +| 11 | [Precision walk](11-precision-walk.png) | Half-speed movement on the steps | +| 12 | [Joke Shop](12-joke-shop.png) | Sunset Strip club frontage at night | +| 13 | [Studio arrival](13-studio-arrival.png) | Late-night TV studio entrance | +| 14 | [Start menu](14-start-menu.png) | Venue rows, Continue and campaign links | +| 15 | [Pause](15-pause-overlay.png) | Pause overlay actions | +| 16 | [Settings](16-settings-panel.png) | Difficulty, audio, accessibility and remapping | +| 17 | [Shift review](17-shift-review.png) | Grade, policy result and incidents | +| 18 | [Emergency radio](18-emergency-radio.png) | Hold-to-confirm emergency call | +| 19 | [Action wheel](19-radial-menu.png) | De-escalation-first verb wheel | +| 20 | [Crowd panic](20-crowd-panic.png) | Bystanders clearing away from an incident | +| 21 | [Responder arrival](21-responder-arrival.png) | A responder at the locked door | -| Preview | File | -| --- | --- | -| 01-venue-overview.png | [`01-venue-overview.png`](01-venue-overview.png) | -| 02-targeting-npc.png | [`02-targeting-npc.png`](02-targeting-npc.png) | -| 03-access-inspection.png | [`03-access-inspection.png`](03-access-inspection.png) | -| 04-radio-report.png | [`04-radio-report.png`](04-radio-report.png) | -| 05-late-night-avenue.png | [`05-late-night-avenue.png`](05-late-night-avenue.png) | -| 06-night-flashlight.png | [`06-night-flashlight.png`](06-night-flashlight.png) | -| 07-wand-screening.png | [`07-wand-screening.png`](07-wand-screening.png) | -| 08-escalation-hud.png | [`08-escalation-hud.png`](08-escalation-hud.png) | -| 09-body-camera-timeline.png | [`09-body-camera-timeline.png`](09-body-camera-timeline.png) | -| 10-prop-gallery.png | [`10-prop-gallery.png`](10-prop-gallery.png) | -| 11-precision-walk.png | [`11-precision-walk.png`](11-precision-walk.png) | -| 12-joke-shop.png | [`12-joke-shop.png`](12-joke-shop.png) | -| 13-studio-arrival.png | [`13-studio-arrival.png`](13-studio-arrival.png) | -| 14-start-menu.png | [`14-start-menu.png`](14-start-menu.png) | -| 15-pause-overlay.png | [`15-pause-overlay.png`](15-pause-overlay.png) | -| 16-settings-panel.png | [`16-settings-panel.png`](16-settings-panel.png) | -| 17-shift-review.png | [`17-shift-review.png`](17-shift-review.png) | -| 18-emergency-radio.png | [`18-emergency-radio.png`](18-emergency-radio.png) | -| 19-radial-menu.png | [`19-radial-menu.png`](19-radial-menu.png) | -| 20-crowd-panic.png | [`20-crowd-panic.png`](20-crowd-panic.png) | -| 21-responder-arrival.png | [`21-responder-arrival.png`](21-responder-arrival.png) | +The captures are 1280×720 PNGs. Reference designs and the judge report live in +[`../screens/`](../screens/README.md) and [`../screen-design-report.md`](../screen-design-report.md); +the re-evaluation's pose and review sheets are under +[`../blender_previews/`](../blender_previews/README.md).