// the find
rauchg/doom-captcha
A gag project that ports Doom to WebAssembly and wires it up as a browser CAPTCHA: prove you're human by fragging enough demons on Nightmare difficulty. It's a Vercel-deployed demo, not something anyone would actually ship as a real bot-blocker.
Runs a real Emscripten/SDL port of the original Doom source rather than a video or canned animation, so the game logic and rendering are genuinely live in WASM. The C-to-JS callback hooks (onPlayerBorn, onPlayerKilled, onEnemyKilled) are a clean, minimal surface for driving CAPTCHA state from inside the game loop. Forcing skill 5 plus -fast and skipping straight to e1m1 is a smart way to compress a full Doom session into something that resolves in seconds.
There's no actual CAPTCHA verification logic in the repo — no server-side token, no proof that a kill happened rather than being spoofed from the JS console, so as shipped it's a toy, not a security primitive. It depends on the user supplying their own doom1.wad and DOOM_WAD_URL, which is legally sound but means the project doesn't run out of the box. Build tooling is a single build.sh with no CI, no tests, and no docs on browser/device compatibility, and the vendored sdldoom-1.10 tree is 1990s C that nobody is going to want to patch for accessibility (there's no fallback for users who can't play an FPS).