Quake SRP Forbids Unsafe Rust and Credits Claude for the Code
Software / news
Quake SRP Forbids Unsafe Rust and Credits Claude for the Code
The browser port of id Software's 1996 game draws 207 Hacker News points, 1,035 commits and a pixel-match claim that its README limits to one build preset.
Quake SRP, a port of id Software's 1996 shooter to Rust that runs in a browser tab, forbids unsafe code in every crate, according to its README. The same README says "Claude (Anthropic's model) wrote the code and docs in Claude Code," with a human setting the rules, playing the game and reporting bugs.
The project page calls it Quake "ported to Rust from its GPL source and software-rendered in your browser," with no GPU and no dependencies. A Show HN post reached 207 points.
What the README promises
The README lists three rules: zero dependencies, no unsafe, and the "Classic" preset must match id's game. It says #![forbid(unsafe_code)] is set on every crate and binary, including the browser build, and that the port uses only the standard library.
| Claim | What the README says | Limit |
|---|---|---|
| No unsafe code | forbid(unsafe_code) on every crate and binary | Compiler-enforced, says nothing about idiom |
| Matches id's game | Pixel-by-pixel comparison against id's WinQuake C source, built headless | "Not one pixel may differ" applies to the Classic preset on an SSE2 floating-point build |
| Default build | x87 floating point | "Differs on scattered single pixels" |
| Dependencies | Standard library only | No crate list given |
That second row is the sentence worth reading twice. The repository's oracle/classic_check.py runs ten checks and is meant to print "ALL PASS," and its exact check compares the 3-D view pixel by pixel across many views. The guarantee holds for one preset on one floating-point mode, and the README says so itself.
How it was built
The README describes most of the work as running in parallel agents, each on its own git branch, with a "chair" agent that merged a branch only after the full check passed. The repository shows 1,035 commits on main, 49 stars and 2 forks. It is licensed GPL-2.0-or-later, matching the source it derives from.
On Hacker News, a commenter named airesQ, who replied as the author, called the project a hobby that took about four months and said it was "made by AI with human assistance." Another commenter, flohofwoe, wrote that all commits in the project are from Claude. The README's own account is consistent with that, though the page does not name the human.
Where the argument is
The thread did not dispute the pixel check. aroman praised the harness. The dispute was over what "safe" buys. dwroberts wrote that equating safe Rust with no unsafe is shallow, since code can avoid the keyword and still be non-idiomatic or sidestep the borrow checker. flohofwoe argued that the original C compiled to WebAssembly is "just as 'safe'" in a browser, and jagged-chisel answered a joking question about safety by saying the browser sandbox is the layer that matters.
Neither side produced an unsafe count, because there is nothing to count: the compiler refuses to build one. What the thread did not settle is whether a line-for-line translation, checked against the C original, is better software or only a different language.
What it costs a player in friction
The shareware episode is bundled from id's original 9.1 MB quake106.zip. Episodes two to four need your own id1/pak1.pak, mission packs need their own pak0.pak files, and the page says files you add "stay in this browser."
The page lists its own rough edges. On a Mac, a gaming mouse starts slow because macOS passes along only part of its movement. F12 screenshots reach the game only in fullscreen. Switching mission packs ends an unsaved game, and a browser sees a gamepad only after a button is pressed. A commenter, furoTmark, wrote that multiplayer does not work.
The same shape of project has appeared here before: a PSP game recompiled to run in a browser, and a browser engine generated from specs whose own completion figure was 0.6 percent. Quake SRP is the one that publishes a test it can fail.
A commenter, rvz, predicted the repository would be abandoned within a month. The repository's commit history will answer that by early November.
Sources
More in Software
- 01Python 3.15.0 Ships October 9 After Lazy-Import Bugs Forced an Unplanned Third CandidateThe release team had called rc2 final on September 1. Late blockers in PEP 810 added an rc3 on October 2 and pushed the stable build to October 9.
- 02LiteLLM's Rust Gateway Claims 15x Throughput, but Its Docs List Four Routes and No BenchmarksA June 22 blog post promised OCR, chat and a router by mid-September. The beta docs page read on October 10 shows a narrower path and a Docker image that is not published.
- 03Diagram Design Passes 47,900 Stars, and Its README Tells Git Users to Pick MermaidThe agent skill draws 44 diagram types as a single HTML file. Its own README admits layouts vary between runs, and five export bugs were filed on October 6.
- 04Anthropic's Knowledge-Work Plugins Have 28,300 Stars, a Datadog URL Due to Break and a Contribution Guide the CI OverridesThe 11-plugin repo is Apache-2.0 and trending. Its README asks for pull requests, a workflow closes them, and 76 issues sit open.