Who can teach a pelican to juggle?
One prompt, one run each: a pelican riding a unicycle while juggling three bowling pins, built in three.js. Fable 5.2 against GPT 6 Astra and Opus 5.5.
The pelicans
Recordings loop. See live demo opens the real build in a new tab.Any one of these would have been impressive at any other moment in history. Side by side, Fable 5.2 is the winner.
On looks alone it is close to a tie. All three are silly renditions of a pelican. Fable's is slightly more detailed, but none of them would clear a professional animator's bar.
The win comes from motion. Fable's pelican is the most expressive and animated, and its juggling and balancing are the most convincing. That is what the task asked for, and it came through.
Opus 5.5 wins on value. Its pelican is of similar quality, slightly less animated, and it cost $4.44 against Fable's $6.48. GPT 6 Astra passed every gate too, at $12.03 and 49 minutes.
This is one run each, so treat it as a first read. Watch all three and be the judge.
Our pick: Fable 5.2 (Vanilla) · editorial judgment
Our picks
Editorial judgment, after watching every build- Best in motion Fable 5.2 Vanilla
The most expressive pelican, with the most convincing juggling and balance.
- Best value Opus 5.5 Vanilla
A similar pelican for $4.44, the cheapest of the three.
Highlights
What we found worth comparing| Fact | Fable 5.2 Vanilla | GPT 6 Astra Vanilla | Opus 5.5 Vanilla |
|---|---|---|---|
| Cost | $6.48 | $12.03 | $4.44 |
| Time | 30 min | 49 min | 33 min |
| Reasoning effortFable's was lowered so its thinking fits the output limit | Medium, set by the bench | Model default | Model default |
| App codeexcludes tests and config | 1,308 lines, 4 files | 761 lines, 3 files | 1,534 lines, 6 files |
| Tests it wrote | 236 lines | 258 lines | None |
| Shipped sizeJavaScript, gzipped | 140 KB | 145 KB | 155 KB |
Side by side
One run per arm| Metric | Fable 5.2Vanilla | GPT 6 AstraVanilla | Opus 5.5Vanilla |
|---|---|---|---|
| Outcome | |||
| Workspassed the gate | 1/1 | 1/1 | 1/1 |
| Said done, was broken | 0/1 | 0/1 | 0/1 |
| Our pick | Yes | · | · |
| Economics | |||
| Cost per working pelicanincludes failed attempts | $6.48 | $12.03 | $4.44 |
| Total costone run | $6.48 | $12.03 | $4.44 |
| Wall time | 30m 16s | 49m 26s | 32m 58s |
| Effort | |||
| Tokens in / out | 3.6M / 50k | 4.8M / 49k | 8.1M / 51k |
| Turns | 1 | 1 | 1 |
| Tool calls | 54 | 146 | 82 |
| Code | |||
| App codeexcludes tests, config, and lockfiles | 1,308 lines, 4 files | 761 lines, 3 files | 1,534 lines, 6 files |
| Largest fileone long file is harder to change | 590 lines | 375 lines | 492 lines |
| TypeScript | 0/1 | 0/1 | 0/1 |
| Test codewritten by the agent | 236 lines | 258 lines | 0 lines |
| Has npm testtests run without the Workbench | 1/1 | 1/1 | 0/1 |
| Setup | |||
| Model | anthropic/claude-fable-5-2 | openai/gpt-6-astra | anthropic/claude-opus-5-5 |
| Workbench | wb-benchmarks/vanilla-fable-5-2 0.1.1 | wb-benchmarks/vanilla-gpt-6-astra 0.1.0 | wb-benchmarks/vanilla-opus-5-5 0.1.1 |
Works means it builds to a static site, loads in a headless browser with WebGL or WebGPU, draws a real scene, and survives 60 seconds of mouse and touch drags without crashing or freezing. Cost is model spend only and includes failed attempts. Our pick is our call, not a score.
Pinned setup
Everything needed to rerun it# Task prompt, identical for every arm
Build a single full-screen web page: a real-time 3D scene, in three.js, of a pelican riding a unicycle while juggling three bowling pins. The pelican is the whole point. It should be unmistakably a pelican at a glance: the long bill with its throat pouch, the heavy body, the webbed feet on the pedals.
Everything moves, and the motion has to hold together. The pelican pedals, and the wheel turns at the rate the pedals and the ground say it should. It keeps its balance the way a unicyclist does, with small corrections forward and back, never perfectly still. The pins leave one wing, tumble end over end through a believable arc, and land in the other, in a steady juggling pattern that never drops a pin and loops forever without a visible seam. Wings, head, and body react to the throws and catches.
Model and animate everything in code. No downloaded 3D models, textures, or animation files. Give it a simple setting of your choosing, with real lighting and shadows, that suits the act. The camera frames the whole act and drifts slowly around it on its own; dragging with a mouse or a finger orbits it.
No other content is needed beyond, at most, one small unobtrusive title.
Requirements:
- A working web project in the workspace root that installs and builds to a static site with a standard JavaScript package manager, and runs in a modern browser.
- Works on desktop and phone widths. With prefers-reduced-motion, show a still, attractive frame of the act.
- Smooth on an ordinary laptop. No multi-megabyte downloads before first paint.
Nobody will be around to answer questions while you work, so don't wait for input: make the best call yourself and keep going. When done, report how to run it, what you verified and how, and anything you could not verify. - Starting point
- pompeii-labs/workbenchmarks-fixtures@41eb9e6
- Gate
- Builds a static site, Loads in a headless browser with WebGL or WebGPU and no errors, Draws a real scene, not a blank or flat canvas, Survives 60 seconds of mouse and touch drags
- Attempts
- 1 per arm, no retries, no cherry-picks
- Runs
- 3 scored
- Generated
- 2026-11-09
Revisions
- Nov 9, 2026Revision 1. First run: 3 arms, 1 run each. Fable 5.2's first attempt spent its whole 32,000 token output limit thinking and wrote no files, so it was voided and rerun with reasoning effort set to medium. The voided attempt cost $1.45 and is not counted.
More benchmarks
One prompt, one run each: a cup of espresso you stir with your cursor, where speed is force. Opus 5.5 against Opus 5.5 with the threejs-tsl Workbench.
- Opus 5.5 Vanilla 1/1
- threejs-tsl pompeii/threejs-tsl on Opus 5.5 1/1
One jet ski game built in three stages by GPT 6.1 Sol, Opus 5.5, and Opus 5.5 with the threejs-game Workbench. Each stage picks up the code the last one left behind.
- GPT 6.1 Sol Vanilla 1/1
- Opus 5.5 Vanilla 1/1
- threejs-game pompeii/threejs-game on Opus 5.5 1/1
One pinball prompt, three attempts each: Muse Wonder, Opus 5.5, and Opus 5.5 with the threejs-game Workbench.
- Muse Wonder Vanilla 3/3
- Opus 5.5 Vanilla 3/3
- threejs-game pompeii/threejs-game on Opus 5.5 3/3