Files
settled-reach/tests/visual.json
T
jpmschweitzerandClaude Fable 5 a45d4a5f58 feat(client): capture harness redesigned for the stepped Atlas — (body, rung) goldens (T-1157)
_setup_atlas_golden_shot and _run_atlas_matrix rebuilt on the real D-255
surface: nav.push('regional') through AtlasApp's own body-selection tail,
then StepCanvasViewer.jump_to at a fixed center (inventory item 5) — no
shim over the retired continuous-zoom API. is_pending()-aware bounded
settle (mirroring atlas_agent_driver.gd) and view-transform logging
(inventory item 3) wired into both capture paths. The 12 z2_0/z4_0/zfit
goldens are replaced by 12 (body, rung) goldens captured live against
fresh --test-mode servers; atlas_shots.json/visual.json re-keyed;
atlas_gen_open's stale gen_l1_* overlay ids fixed to gen_dw_temp.

Verification: two consecutive District runs byte-identical, and a
cold-vs-warm disk-cache invariance proof on both terrain draw branches
(Global/NEAREST, District/LINEAR) — byte-identical either way, so
capture output does not depend on the shared user://atlas_cache state.
DEVOPS.md's real-rendering exception note now records the fold-target
mapping for the smoke file T-1182 already deleted (Global + District
goldens exercise its two real-pixel draw branches). Old legacy-tracked
.import sidecars go with their PNGs; new goldens ship bare per
.gitignore's client/**/*.import rule.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-25 22:13:37 +02:00

211 lines
7.9 KiB
JSON

{
"resolution": [960, 540],
"settle_frames": 30,
"tolerance": 5,
"max_diff_pct": 0.5,
"golden_dir": "client/tests/golden/visual",
"_comment_atlas_goldens": "T-1157 (D-255 rewrite of the T-1120 matrix, PR #180 provenance carried forward, Tyre): the atlas_* golden scenarios below key on (body, rung) per the stepped Atlas ladder, captured AND verified (exact pixel match) on danoontje's Mesa/AMD stack. T-1121 documents that goldens do NOT port across boxes at the current tolerance (the 19 pre-existing goldens fail 12-14% on this same box) — an atlas_* golden failing on a DIFFERENT machine is expected baseline drift, not a regression, until T-1121 resolves the canonical-capture-box question.",
"scenarios": {
"fog_3state": {
"ticks": 5,
"description": "All 3 fog states — clear/explored/unexplored"
},
"fog_diagonal": {
"ticks": 10,
"description": "Diagonal LOS boundary (staircase regression target)"
},
"fog_boundary": {
"ticks": 8,
"description": "Explored/unexplored transition centered in frame"
},
"fog_zone_tint": {
"ticks": 5,
"description": "Bar zone warm amber tint in explored fog (D-046)"
},
"fog_debug": {
"ticks": 5,
"description": "Raw exploration overlay (green/blue/red)"
},
"npc_in_fog": {
"ticks": 5,
"description": "NPC sprite visible above fog overlay (D-033)"
},
"hud_default": {
"ticks": 1,
"description": "Full HUD: time, Careful stance (green), minimap, monologue"
},
"dialogue_open": {
"ticks": 3,
"description": "Dialogue box + interaction prompt + key bar positioning"
},
"dialogue_with_monologue": {
"ticks": 4,
"description": "Confrontation beat: dialogue + monologue simultaneously"
},
"minimap_stance": {
"ticks": 2,
"description": "Minimap + Sprint stance indicator overlap (top-right)"
},
"cursor_menu": {
"ticks": 3,
"description": "Cursor rendering over dialogue option"
},
"fog_live_replay": {
"ticks": 1,
"description": "Replay real server hub snapshot — full pipeline fog test",
"replay_snapshot": "tests/fixtures/gauntlet/hub_spawn.msgpack"
},
"fog_theater_replay": {
"ticks": 1,
"description": "Replay Fog Theater — large room with NPCs at varying distances",
"replay_snapshot": "tests/fixtures/gauntlet/fog_theater.msgpack"
},
"fog_boundary_replay": {
"ticks": 1,
"description": "Replay hub after movement — explored/visible tile boundary",
"replay_snapshot": "tests/fixtures/gauntlet/hub_after_movement.msgpack"
},
"fog_live_hub": {
"ticks": 10,
"live": true,
"description": "Live server: Hub spawn fog — real pipeline regression test"
},
"implant_pending": {
"ticks": 1,
"description": "ImplantPending — diegetic Layer-1 generating indicator (#960)"
},
"atlas_gen_open": {
"ticks": 240,
"description": "Live: real atlas opener (HudGroups) + GJ71c region-ramp overlay (#960, D-255 rewrite)"
},
"locomotion_idle_live": {
"ticks": 90,
"live": true,
"scene": "res://scenes/locomotion_sandbox.tscn",
"description": "Live 3D sandbox: character idle at Hub spawn — greybox floor, -30 deg frame (T-1088)"
},
"locomotion_cutaway": {
"ticks": 540,
"live": true,
"scene": "res://scenes/locomotion_sandbox.tscn",
"env": { "SR_AUTOPILOT": "stance_up,south:6.0" },
"description": "Live 3D sandbox: autopilot walks south into a wall — cutaway stub golden (T-1088)"
},
"atlas_GJ380c_Global": {
"ticks": 240,
"live": true,
"description": "T-1157 curated Atlas golden (D-255): Lendel (GJ380c), Global rung (rung 0), temperature overlay"
},
"atlas_GJ380c_Region": {
"ticks": 240,
"live": true,
"description": "T-1157 curated Atlas golden (D-255): Lendel (GJ380c), Region rung, moisture overlay"
},
"atlas_GJ380c_District": {
"ticks": 240,
"live": true,
"description": "T-1157 curated Atlas golden (D-255): Lendel (GJ380c), District rung, no overlay"
},
"atlas_GJ144e_Global": {
"ticks": 240,
"live": true,
"description": "T-1157 curated Atlas golden (D-255): Vethis (GJ144e), Global rung, no overlay"
},
"atlas_GJ144e_Quarter": {
"ticks": 240,
"live": true,
"description": "T-1157 curated Atlas golden (D-255): Vethis (GJ144e), Quarter rung, vegetation overlay"
},
"atlas_GJ338Bd_Global": {
"ticks": 240,
"live": true,
"description": "T-1157 curated Atlas golden (D-255): Arbour (GJ338Bd), Global rung, moisture overlay"
},
"atlas_GJ338Bd_Block": {
"ticks": 240,
"live": true,
"description": "T-1157 curated Atlas golden (D-255): Arbour (GJ338Bd), Block rung, no overlay"
},
"atlas_GJ820Bc_Global": {
"ticks": 240,
"live": true,
"description": "T-1157 curated Atlas golden (D-255): Ferrath (GJ820Bc), Global rung, no overlay"
},
"atlas_GJ820Bc_District": {
"ticks": 240,
"live": true,
"description": "T-1157 curated Atlas golden (D-255): Ferrath (GJ820Bc), District rung, temperature overlay"
},
"atlas_GJ251c_Global": {
"ticks": 240,
"live": true,
"description": "T-1157 curated Atlas golden (D-255): Ruhr (GJ251c), Global rung, vegetation overlay — highest-population body in the sample"
},
"atlas_GJ251c_Region": {
"ticks": 240,
"live": true,
"description": "T-1157 curated Atlas golden (D-255): Ruhr (GJ251c), Region rung, no overlay"
},
"atlas_GJ244Ad_Global": {
"ticks": 240,
"live": true,
"description": "T-1157 curated Atlas golden (D-255): Edict (GJ244Ad), Global rung, temperature overlay — frozen planet_class pick"
},
"atlas_GJ445c-m1_Chunk": {
"ticks": 240,
"live": true,
"description": "T-1157 curated Atlas golden (D-255): Jinghu (GJ445c-m1), Chunk rung (deepest), no overlay — inhabited moon pick"
}
},
"flows": {
"flow_dialogue": {
"interval": 3,
"steps": [
{ "action": "MoveSouth", "label": "approaching NPC" },
{ "action": "Interact", "label": "dialogue opens" },
{ "action": "wait", "label": "reading options" },
{ "action": "select_option_1", "label": "option selected" },
{ "action": "wait", "label": "NPC response" },
{ "action": "MoveNorth", "label": "walking away" }
]
},
"flow_explore": {
"interval": 3,
"steps": [
{ "action": "MoveNorth", "label": "moving north" },
{ "action": "MoveNorth", "label": "fog revealing" },
{ "action": "MoveNorth", "label": "near wall" },
{ "action": "MoveSouth", "label": "fog hiding" }
]
},
"locomotion_gaits": {
"interval": 2,
"live": true,
"scene": "res://scenes/locomotion_sandbox.tscn",
"env": {
"SR_AUTOPILOT": "east:2.0,stance_up,east:2.0,stance_up,east:2.0,stance_down,stance_down,stance_down,south:2.0,wait:1.5"
},
"description": "T-1088 stance ladder movie — NOT golden-compared. Movie mode starts no server: run `cd server && cargo run --bin settled-reach-server -- --test-mode` first, then `SR_LIVE=1 SR_PORT=9876 tests/run-visual --movie locomotion_gaits`",
"steps": [
{ "action": "wait", "label": "careful gait east" },
{ "action": "wait", "label": "walk gait east" },
{ "action": "wait", "label": "sprint gait east" },
{ "action": "wait", "label": "crouch gait south" },
{ "action": "wait", "label": "settling to idle" },
{ "action": "wait", "label": "idle rest" }
]
}
},
"crops": {
"top-right": [760, 0, 200, 200],
"top-left": [0, 0, 250, 150],
"bottom": [0, 340, 960, 200],
"full": [0, 0, 960, 540]
},
"thumbnail": {
"width": 240,
"height": 135,
"columns": 4
}
}