Development shooting replay
Open Basic · Predict Position · Maze · Snake
All four development demos use the same unified NanoJev checkpoint: hard_lr1e5, step 400, SHA256 f68c47d66998231b86b7e91b4ed5e82ae23acf104c8b7cd6d165c3ac7b7ffe1b.
The light Basic viewer compares Jev, NanoJev and Untuned Qwen with original ViZDoom frames and recorded action probabilities. Play, pause, seek, change speed or advance one physical tick. Each model freezes at its actual terminal transition while the shared clock continues.
Featured wins
The player opens on Cross the sightline, seed 9030060: NanoJev moves into position and eliminates the target in 49 ticks. Jev and Untuned Qwen reach the 286-tick deadline without a hit. The Play the NanoJev win button returns to this case and starts synchronized playback.
Two additional selected wins show a target on the left (seed 9030126, 37 ticks) and a smaller correction to the right (seed 9030033, 49 ticks). Both comparison models fail in all three selected illustrations.
Full evaluation
The score strip uses the entire frozen cohort, separately from the selected illustrations:
| Policy | Test, four ticks/action | OOD, eight ticks/action |
|---|---|---|
| NanoJev | 128/128 | 128/128 |
| Jev | 56/128 | 59/128 |
| Untuned Qwen | 56/128 | 59/128 |
The three systems share case definitions, visible-state questions, candidate actions and the epsilon-greedy controller (epsilon=0.1, sampling seed 17). Untuned Qwen uses original Qwen/Qwen3-0.6B weights at revision c1899de289a04d12100db370d81485cdf75e47ca and its vocabulary head. Displayed probabilities precede the common exploration step.
The Predict Position demo features two wins from the same checkpoint: waiting to hit a moving target and turning before the shot. Maze uses the original 50×50 challenge with local safety questions and remembered edges. Snake returns to the 12×12, 256-step challenge: keep growing and collect food throughout the full game. The shared Snake controller filters immediate collisions and available food routes, then asks each model to choose among the remaining actions. In these restored challenges, current NanoJev completes the maze in 225 attempts and collects 30 food items across the full Snake game.
Export and verify
Each exporter replays complete recorded decisions in the original environment on CPU. Every observation, reward, transition and final outcome must match the source. ViZDoom images are captured after existing one-tick calls and decoded from lossless WebP atlases to verify exact pixels. No extra simulator ticks or model calls are added.
python scripts/build_unified_basic_demo.py \
--output runs/unified_basic_demo_export \
--receipt runs/unified_basic_demo_export/receipt.json
python3 -m http.server 8081 --bind 127.0.0.1 --directory webOpen http://127.0.0.1:8081/dev/. Export paths must be fresh; the recorded experiment files are inputs. --validate-only checks sources, model identity and selected outcomes without rendering.
scripts/check_hard_development_demo.mjs checks all four tasks, checkpoint identity, displayed frames, recorded outcomes, controls, navigation and desktop/mobile layout. scripts/stage_development_site.py stages the independent development assets and requires matching checkpoint hashes across the four tasks. The hosting bundle contains viewer code and recorded media.