Skip to content

Jev directory

CommunityJev Cookbooks

PROMPT FPS

Two WebAssembly builds of the Chocolate Doom 3.1.1 engine play the same Freedoom map from the same initial state, with a Jev Choice decision picking each tactical macro and a local controller turning it into inputs.
Stars
32
Language
TypeScript
Reading time
3 min
Published by
Community
Author
lukaske
Last verified
Sep 2026

lukaske/jev-doom-agent

User repository on GitHub

View on GitHub

A browser-native Doom agent experiment with structured spatial state, composable AI controls, live decision telemetry, and a Chocolate Doom WebAssembly runtime.

Forks
8
Last pushed
Updated Sep 2026

Repo stats from the GitHub API, cached Oct 2026.

About this project

Two isolated instances of the actual Chocolate Doom 3.1.1 engine, compiled to WebAssembly, play the same Freedoom map from the same initial state. A TypeSafe Jev Choice decision—or an explicitly labeled deterministic offline policy—selects a tactical macro; the local motor controller turns that macro into Doom controls.

Quoted from the project's README. Read the full README.

Highlights

  • Jev receives structured game state - health, armor, ammo, damage, coordinates, kills, line-of-sight monsters, and pickups - not raw pixels.
  • The local motor controller executes each macro as movement, turning, firing, weapon, or use inputs; Jev never controls engine internals.
  • A failed or low-confidence call is marked FALLBACK and never silently becomes simulated Jev; offline mode displays OFFLINE SIMULATED POLICY - NOT JEV.
  • A vendored GPL Chocolate Doom fork built with Emscripten 4.0.14 drives the engine, and the API key is kept only in process memory, never logged or persisted.
  • The project ships only Freedoom 0.13.0 content, and the controller performs short keyboard-level macros rather than omniscient pathfinding.

Quickstart

bash
npm install
npm run dev
# open http://127.0.0.1:5173/compare and click Connect Jev

Watch out

No license file, so reuse terms are unclear, while the vendored Chocolate Doom fork is GPL-2.0-or-later and Freedoom content is BSD-licensed; needs Node and a TypeSafe API key for live decisions.

Questions about this entry

Short answers drawn from the linked project or page.

Reactions & coverage

Posts, threads, and videos about this entry from around the web.

X: Text-to-screenshot (Malay Vasa)

X: Google's MediaPipe Decision Maker, tested in the browser

Hacker News: Software Bombe and live Enigma demo where Jev ranks cribs and judges plaintext.

ag_212 pointsShow HN: Jev as the Bletchley Park Analyst: A Software Bombe on EnigmaRead the thread on Hacker News

Hacker News: Show HN for public Minecraft PvP where a diffusion LM picks moves from structured state.

2 pointsShow HN: Minecraft PvP against DiffusionGemma-as-Jev, 24 ms per decisionRead the thread on Hacker News

From the Jev guides

Original write-ups on what this entry is for.

From the Jev AI model community

Posts from builders shipping with Jev right now.

Follow @typesafeai