JevDoom.
Ten actions. One tiny decision at a time. Play the first-person 3D shooter, then hand the controls to Jev.
Focus the arena: W/S move · A/D strafe · Q/E or ←/→ turn · Space shoot · F door · R item. Drag the 3D view to turn; click or tap to fire.
Changing controls or chaos starts a fresh run. The optional tactical map shows the whole arena; Jev gets only the inspectable visibility features. No Doom assets or emulator are required.
Inside the decision
Jev waits for each response, then applies one action. Turns toward a visible enemy stop at its bearing; Jev still chooses when to turn and shoot. Throughput = valid classifications ÷ elapsed request time, including the safety queue and network. The 200ms target is a demo challenge, not a claim about human perception. One newest decision can control the arena per batch.
Switch to Jev control to watch live classification.
All ten allowed actions
Inspect exactly what Jev sees No request yet
Deterministic geometry supplies these features. Jev receives no pixels, source code, or hidden map. Visible targets must be within eight tiles, a 90° horizontal field of view, and an unobstructed line of sight.
enemy_visibletrueenemy_distancemediumenemy_angle_degrees0enemy_bearingcenterhealth_pct100ammo_pct80wall_aheadfalsewall_leftfalsewall_rightfalsedoor_aheadfalseitem_visiblefalseitem_nearbyfalseitem_kindnoneitem_bearingnonelast_actionidleCurrent live features
{
"enemy_visible": true,
"enemy_distance": "medium",
"enemy_angle_degrees": 0,
"enemy_bearing": "center",
"health_pct": 100,
"ammo_pct": 80,
"wall_ahead": false,
"wall_left": false,
"wall_right": false,
"door_ahead": false,
"item_visible": false,
"item_nearby": false,
"item_kind": "none",
"item_bearing": "none",
"last_action": "idle"
}Decision trace 0 batches
Only the newest frame may set the action, and only while it is still current. Simulation waits during the request. Each accepted choice executes once; earlier frames are classification samples, never queued controls. The last eight batches are retained.
Same arena. Three controllers.
| Controller | Kills | Damage | Survival | Accuracy | Jev decisions/s |
|---|---|---|---|---|---|
| Human | — | — | — | — | No model call |
| Jev | — | — | — | — | — |
| Random | — | — | — | — | No model call |
Same seed, 200ms simulation ticks, 90s simulation limit. Jev pauses the simulation while awaiting each decision; API wait time does not count as survival. Its chosen turns use visible-target precision. Human and random controls run continuously. These are session observations, not a controlled model benchmark. Jev decisions/s counts valid frame classifications per second of elapsed request time, including the safety queue and network; only the newest frame can control the arena. Switching mode saves this run and resets the arena.