Mistral AI · "Le Chonk wants to play" challenge

Le Chonk plays DOOM

A DOOM-like FPS. Mistral Large 4 plays it alone. It sees the screen, aims with a ruler, explores, opens doors and beats the boss.

CHONK DOOM gameplay

The video

The game

Angry dogs and mice invaded the house. Le Chonk grabs his laser pistol.

  • 🏠 3 levels: Le Salon → La Cuisine → La Cave.
  • 🔫 Fist, laser pistol, shotgun, chaingun.
  • 🔑 Keys, locked doors, a secret, explosive barrels.
  • 🦴 REX, the armored Doberman boss.
  • 🎨 All art, music and sounds made in code.
  • 🧑 Humans can play too: arrows + Space.

The harness

Time freezes while Le Chonk thinks. Then his actions run in real time. Surprises interrupt him.

1Observe

Frame + text: status, automap, known doors, items, EXIT, notes.

→
2Think

mistral-large-4. Last 4 turns as text, current image only.

→
3Act

One tool call: act({ thought, actions, notes }).

→
4Execute

60 Hz inputs. Stops when hurt or a new enemy shows up.

What he sees

Frame sent to the model
The exact frame sent. The degree ruler turns "where is it?" into "turn −25°".
loading…

What he can do

attack {degrees, shots}turn, then fire
explore {tiles}walk into the unknown
go_to {x, y}shortest path, presses doors and EXIT
move / strafe {tiles}walk, back off, dodge
turn / shoot / usefine control
weapon {slot}fist · laser · shotgun · chaingun
wait {seconds}ambush
noteshis memory, shown every turn

Interrupts make long plans safe. So he plans long when calm and short in combat. Fewer calls, faster, cheaper.

Le Chonk thinks

Unedited thoughts from his full-game run.

loading…

📼 Watch the replay

Benchmark

Mistral Large 4 vs open-weight rivals. Same game, harness and prompt. Two leagues: instruct and reasoning.

The benchmark is running…

📦 Download every trace (frames included)

Evals

14 staged scenes from the real engine, 3 trials each. Aim: hit an enemy at a known angle. Decisions: key first, eat when low, explore, shoot, press EXIT.

loading…

Bloopers

🧀 "The milk bottle"

He tried to drink an explosive barrel. Three times. Fix: red barrels with a hazard sign.

🗺️ Counting columns

He read the EXIT at the wrong column and wandered. Fix: exact coordinates in the observation.

🐭 "0°… 0 hits"

Mice in melee range were too thin to hit. Fix: DOOM-sized hitboxes.

🔢 5 or S?

"+15" on the ruler read as "+1S". Fix: a clearer font for numbers.

🐕 Skipping the boss

He walked past Rex to the EXIT. Fix: the EXIT stays sealed while Rex lives.

💀 Death spiral

He respawned with low health and died again. Fix: respawn at 100 HP, like DOOM.

Reproduce it

No install

Open the game → Let Le Chonk Play. Watch a replay, or paste your own key.

Locally

git clone https://github.com/goums/chonk-doom
cd chonk-doom && npm install
echo "MISTRAL_STUDIO_API_KEY=…" > .env
echo "OPEN_ROUTER_API_KEY=…" >> .env
npm run dev                # play / watch
npm run bench:install
npm run bench -- --provider mistral --runs 2
npm run eval
node bench/publish.mjs     # charts + site data

Tech stack

  • TypeScript · three.js · Canvas 2D · Web Audio + ZzFX
  • Vercel AI SDK (Mistral + OpenRouter providers)
  • Evalite + Vitest · Playwright
  • Vite · GitHub Pages
  • Resurrect 64 palette · Pixelify Sans · Press Start 2P

Credits

  • 1 human (@goums) + Claude Code
  • Mistral Large 4 makes every in-game decision