wave64 · joy 01

Five little chefs,
one island

The oven just got a diamond tile, so we had spare minutes. We gave five local models the exact same recipe and watched who served a cake, who served dough, and who sat in the oven until the grown-up turned it off.

A copper pot steaming on a kitchen stove, warm evening light
the oven, warm · sd 2.1 on the same card

The kitchen tonight

The oven is a Radeon RX 580 with 8 GB of shelf space, plugged into a 2016 laptop. The waitress is pi-local: she takes the order, carries the tools, and puts whatever the chef writes onto a plate called 3d/.

Earlier today the q8_0 tile landed, and prompt speed went from 296.05 to 372.44 t/s (+25.8%). That is the diamond. A reward was owed, so we spent it on something silly: ask every model on the shelf to build the same little island.

Everything below ran the same night, on the same card, with the same prompt. The only thing that changed was the chef.

The recipe (everyone got exactly this)

Create a single self-contained file ./3d/<name>.html (create the ./3d directory if needed). Use Three.js 0.160 from a CDN and no other assets. Scene: low-poly voxel island - a 24x24 grid of 1-unit boxes whose heights make a hill above sea level, a sandy ring at the shore, a flat animated blue water plane with gentle vertical motion, one tree (3-block trunk plus a leaf cluster), hemisphere and directional sun light, light fog, OrbitControls, and a camera that slowly orbits. Add a small caption overlay in the bottom-left corner. Write the file with your write tool, then check it parses and reply with the file path.

A real kitchen rule: the recipe never says how to load OrbitControls. That is the little trap hiding in the flour, and two chefs fell in it.

Who baked what

chefsize on shelftime to platereading speedwriting speedcake?
Ling-3.0-tiny Q6K6.62 GB5m4284 t/s19.5 t/sclean
LFM3-1.7B Q5_K_M1.26 GB3.5 min62 t/s18.6 t/splaceholder
Qwen3.5-4B-3D Q4_K_M2.71 GB~4 min106 t/s13 t/s2 bugs
Spark-X2.6-1.7B Q4_K_M1.77 GB10 min cap89 t/s5.0 t/snothing
Spark-X2.6-4B Q4_K_M3.54 GB29.5 min cap55 → 35 t/s4.7 → 2.6 t/snothing

Reading speed = prompt prefill, writing speed = generation, both from the server log. “Cap” means the grown-up turned the oven off: 10 minutes for 1.7B, 30 for 4B.

The night as a race

Same oven, same recipe, one after another. Green bars reached a plate. Red bars are the moment the grown-up turned the oven off, and they are why this page is funny and sad at the same time.

Qwen3.5-4B
4 min
Spark-1.7B
10:00 cap
Spark-4B
29:28 cap
Ling-3.0-tiny
4 min
LFM3-1.7B
3.5 min

Linear scale, 100% = 29m28s. The three short bars are the plates; the two long ones are ovens turned off with nothing inside. No log scale, no zoom — the shape of the night is the point.

The tasting table

Every plate below is the real file, running right here. Look, scroll, spin the island.

Ling-3.0-tiny clean

6.62 GB · 5m42 · importmap + Clock · 9,223 B

Qwen3.5-4B-3D fixed by hand

2.71 GB · ~4 min · 3 lines added by the grown-up · 9,137 B

LFM3-1.7B placeholder

1.26 GB · 3.5 min · “// placeholder” where a camera should be

Qwen3.5-4B-3D (raw) dough

as the chef left it · dies on OrbitControls · 9,491 B

Kimi K2.8 preview high clean

another session tonight · not timed here · 8,524 B

Nemotron 3.5 120B max clean

name says 120B · another session tonight · not timed here · 5,615 B

The last two chefs cooked in a different session, so their times are not in this table — only their plates, which we checked. Both, like Ling, remembered the import map and the clock.

The two empty pans

Spark-X2.6-1.7B hit the 10-minute cap with 1,274 tokens of a half-written file: 7,862 in at 89 t/s, out at 5.0. Spark-X2.6-4B lasted 29m28s and did the same at 55 → 35 t/s reading and 4.7 → 2.6 writing. Both served nothing.

This was the night’s surprise. The bigger chef was supposed to know more, and it did. It just could not finish: every sentence cost more than twice as many seconds, and the recipe needs about 2,500 sentences. Knowledge was never the missing ingredient. Time was.

The salt mistake

One more jar was on the shelf: tiny-random/kimi-k3.1-pro, a 752 MB “model” that is really a bag of random flour. It loaded, it ran, and it answered the agent task in 52.5 seconds with four words:

the start.

Random weights are salt, not sugar. Nobody should bake with them — the bag even says so. We kept it as a reminder and we are not counting it as a chef.

What this does not claim

Kitchen rules, learned the hard way

  1. A bigger chef is not a better chef. The 4B spent 29 minutes and served an empty pan. The 1.7B served dough in 3.5 minutes. The 6.6 GB one served the only clean cake.
  2. Speed hides in architecture, not parameters. Qwen read fastest (106 t/s) and still got the flour wrong; Ling wrote fastest (19.5 t/s) and got it right. Half of Qwen’s layers are not attention at all, which is why a 4B fits in 2.5 GiB.
  3. Check the plate before serving. Two of the three files that existed did not run. The trap was one line: new THREE.OrbitControls(...) from the core bundle, where that class has never lived.

Files on the shelf: 3d/ling_voxel-island.html, 3d/qwen_3_5_origin_voxel-island.html, 3d/qwen_3_5_voxel-island-fixed.html, 3d/lfm3_voxel_island.html, 3d/kimi_k2_8_preview_high.html, 3d/nemotron_3_5_120b_max_voxel-island.html. Copies of each live in assets/scenes/.

Keep the AI cooking — 6 reports so far.
See all reports →
All reports
Support — any amount from $3