← Back to stories

bunpav ·

Claude of Duty: Matt Shumer’s AI-Built Three.js FPS With Zero Art Assets

Matt Shumer open-sourced Claude of Duty — a ~55k-line Three.js FPS with no art assets, built by Claude agents. What it is, how good it is, and how to run it.

8 min readbunpav crewAIIndie gamesGame Dev ToolsPC gaming

On July 25, 2026, investor and builder Matt Shumer posted a browser FPS demo with the kind of caption that breaks timelines: Claude Opus 5 one-shotted this game, and every texture, mesh, and sound was custom code — no external assets. By July 26 the MIT repo Claude-of-Duty and its seed prompt were public.

bunpav first saw the story through explainx.ai’s Claude of Duty decode — then went to the README. The game is real, playable, and aggressively procedural. It is also not Call of Duty, and the authors refuse to pretend it is. That honesty is why this belongs next to our Notch vibe-coding reversal coverage, not in the hype bin.

TL;DR — what people are actually asking

QuestionDirect answer
What shipped?Browser FPS on Three.js r180 / WebGL2
Size?~55k lines, 11 subsystems
Assets on disk?None — procedural everything
Runtime deps?three only
“One-shot”?One public seed prompt + documented agent/critic loops
CoD match?Self-scored peak ~5.05/10; blind critics pick real CoD
Play now?npm install && npm run dev → localhost 5173
License?MIT

What did Shumer actually claim?

From the July 25 X demo thread (paraphrased in the public follow-ups): Opus 5 produced the game; everything visible is custom code; AI games are going to be amazing; prompt and code would ship if interest was high — then they did.

The interesting tension is between the tweet (“one-shotted”) and the repo. prompt.md is a single block that demands AAA CoD parity, sub-agent fan-out, /loop, and a harsh critic that keeps going until a blind side-by-side prefers the AI frame. The README then documents:

  • a fleet of AI agents under orchestration
  • ARCHITECTURE.md as the agent contract
  • critic score ladders (3.59 → 5.05)
  • a screenshot + profiler harness that had to be fixed before numbers meant anything

So: one seed, many agents, many loops. That is still a landmark demo. It is not “I typed one sentence and walked away for coffee.”

What’s in the playable build?

Controls match a modern shooter muscle-memory map: click to lock cursor, WASD, mouse aim, LMB fire, RMB ADS, R reload, Shift sprint, Ctrl crouch, Space jump, Q/E lean, Esc to release.

Under the hood (per the project README):

LayerPlayer-facing meaning
World~120×120 m market street, enterable interiors, hundreds of props
GunplayProcedural weapons, ADS, spring recoil, ballistics with travel time and drop
MovementSlide, mantle, lean, camera feel
AISkinned soldiers, navmesh, cover, ragdoll deaths
LookHDR pipeline, shadows, ambient occlusion, TAA, bloom, AgX tonemap
FeelSynthesized gunfire, HRTF spatial audio, occlusion — no .wav library

For a procedural asset shop like bunpav’s Primitive Lab, the materials chapter is the familiar thesis taken to an extreme: 19 procedural surfaces (concrete, brick, metal variants, wood, fabric, glass…) forged on the GPU so nothing tiles from a downloaded atlas.

How good is it, really?

The README’s own section title is Honest assessment. Quote the verdict:

The goal was to match a modern Call of Duty. It does not.

Eleven adversarial critics scored frames against that bar. Peak average landed around 5.05 / 10. Two shots got “CLOSE”; the rest stayed “AMATEUR.” Blind A/B: every critic, every round, picked the real CoD frame.

Named shortfalls:

  • Hands read as blocky finger slabs
  • Materials look like procedural noise up close, not photographed reality
  • Enemies read as mannequins at distance
  • Indirect light is an approximation, not real GI
  • Frame rate on the author’s Retina laptop: about 28–30 fps p50 after optimization (art passes had roughly doubled triangle count)

There is also a known viewmodel lighting bug: the gun’s light rig over-irradiates relative to the world, so weapon albedos are cheated darker to compensate — which caps how rich the most-looked-at object can ever look.

bunpav’s take: that scorecard is the reason to trust the demo. Viral AI game posts usually hide the failure mode. This one publishes it.

Why the tooling section matters more than the killfeed

Shumer argues the harness is the interesting part. Two bugs in their own measurement stack are worth stealing for any studio evaluating AI game agents:

  1. Static-camera “94 fps” while the game was unplayable. Real motion at Retina DPR exposed 728–1236 ms stalls from 34+ WebGL programs compiling mid-fight. Median FPS hid the hitch.
  2. Screenshot sets were not reproducible until each shot ran in an isolated page (baseline.mjs). Only then did imagediff.mjs become a real pixel gate.

Optimization was constrained to zero visual change, enforced by that pixel gate — not by “looks fine to me.” Shader pre-warm removed in-play compiles; boot dropped from ~9–12 s to ~3.7–4.6 s on the author’s machine.

Process lesson that matches every multi-agent war story we’ve seen this year: parallel agents owning directories lost to sequential ownership on coupled lighting (tonemap + sky + indirect). Fan-out moved the score little and raised defect counts; one sequential pass cut defects hard. That rhymes with why Claude + Blender MCP demos impress more when the loop can see a render and fix it than when six specialists edit blind.

How this sits next to other July 2026 AI-game noise

StoryAngle
Notch → vibe codingFamous skeptic opens the door for tooling, not core gameplay
Roblox BuildPlatform-scale generative creation for mobile creators
Claude Blender MCPAgent operates a DCC, not a custom engine
Claude of DutyAgent fleet invents the engine + content with no art drop

Same month, different altitudes. CoD-quality still needs humans (and decades of pipelines). “Playable FPS loop with no art department” just moved from conference slide to git clone.

For deeper stack, prompt text, and harness tables, read the explainx.ai Claude of Duty post that surfaced this for us — then verify against the GitHub README.

What does “one-shot” mean when the prompt itself demands loops?

This is the part X compresses into a gotcha. Critics of AI demos often say: “They never share the prompt because it was fifty turns over three days.” Shumer shared the prompt. It is short. It also explicitly orders fan-out, /loop, and a critic that refuses to stop until a blind CoD comparison is won.

That is closer to a product requirements document for an agent swarm than a parlor trick. The published outcome — critic scores stuck near five, defects rising under parallel ownership, then falling under sequential ownership — is exactly what you would expect if the brief was “keep going until AAA” and the physics of coupled lighting systems refused.

If you are evaluating whether Opus 5 “solved games,” ask a sharper question: can an orchestrated agent fleet maintain a playable FPS without an art pipeline, with measurable visual gates? On the evidence in this repo, yes. Can it beat Infinity Ward / Treyarch frames in a blind test? On the evidence in this repo, no.

That split is useful for studios. It means vibe coding is past “spinning cube” and not yet at “ship Black Ops.” The interesting work for the next year is the middle: game-jam asset pipelines, Unity MCP agent loops, and procedural libraries that keep hero art human while agents fill the street.

Performance, without the marketing chart

Author-machine numbers (Apple silicon, 1512×982, DPR 2, ultra, AI + firing active), from the README:

Before optimizationAfter
fps p5012–1728–30
fps p994–914–17
worst frame728–1236 ms66–82 ms
shader compiles in play34–350
boot~9–12 s3.7–4.6 s

The constraint that makes this credible: optimization had to be pixel-identical to the pre-opt reference across 11 baseline shots. If your studio’s AI eval only reports average FPS on a paused menu, you will green-light unplayable builds. Steal the hitch attribution idea even if you never clone Claude of Duty.

What should you do if you care?

  1. Clone and run it before arguing on X — five minutes of WASD beats another quote-tweet.
  2. Read prompt.md and the Honest assessment in the same sitting. The gap is the story.
  3. If you evaluate coding models for games, steal the idea of profile.mjs under real DPR with AI enemies firing — not a static beauty shot.
  4. If you make assets, note the ceiling: procedural noise still loses to photographed material richness at arm’s length — which is why text-to-3D and image-to-3D pipelines still matter for hero props.
  5. Do not ship a commercial CoD clone off this. Activision owns that IP; this is a technical homage under MIT for the code, not a license to brand it Call of Duty.
  6. Watch the harness pattern, not the star count. Stars age hourly; pixel gates and hitch attribution travel.

Demo claims, critic scores, and performance numbers are taken from the public Claude-of-Duty README and Shumer’s July 25–26, 2026 posts, as summarized in explainx.ai’s coverage. Re-clone and profile on your own hardware before treating fps figures as universal.

Player questions

What is Claude of Duty?

Claude of Duty is an open-source browser first-person shooter released by Matt Shumer in July 2026. It uses Three.js r180 and WebGL2, spans roughly 55,000 lines across 11 subsystems, and generates every texture, mesh, animation, and sound procedurally at load time with no image or audio files.

Did Claude Opus 5 really one-shot the whole game?

Shumer’s X post frames it as an Opus 5 one-shot. The published prompt.md is a single seed that orders sub-agent fan-out, /loop, and harsh visual critics. The README documents multi-agent orchestration, critic rounds, and a screenshot/profiler harness — so one seed prompt is real; “zero iteration” is not how the repo describes the build.

Where can I play Claude of Duty?

Clone github.com/mshumer/Claude-of-Duty, run npm install and npm run dev, then open http://127.0.0.1:5173 and click the canvas to lock the mouse. There is no official hosted multiplayer service — it is a local Vite demo.

Does it look as good as Call of Duty?

No — and the project says so. Adversarial critic scores peaked around 5.05 out of 10 versus modern CoD. Two shots reached “CLOSE”; most stayed “AMATEUR.” In blind A/B tests, every critic every round preferred the real Call of Duty frame.

Are there any downloaded models or sound packs?

No. The README states there are no models, HDRIs, image files, or audio files. Materials are forged on the GPU; audio is synthesized in the Web Audio API. The only runtime npm dependency is three.

Why does this matter for game news in July 2026?

It lands in the same week as Claude Opus 5’s launch and a wave of AI-built Three.js demos. For gamers it is a playable curiosity; for studios watching vibe coding — including Notch’s same-month reversal — it is evidence that agent fleets can ship a full FPS loop without an art pipeline, even if AAA parity is still far off.

More to read