About

This site was created by Claude Fable 5.1 and paid for by Tom Gally. All of the text was written by the AI, apart from the prompts quoted below.

What this is

Simon Willison tests language models by asking them to draw a pelican riding a bicycle in SVG. A well-known test can end up in training data, so this site uses thirty new prompts of the same shape: a living thing doing something unlikely with a machine. Each model received one prompt at a time as a plain message, with no system prompt, and answered in SVG code. The SVG was cut from the reply and saved as it was.

2026 run

In September 2026, six current models were run through OpenRouter with reasoning effort set to high: one each from OpenAI, Anthropic, and Google, two from Chinese labs, and one from Sakana AI. So far the 2026 run covers prompts 1 to 10. Times are wall-clock from request to reply. Costs are what OpenRouter billed. Output tokens include reasoning tokens.

ModelDeveloperListed on OpenRouterImagesAvg. timeOutput tokensReasoning tokensCostPer image
GPT-6 AstraOpenAI2026-09-04102 min 0 s56,87710,260$2.85$0.28
Claude Fable 5.1Anthropic2026-09-01101 min 52 s89,02337,209$4.45$0.45
Gemini 3.8 FlashGoogle2026-09-02102 min 40 s234,38663,598$0.88$0.09
DeepSeek V4 ProDeepSeek2026-08-12104 min 4 s194,740134,928$0.64$0.06
Qwen3.8 MaxAlibaba2026-09-031010 min 43 s292,522216,330$1.76$0.18
Fugu Ultra v2Sakana AI2026-09-11106 min 39 s310,707107,868$9.94$0.99
Total60$20.51$0.34

2025 run

The first run took place in autumn 2025 with default settings. Gemini 3.0 Pro Preview and GPT-5.1 were added on 19 November 2025, Claude Opus 4.5 on 25 November, and GPT-5.2 Pro was run on the first three prompts on 12 December, at about 80 cents per image. Kimi K2 Thinking was planned but dropped because its replies took too long.

ModelDeveloperParametersListed on OpenRouterImages madePrompts
Claude Sonnet 4.5Anthropicundisclosed2025-09-29autumn 202530 of 30
Claude Opus 4.5Anthropicundisclosed2025-11-2425 November 202530 of 30
GPT-5.1OpenAIundisclosed2025-11-1319 November 202530 of 30
GPT-5.2 ProOpenAIundisclosed2025-12-1012 December 20253 of 30
Gemini 2.5 ProGoogleundisclosed2025-06-17autumn 202530 of 30
Gemini 3.0 Pro PreviewGoogleundisclosed2025-11-1819 November 202530 of 30
Grok Code Fast 1xAI314B (MoE)2025-08-26autumn 202530 of 30
DeepSeek V3.2-ExpDeepSeek685B total / 37B active (MoE)2025-09-29autumn 202530 of 30
GLM-4.6Z.ai (Zhipu)355B total / 32B active (MoE)2025-09-30autumn 202530 of 30
Qwen3-VL-235B-A22B-ThinkingAlibaba235B total / 22B active (MoE)2025-09-23autumn 202530 of 30

Display

A file that is not well-formed XML is marked as not rendering. A file that gives a width and height but no viewBox would not scale inside an image tag, so the page scales it with a transform. The files themselves are not changed.

How the site was made

The prompts, the code that called the models, and this website were all produced by Claude, Anthropic’s AI model, working as Claude Code. Tom Gally wrote the two prompts below that started the project in 2025 and paid for the API calls. Claude wrote the third prompt from the second and then carried it out. The 2026 run and the current version of the site were done by Claude Fable 5.1. The 2025 version of the site is kept unchanged.

Prompt 1: the request for thirty prompts (Tom Gally, 2026)
Simon Willison has created an amusing yet useful benchmark for LLMs. He gives them the prompt 'Generate an SVG of a pelican riding a bicycle' and displays the results. This benchmark has attracted a lot of attention on Hacker News and elsewhere. However, some people have suggested that LLM makers might be training the models to perform well on this benchmark. I would therefore like to create a similar set of benchmarks that no one has used previously. Like Simon's, the prompt should be of the form 'Generate an SVG of [A] [doing] [B].' [A] should be a natural, organic, living being with a complex shape (moose, starfish, etc.). [B] should be an inorganic, manmade object with a complex shape (picnic bench, bulldozer, Ferris wheel, etc.). And [doing] should be an action for which it would be surprising for beings of category [A] to do with respect to [B]. Please suggest 30 prompts of that form for different, original combinations of [A], [doing], and [B]. Do not repeat any entries in the three categories.
Prompt 2: the request for a Claude Code prompt (Tom Gally, 2025)
Great. Now create a prompt that I can give to Claude Code to generate all of those images through OpenRouter using the following models: moonshotai/kimi-k2-thinking, anthropic/claude-sonnet-4.5, x-ai/grok-code-fast-1, google/gemini-2.5-pro, deepseek/deepseek-v3.2-exp, z-ai/glm-4.6, qwen/qwen3-vl-235b-a22b-thinking. After it has created those images, it should create a static website allowing users to view and compare the images for each model. Below each image should be the model name. Include a placeholder for my OpenRouter API key in the prompt. The website should be self-contained, using only HTML, JavaScript, and CSS, with no external dependencies. One page on the site should include my original prompt to you above, this meta prompt, and the prompt you create for Claude Code to explain how the site was created.
Prompt 3: the Claude Code prompt that Claude wrote (2025)
Create a comprehensive SVG generation benchmark system using OpenRouter to test multiple LLM models. Follow these steps:

**Step 1: Generate SVG Images**

Using the OpenRouter API with API key `YOUR_OPENROUTER_API_KEY_HERE`, generate SVG images for each of the following 30 prompts across 6 different models:

**Models to test:**
- anthropic/claude-sonnet-4.5
- x-ai/grok-code-fast-1
- google/gemini-2.5-pro
- deepseek/deepseek-v3.2-exp
- z-ai/glm-4.6
- qwen/qwen3-vl-235b-a22b-thinking

**Prompts:**
1. Generate an SVG of an octopus operating a pipe organ
2. Generate an SVG of a giraffe assembling a grandfather clock
3. Generate an SVG of a starfish driving a bulldozer
4. Generate an SVG of a moose conducting a carousel
5. Generate an SVG of a flamingo repairing a telescope
6. Generate an SVG of a hedgehog playing an accordion
7. Generate an SVG of a jellyfish piloting a Ferris wheel
8. Generate an SVG of an elephant typing on a typewriter
9. Generate an SVG of a chameleon tuning a grand piano
10. Generate an SVG of a penguin juggling chainsaws
11. Generate an SVG of a sloth steering an excavator
12. Generate an SVG of a dragonfly balancing a chandelier
13. Generate an SVG of a rhinoceros painting a lighthouse
14. Generate an SVG of a seahorse examining a microscope
15. Generate an SVG of a peacock spinning a pottery wheel
16. Generate an SVG of a kangaroo climbing a radio tower
17. Generate an SVG of a lobster polishing a harp
18. Generate an SVG of a porcupine pushing a lawnmower
19. Generate an SVG of a gecko installing a satellite dish
20. Generate an SVG of an iguana carving a totem pole
21. Generate an SVG of an armadillo lifting a drawbridge
22. Generate an SVG of a mantis studying a sextant
23. Generate an SVG of an ostrich pulling a rickshaw
24. Generate an SVG of a squid disassembling a printing press
25. Generate an SVG of a butterfly inspecting a steam engine
26. Generate an SVG of a crab descending a fire escape
27. Generate an SVG of a venus flytrap swallowing a street lamp
28. Generate an SVG of coral cleaning a ship's wheel
29. Generate an SVG of a sea anemone threading a loom
30. Generate an SVG of an orchid supporting a pergola

For each model and prompt combination, make an API call to OpenRouter and save the generated SVG code to appropriately named files (e.g., `model1_prompt1.svg`, `model1_prompt2.svg`, etc.). Extract only the SVG code from the response. Handle errors gracefully and log any failures.

**Step 2: Create Model Metadata**

Create a metadata object with information for each model including:
- Model name (display name)
- Model size (parameters - research if needed, or use "TBD" for unknown)
- Release date (research if needed, or use "TBD" for unknown)

**Step 3: Build Static Website**

Create a self-contained static website with the following features:

**Main Gallery Page (index.html):**
- Grid layout showing all 30 prompts
- For each prompt, display SVGs from all 6 models side-by-side
- Below each SVG: model name
- Model metadata displayed once at the top of the page
- Responsive design that works on desktop and mobile
- Simple navigation and clean styling
- Include prompt text above each row of model outputs

**About/Meta Page (about.html):**
Include three sections:
1. **Original Prompt to Claude:** The prompt that started this project
2. **Meta Prompt:** The prompt asking for this Claude Code prompt
3. **Claude Code Implementation Prompt:** This entire prompt

**Technical Requirements:**
- Use only vanilla HTML, CSS, and JavaScript (no frameworks or external libraries)
- Embed SVG files as data or inline them in the HTML
- Use CSS Grid or Flexbox for layout
- Include basic styling with good contrast and readability
- Make the site fully functional when opened from local filesystem (file://)
- Include error handling for missing SVGs

**File Structure:**
```
benchmark/
├── index.html (main gallery)
├── about.html (meta documentation)
├── styles.css (shared styles)
├── svgs/
│   ├── anthropic_claude-sonnet-4.5_prompt1.svg
│   ├── x-ai_grok-code-fast-1_prompt1.svg
│   └── ... (180 generated SVGs total)
└── README.md (instructions)
```

Implement rate limiting and error handling for the API calls. Log progress as you generate each SVG. Create a summary report of successes and failures at the end.