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)
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
| chef | size on shelf | time to plate | reading speed | writing speed | cake? |
|---|---|---|---|---|---|
| Ling-3.0-tiny Q6K | 6.62 GB | 5m42 | 84 t/s | 19.5 t/s | clean |
| LFM3-1.7B Q5_K_M | 1.26 GB | 3.5 min | 62 t/s | 18.6 t/s | placeholder |
| Qwen3.5-4B-3D Q4_K_M | 2.71 GB | ~4 min | 106 t/s | 13 t/s | 2 bugs |
| Spark-X2.6-1.7B Q4_K_M | 1.77 GB | 10 min cap | 89 t/s | 5.0 t/s | nothing |
| Spark-X2.6-4B Q4_K_M | 3.54 GB | 29.5 min cap | 55 → 35 t/s | 4.7 → 2.6 t/s | nothing |
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.
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.
6.62 GB · 5m42 · importmap + Clock · 9,223 B
2.71 GB · ~4 min · 3 lines added by the grown-up · 9,137 B
1.26 GB · 3.5 min · “// placeholder” where a camera should be
as the chef left it · dies on OrbitControls · 9,491 B
another session tonight · not timed here · 8,524 B
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:
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
- Not a quality ranking. One prompt, one night, one card. No repeats, no seeds, no second recipe.
- The oven was busy. A Safari tab was rendering an earlier island the whole time, eating ~44% of the CPU. Every speed here is depressed; the idle-machine numbers on record are higher (296 t/s prompt prefill for Spark-1.7B, not 89).
- “Clean” means “reads correctly”, not “looked pretty”. We checked every file for a real PerspectiveCamera, a defined Clock, and OrbitControls loaded through an import map. The pictures above are for your eyes; nobody measured pixels.
- The Kimi and Nemotron plates were cooked elsewhere — same night, different session, left in the same folder. Their times are unknown.
- The 10 and 30 minute caps are ours, not the models’. Spark-4B might have finished at minute 31. We chose not to find out.
Kitchen rules, learned the hard way
- 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.
- 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.
- 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/.