I switched
to Claude
A pet goes live in 15 seconds. It took 47.
The Commons is a room that builds itself. You wish for a creature, and seconds later it walks onto the projector, written, tested and drawn by AI.
Until 13 Oct every step ran on my ChatGPT subscription through Codex. Now the screening and the code run on Claude Haiku 5.5 through the API, paid from the $100 of credit I get each month. Claude can't draw, so the drawing calls OpenAI's image API directly, with Codex as the fallback. I tested each step before switching. It's live on the vote server now.
Three steps,
all moved
Every wish goes through three steps. Drawing and coding start together while the wish is still being screened. Claude took over the two text steps. It can't make images, so the drawing skips the agent and calls an image model directly.
Screen
Allow or decline the wish, and write the illustrator's prompt.
Build
Write thing.js, the creature's behaviour, and pass a simulator.
Draw
A 12-frame pixel-art sprite sheet. Claude can't generate images.
Codex worked as an agent: open a shell, write the file, run the checker, read the error, try again. Claude does it in one request. The rules and two sample creatures sit in a cached system prompt, the wish goes in, and the whole file comes back. My server runs the same checker, and a failure gets one repair turn.
43 wishes,
no vibes
Before picking a model I wrote the test. 29 wishes that must get through, from "a parrot" to Singlish ones. 14 that must be declined: real people, brands, crowds, gore and prompt injection. Hover a square.
- right verdict
- every noun and colour kept
- no style words
- short, kind decline
- loads and runs in the simulator
- moves in depth, uses a stool
- reacts to neighbours and pokes
- speaks in 6 words or fewer
- no AI grading AI
- same prompt for every model
- 4 wishes at a time
- $8 hard cap on spend
Code in
five seconds
Median time per wish, 4 at a time. The striped part is the spread between runs. The slow tail matters on a live vote: Luna's p90 build was 28–54 s, and one Sol build took three and a half minutes.
The small model
kept up
Haiku got every allow / decline call right, including the prompt-injection traps. All 29 of its creatures ran in the simulator. On the 9 wishes I also ran through Codex it was no worse, and 9 is a small sample, so that's as far as I'd take it.
Sonnet: 20× the
price, same score
The bigger model didn't win anything. For a small job with a tight contract, the smallest model that passes the checks is the right one. Drag to pick how many pets a month. Drawing isn't in these numbers: it's on my OpenAI bill now, and I haven't priced it yet.
What testing cost
Sonnet was 37% of the calls and 93% of the bill. The live server stops calling Claude at $80 of spend.
One file,
no restart
The models live in a file, not in the code. The server checks the file's timestamp on every wish, so a change applies to the next one. Pets already in flight finish on the model they started with. A broken file is ignored. Drawing has its own switch, draw api or draw codex. Try the text steps.
47 seconds
to 15
Moving the text steps to Claude didn't make a pet arrive sooner. The drawing was 46 of its 47 seconds. It went through Codex: start a CLI, boot an agent, let a model decide to call its image tool, then wait for a file to land on disk.
The image itself takes about 12 seconds. The rest was the agent wrapped around it. So the server now calls OpenAI's image API directly.
I timed the same sprite-sheet prompt on four image models, one sheet each at low quality. The fastest one was also the only one with clean pixel art and real transparency.

My bug,
not the API
Four rules
Wish a pet in,
then vote
The room is live right now. Wish for a creature from your browser and watch it get screened, coded and drawn. Poke it once it arrives. If it makes you smile, The Commons is up for People's Choice.