Claude helped port Quake to safe Rust, with tests against the original
The browser-playable WinQuake port uses Claude Code and checks rendered frames, game state and audio against id Software's C implementation.
By Ryan Merket · Published
Primary source: Hacker News
Why it matters
Quake-SRP shows how agent-written code can be evaluated against a known implementation, with automated checks for pixels, game state and audio. The result is evidence for a workflow based on those checks, not proof that agents can safely replace systems whose behavior cannot be independently compared.

A solo developer has used Anthropic's Claude Code to port id Software's 1996 game Quake from C to Rust and put the single-player engine in a browser. The project, Quake-SRP, runs without Rust's unsafe code and includes a test harness comparing its behavior with the original WinQuake implementation.
The developer, who posted the launch as ilreb on Hacker News, describes Claude as the author of the code and documentation. The human contributor set constraints, played the game, reported problems and directed work across agent-generated branches. A coordinating agent merged branches only after the full checks passed, according to the project's README. Anthropic is identified as the maker of the coding model; the project materials do not describe it as a sponsor or funder.
The Rust port runs alongside a headless build of id's C source, which serves as a reference implementation. The project's checks compare rendered 3D pixels, elements of the interface, audio output and game state during demo playback. Its README says the pixel comparisons include hundreds of frames across all nine maps, at two sizes and with monsters active. The comparison also records known differences rather than claiming every behavior is identical.

This setup lets the project test agent-assisted programming against an existing implementation, with several outputs available for direct comparison. The checks are the creator's own, and their scope has limits. Pixel-level agreement in the tested views does not establish that every possible gameplay path is equivalent or that the port is free of defects. Nor does a forbid(unsafe_code) setting certify all aspects of software safety. It does show that the Rust crates and browser binary disallow explicit unsafe blocks, while the harness tests selected forms of behavioral fidelity.
The port preserves WinQuake's CPU-based software renderer rather than replacing it with a GPU renderer. In the browser, a WebAssembly program runs in a Web Worker; the page passes input to it and shares memory for image and sound output. The game keeps its 8-bit palette through rendering. The project's default preset adds widescreen and uncapped display-refresh rendering, while a Classic preset turns off the listed enhancements and targets the original game's behavior.

Players can open the browser demo and play the shareware episode with keyboard and mouse, gamepad or touch controls. The port also supports saves, console commands and fullscreen play. Multiplayer is not included. Owners of the registered game or mission packs can load their own files; the repository says it does not contain those game data files. The README reports testing in Chromium and Firefox on Linux, Chrome on macOS and Chrome on an Android phone; it says Safari, iPhone and iPad have not been tested.
Quake-SRP is a side project, not a disclosed startup or commercial launch. Its code is published under GPL-2.0-or-later, and the project identifies the original WinQuake source as its starting point. id Software's public Quake source repository includes WinQuake and describes the source release as GPL-licensed. The game data remains subject to separate terms, which anyone distributing a port would need to consider.
The project is deliberately a port of the original source rather than a rewrite from a later engine fork. In a post accompanying the release, its creator said the original code was the default choice for a side project framed as 'let's port quake.' That choice gives the work a clear reference for testing, but also narrows what it demonstrates: a faithful port of a well-documented, open-source game is a different task from adapting a proprietary system whose behavior, tests and data are unavailable.
For developers evaluating coding agents, the workflow on display is to break a large port into branches, set explicit constraints, and require agents to pass repeatable checks before their work lands. Quake-SRP offers evidence that this process can produce a playable result and measurable agreement with a known implementation. It does not, on its own, show that the same process can safely replace software without a reference system against which to check it.