A 3D game in one prompt: Willison one-shots Raccoon Heist with Claude Fable 5
Simon Willison used Claude Fable 5 in Claude Code for web to build a complete 3D browser game from a single prompt. The agent chose Three.js on its own, generated textures by calling an OpenAI API, made continuous commits to a GitHub branch, and delivered a playable result on GitHub Pages. All from his phone.
For those using or building agents, the experiment reveals a pattern taking shape. Willison gave Fable 5 three things: a clear goal, access to an external tool (an OpenAI API key for textures), and a feedback mechanism (continuous commits to GitHub Pages to watch progress unfold). The agent did the rest, even adding a guard dog as a difficulty escalation and writing automated tests to verify it.
After rewriting sqlite-utils with Claude Fable in July, Willison pushes the same model toward creative one-shotting: the initial prompt is the only human intervention, and the agent works alone through delivery. The difference between a session requiring constant corrections and one that closes itself lies in what you give it at the start.
In detail
Willison’s experiment tests a precise boundary: how far can an agent go with a single prompt and no further interaction?
The starting point was a 2022 tweet where Willison had asked GPT-3 to describe a game about thieving raccoons, accompanied by images generated with DALL-E. Four years later, he gave those same images to Claude Fable 5 along with a prompt written on his phone: build this 3D game for the browser, work alone, don’t ask me for design decisions, make continuous commits so I can see your progress.
The workflow around Claude Code for web is the most replicable part. Claude Code works on a repo branch, and Willison configured GitHub Pages to auto-deploy on every push. This lets him watch the agent’s work update in real time without needing to interact with it. It’s a pattern that solves a concrete operational problem: Claude Code for web lacks an integrated preview while the agent works, and GitHub Pages bypasses that.
The decision to give Fable 5 an OpenAI API key for generating textures is the detail that makes the difference. An agent tasked with generating images for a 3D game has two options: ask the user to provide them, or generate them alone. Willison chose the latter, and Fable 5 proved skillful at writing prompts for the image generator (gpt-image-2). It even wrote a Python script to generate them and reviewed each one.
The result isn’t perfect: Willison himself notes that some textures weren’t applied correctly. But the game is playable, has a title screen, touch controls for mobile, and mechanics the agent invented on its own, like the guard dog that tracks you by scent rather than sight. It also wrote a notes file with each commit, documenting its own decisions.
What does this mean for those working with agents? One-shotting is becoming viable on tasks that six months ago required dozens of correction rounds. But Willison’s prompt is far from brief: it specifies format (browser, 3D, mobile-friendly), constraint (work alone), delivery rule (continuous commits), and tool access (OpenAI API key). The agent’s autonomy stems from a precise brief, not a vague sentence.
The limit is equally clear: a 3D game with Three.js is a task a strong model can handle because the domain is known and libraries are standard. On less-defined tasks or code that must integrate with existing systems, one-shotting holds up far less well. And the external API key, which gives the agent the ability to call paid services, requires careful management: an agent generating images repeatedly can burn credits fast.