Local LLM model leaderboard
Ten tests of the AI models you can run at home, on the machines I run them on. Round two has eleven models, each on every machine of mine it fits on.
The leaderboard
| Model | Ran on | Landing page | Dashboard | Breakout | 3D scene | SVG fox | Physics | Spreadsheet | Agent | Bug fixing | Questions | Overall |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| DeepSeek V4.1 Flash 1017 | ||||||||||||
| Gemma 4 26B-A4B | ||||||||||||
| Qwen 3.8 27B | ||||||||||||
| GLM 5.3 Flash | ||||||||||||
| Qwen 3.8 27B (NVFP4) | ||||||||||||
| Gemma 4 12B | ||||||||||||
| Nemotron 3.5 Bolt 74B | ||||||||||||
| Ternary Bonsai 2 27B | ||||||||||||
| gpt-oss-20b | ||||||||||||
| Qwen 3.5 9B | ||||||||||||
| Qwen 3.5 9B (MLX) |
Each test is scored from 0 to 100, and the overall is the average of the ten. A model on several machines is the average of its runs. Click a model to see each of its tests.
The ten tests
Each picture is the best build of that test in this round, as the checker left it. The four code tests have nothing to look at, so they have a mark instead. Click one to read what the test asks for.
FrontendA landing page that works
FrontendA dashboard that recalculates
GamesBreakout with lives, levels and pause
3DA lighthouse at dusk, in three.js
SVGA fox in the snow, by hand
CreativeTwenty balls in a spinning heptagon
SystemsA spreadsheet engine
AgentsFix a project with tools
DebuggingFind the bugs in an invoicing module
ReasoningTwenty questions
| Test | What it asks for |
|---|---|
| A landing page that works Frontend | A landing page for a made-up product, a quiet box that runs AI at home: a button that scrolls to the prices, three feature cards, three prices that switch between monthly and yearly, questions that open when clicked, a contact form that checks the email address, and a menu that folds away on a phone. |
| A dashboard that recalculates Frontend | A sales dashboard from six months' sales of three products: a line chart and a bar chart drawn by hand, three summary figures, a box for each product that takes it out of the charts and the figures and puts it back, and a table that sorts by its total. |
| Breakout with lives, levels and pause Games | A Breakout game: five rows of bricks, a paddle moved with the arrow keys, the mouse or a finger, a score, three lives, a second level with a faster ball, pause, restart and a game-over screen. |
| A lighthouse at dusk, in three.js 3D | A 3D scene in three.js: a lighthouse on a rocky island at dusk, its beam sweeping round, a moving sea, a boat that bobs, a camera you turn by dragging, and a key that brings night. |
| A fox in the snow, by hand SVG | A picture drawn in code (SVG): a red fox sitting in deep snow, three birch trees and falling snow, at least 40 shapes, with the snow falling and the fox's tail swaying. |
| Twenty balls in a spinning heptagon Creative | Twenty numbered balls falling and bouncing inside a seven-sided shape that spins, with gravity, friction and bounces off each other. No ball may ever escape. |
| A spreadsheet engine Systems | A small spreadsheet engine: cells that hold numbers, text or formulas, with sums, averages and ranges, errors such as a division by zero or a cell that depends on itself, and every cell up to date after a change. |
| Fix a project with tools Agents | A small shop project whose tests fail. The model works on it with tools, listing and reading files, writing them and running the tests, with at most 15 actions, and may not change the tests. |
| Find the bugs in an invoicing module Debugging | An invoicing module with bugs planted in it, its comments saying what each function must do: fix every bug and change nothing that works. |
| Twenty questions Reasoning | Twenty short questions with one right answer each: times, dates, sums, rates and puzzles. The answers only, no working. |
Each model's tests
Click a model in the leaderboard to come straight to its tests. The score is the model's own, as in the leaderboard. My mark is the one I gave its build, from fail to perfect, and the words say what happened in the run I marked.
DeepSeek V4.1 Flash 1017 overall 83.8
Three runs on the four DGX Sparks. The words are from the runs whose builds I marked.
| Test | Score | My mark | What happened |
|---|---|---|---|
| A landing page that works Frontend | 79.9 | Great | Features 6 of 8, checks 5 of 5 at first; after its fix, features 6 of 8, checks 5 of 5. Judges 75. |
| A dashboard that recalculates Frontend | 66.2 | Good | Features 8 of 8, checks 5 of 5 first time. Judges 91. |
| Breakout with lives, levels and pause Games | 81.6 | Great | Features 6 of 6, checks 6 of 6 first time. Judges 89. |
| A lighthouse at dusk, in three.js 3D | 79.3 | Great | Features 5 of 6, checks 6 of 6 at first; after its fix, features 6 of 6, checks 6 of 6. Judges 85. |
| A fox in the snow, by hand SVG | 81.6 | Great | Features 7 of 7, checks 4 of 4 first time. Judges 89. |
| Twenty balls in a spinning heptagon Creative | 79 | Great | Features 5 of 6, checks 5 of 5 at first; after its fix, features 5 of 6, checks 5 of 5. Judges 71. |
| A spreadsheet engine Systems | 97.2 | marked by tests | 26 of 30 tests at first, 30 of 30 after its fix. |
| Fix a project with tools Agents | 95.5 | marked by tests | 18 of 18 tests passing at the end (8 at the start), in 10 actions. |
| Find the bugs in an invoicing module Debugging | 92.7 | marked by tests | 40 of 42 tests at first, 41 of 42 after its fix. |
| Twenty questions Reasoning | 85 | marked by tests | 16 of 20 right. |
Gemma 4 26B-A4B overall 63.1
Three runs on the RTX 4090 desktop and one run on the RTX 5070 Ti desktop. The words are from the runs whose builds I marked.
| Test | Score | My mark | What happened |
|---|---|---|---|
| A landing page that works Frontend | 65.3 | Good | Features 7 of 8, checks 5 of 5 at first; after its fix, features 8 of 8, checks 5 of 5. Judges 87. |
| A dashboard that recalculates Frontend | 59.5 | Good | Features 7 of 8, checks 5 of 5 at first; after its fix, features 7 of 8, checks 5 of 5. Judges 69. |
| Breakout with lives, levels and pause Games | 59.2 | Good | Features 5 of 6, checks 6 of 6 at first; after its fix, features 5 of 6, checks 6 of 6. Judges 55. |
| A lighthouse at dusk, in three.js 3D | 25.4 | Inadequate | Features 6 of 6, checks 6 of 6 first time. Judges 46. |
| A fox in the snow, by hand SVG | 43.3 | OK | Features 7 of 7, checks 4 of 4 first time. Judges 56. |
| Twenty balls in a spinning heptagon Creative | 77.7 | Great | Features 6 of 6, checks 5 of 5 first time. Judges 69. |
| A spreadsheet engine Systems | 30.9 | marked by tests | Did not load tests at first, 25 of 30 after its fix. |
| Fix a project with tools Agents | 92.7 | marked by tests | 18 of 18 tests passing at the end (8 at the start), in 12 actions. |
| Find the bugs in an invoicing module Debugging | 96.9 | marked by tests | 41 of 42 tests at first, 42 of 42 after its fix. |
| Twenty questions Reasoning | 80 | marked by tests | 16 of 20 right. |
Qwen 3.8 27B overall 62.4
Two runs on the RTX 4090 desktop and one run on the HP ZBook Ultra G1a (a Strix Halo laptop with the Ryzen AI Max+ 395). The words are from the runs whose builds I marked.
| Test | Score | My mark | What happened |
|---|---|---|---|
| A landing page that works Frontend | 78.7 | Great | Features 8 of 8, checks 5 of 5 first time. Judges 94. |
| A dashboard that recalculates Frontend | 80.5 | Great | Features 6 of 8, checks 4 of 5 at first; after its fix, features 7 of 8, checks 5 of 5. Judges 80. |
| Breakout with lives, levels and pause Games | 13 | Fail | Features 6 of 6, checks 5 of 6 at first; after its fix, features 6 of 6, checks 5 of 6. Judges 61. |
| A lighthouse at dusk, in three.js 3D | 8.7 | Fail | Features 6 of 6, checks 2 of 6 at first; after its fix, features 6 of 6, checks 3 of 6. Judges 37. |
| A fox in the snow, by hand SVG | 49.2 | OK | Features 7 of 7, checks 4 of 4 first time. Judges 87. |
| Twenty balls in a spinning heptagon Creative | 75 | Great | Features 0 of 6, checks 3 of 5 at first; after its fix, features 3 of 6, checks 5 of 5. Judges 58. |
| A spreadsheet engine Systems | 52.8 | marked by tests | Did not load tests at first, 29 of 30 after its fix. |
| Fix a project with tools Agents | 94.6 | marked by tests | 18 of 18 tests passing at the end (8 at the start), in 12 actions. |
| Find the bugs in an invoicing module Debugging | 94.8 | marked by tests | 39 of 42 tests at first, 42 of 42 after its fix. |
| Twenty questions Reasoning | 76.7 | marked by tests | 16 of 20 right. |
GLM 5.3 Flash overall 59
Three runs on the four DGX Sparks. The words are from the runs whose builds I marked.
| Test | Score | My mark | What happened |
|---|---|---|---|
| A landing page that works Frontend | 66.4 | Good | Features 8 of 8, checks 5 of 5 first time. Judges 93. |
| A dashboard that recalculates Frontend | 82.7 | Great | Features 8 of 8, checks 5 of 5 first time. Judges 92. |
| Breakout with lives, levels and pause Games | 59.6 | Good | Features 6 of 6, checks 6 of 6 first time. Judges 84. |
| A lighthouse at dusk, in three.js 3D | 4.9 | Fail | Features 0 of 6, checks 3 of 6 at first; after its fix, features 0 of 6, checks 2 of 6. Judges 0. |
| A fox in the snow, by hand SVG | 30.5 | Inadequate | Features 7 of 7, checks 4 of 4 first time. Judges 76. |
| Twenty balls in a spinning heptagon Creative | 89 | Perfect | no page at first; after its fix, features 5 of 6, checks 5 of 5. Judges 58. |
| A spreadsheet engine Systems | 24.4 | marked by tests | Did not load tests at first, did not load after its fix. |
| Fix a project with tools Agents | 94.6 | marked by tests | 18 of 18 tests passing at the end (8 at the start), in 10 actions. |
| Find the bugs in an invoicing module Debugging | 61.5 | marked by tests | 41 of 42 tests at first, 42 of 42 after its fix. |
| Twenty questions Reasoning | 76.7 | marked by tests | 15 of 20 right. |
Qwen 3.8 27B (NVFP4) overall 53
Two runs on two of my DGX Sparks and one run on one DGX Spark on its own. The words are from the runs whose builds I marked.
| Test | Score | My mark | What happened |
|---|---|---|---|
| A landing page that works Frontend | 10.5 | Fail | Features 2 of 8, checks 4 of 5 at first; after its fix, features 2 of 8, checks 4 of 5. Judges 31. |
| A dashboard that recalculates Frontend | 80.4 | Great | Features 8 of 8, checks 4 of 5 at first; after its fix, features 8 of 8, checks 4 of 5. Judges 74. |
| Breakout with lives, levels and pause Games | 10.7 | Fail | Features 0 of 6, checks 4 of 6 at first; after its fix, features 3 of 6, checks 4 of 6. Judges 42. |
| A lighthouse at dusk, in three.js 3D | 46.9 | OK | Features 5 of 6, checks 6 of 6 at first; after its fix, features 5 of 6, checks 6 of 6. Judges 71. |
| A fox in the snow, by hand SVG | 49.7 | OK | Features 7 of 7, checks 4 of 4 first time. Judges 89. |
| Twenty balls in a spinning heptagon Creative | 29.7 | Inadequate | Features 4 of 6, checks 5 of 5 at first; after its fix, features 4 of 6, checks 5 of 5. Judges 67. |
| A spreadsheet engine Systems | 47.8 | marked by tests | 19 of 30 tests at first, 20 of 30 after its fix. |
| Fix a project with tools Agents | 96 | marked by tests | 18 of 18 tests passing at the end (8 at the start), in 10 actions. |
| Find the bugs in an invoicing module Debugging | 89.6 | marked by tests | 39 of 42 tests at first, 42 of 42 after its fix. |
| Twenty questions Reasoning | 68.3 | marked by tests | 13 of 20 right. |
Gemma 4 12B overall 43.9
Two runs on the RTX 4090 desktop, one run on the RTX 5070 Ti desktop and one run on the Mac mini M4. The words are from the runs whose builds I marked.
| Test | Score | My mark | What happened |
|---|---|---|---|
| A landing page that works Frontend | 47.1 | OK | Features 7 of 8, checks 5 of 5 at first; after its fix, features 7 of 8, checks 5 of 5. Judges 74. |
| A dashboard that recalculates Frontend | 8.3 | Fail | Features 7 of 8, checks 5 of 5 at first; after its fix, features 6 of 8, checks 5 of 5. Judges 31. |
| Breakout with lives, levels and pause Games | 60.5 | Good | Features 2 of 6, checks 4 of 6 at first; after its fix, features 6 of 6, checks 6 of 6. Judges 79. |
| A lighthouse at dusk, in three.js 3D | 21.3 | Inadequate | Features 4 of 6, checks 1 of 6 at first; after its fix, features 6 of 6, checks 4 of 6. Judges 21. |
| A fox in the snow, by hand SVG | 25.6 | Inadequate | Features 6 of 7, checks 4 of 4 at first; after its fix, features 7 of 7, checks 4 of 4. Judges 51. |
| Twenty balls in a spinning heptagon Creative | 23.3 | Inadequate | Features 2 of 6, checks 3 of 5 at first; after its fix, features 4 of 6, checks 5 of 5. Judges 36. |
| A spreadsheet engine Systems | 12.9 | marked by tests | Did not load tests at first, 0 of 30 after its fix. |
| Fix a project with tools Agents | 82 | marked by tests | 14 of 18 tests passing at the end (8 at the start), in 15 actions, not finished. |
| Find the bugs in an invoicing module Debugging | 89.1 | marked by tests | 40 of 42 tests at first, 42 of 42 after its fix. |
| Twenty questions Reasoning | 68.8 | marked by tests | 14 of 20 right. |
Nemotron 3.5 Bolt 74B overall 36
Three runs on the RTX 4090 desktop. The words are from the runs whose builds I marked.
| Test | Score | My mark | What happened |
|---|---|---|---|
| A landing page that works Frontend | 58.9 | Good | Features 5 of 8, checks 5 of 5 at first; after its fix, features 6 of 8, checks 5 of 5. Judges 56. |
| A dashboard that recalculates Frontend | 28.1 | Inadequate | Features 7 of 8, checks 4 of 5 at first; after its fix, features 7 of 8, checks 4 of 5. Judges 59. |
| Breakout with lives, levels and pause Games | 3.8 | Fail | Features 3 of 6, checks 3 of 6 at first; after its fix, features 3 of 6, checks 3 of 6. Judges 16. |
| A lighthouse at dusk, in three.js 3D | 3.9 | Fail | Features 1 of 6, checks 1 of 6 at first; after its fix, features 1 of 6, checks 1 of 6. Judges 0. |
| A fox in the snow, by hand SVG | 6.2 | Fail | Features 5 of 7, checks 4 of 4 at first; after its fix, features 6 of 7, checks 4 of 4. Judges 30. |
| Twenty balls in a spinning heptagon Creative | 18.9 | Inadequate | Features 0 of 6, checks 1 of 5 at first; after its fix, features 0 of 6, checks 5 of 5. Judges 15. |
| A spreadsheet engine Systems | 8.3 | marked by tests | 5 of 30 tests at first, 5 of 30 after its fix. |
| Fix a project with tools Agents | 76.4 | marked by tests | 13 of 18 tests passing at the end (8 at the start), in 15 actions, not finished. |
| Find the bugs in an invoicing module Debugging | 79.2 | marked by tests | 38 of 42 tests at first, 41 of 42 after its fix. |
| Twenty questions Reasoning | 76.7 | marked by tests | 16 of 20 right. |
Ternary Bonsai 2 27B overall 35.9
Two runs on the RTX 4090 desktop, one run on the RTX 5070 Ti desktop and one run on the Mac mini M4. The words are from the runs whose builds I marked.
| Test | Score | My mark | What happened |
|---|---|---|---|
| A landing page that works Frontend | 66.8 | Good | Features 7 of 8, checks 5 of 5 at first; after its fix, features 8 of 8, checks 5 of 5. Judges 98. |
| A dashboard that recalculates Frontend | 24.3 | Inadequate | Features 3 of 8, checks 4 of 5 at first; after its fix, features 3 of 8, checks 4 of 5. Judges 28. |
| Breakout with lives, levels and pause Games | 3.4 | Fail | Features 0 of 6, checks 3 of 6 at first; after its fix, features 0 of 6, checks 3 of 6. Judges 10. |
| A lighthouse at dusk, in three.js 3D | 3.3 | Fail | Features 0 of 6, checks 1 of 6 at first; after its fix, features 5 of 6, checks 1 of 6. Judges 8. |
| A fox in the snow, by hand SVG | 30.6 | Inadequate | Features 7 of 7, checks 4 of 4 first time. Judges 80. |
| Twenty balls in a spinning heptagon Creative | 5.6 | Fail | Features 2 of 6, checks 3 of 5 at first; after its fix, features 4 of 6, checks 5 of 5. Judges 32. |
| A spreadsheet engine Systems | 4.6 | marked by tests | Did not load tests at first, did not load after its fix. |
| Fix a project with tools Agents | 93.1 | marked by tests | 18 of 18 tests passing at the end (8 at the start), in 14 actions. |
| Find the bugs in an invoicing module Debugging | 77.3 | marked by tests | 37 of 42 tests at first, 39 of 42 after its fix. |
| Twenty questions Reasoning | 50 | marked by tests | 9 of 20 right. |
gpt-oss-20b overall 29
Three runs on the RTX 4090 desktop and one run on the RTX 5070 Ti desktop. The words are from the runs whose builds I marked.
| Test | Score | My mark | What happened |
|---|---|---|---|
| A landing page that works Frontend | 44.2 | OK | Features 7 of 8, checks 5 of 5 at first; after its fix, features 7 of 8, checks 5 of 5. Judges 59. |
| A dashboard that recalculates Frontend | 6.2 | Fail | Features 1 of 8, checks 3 of 5 at first; after its fix, features 7 of 8, checks 4 of 5. Judges 35. |
| Breakout with lives, levels and pause Games | 6.7 | Fail | Features 0 of 6, checks 4 of 6 at first; after its fix, features 3 of 6, checks 4 of 6. Judges 19. |
| A lighthouse at dusk, in three.js 3D | 6.7 | Fail | Features 1 of 6, checks 1 of 6 at first; after its fix, features 4 of 6, checks 6 of 6. Judges 39. |
| A fox in the snow, by hand SVG | 25.1 | Inadequate | Features 5 of 7, checks 4 of 4 at first; after its fix, features 7 of 7, checks 4 of 4. Judges 51. |
| Twenty balls in a spinning heptagon Creative | 5.5 | Fail | Features 0 of 6, checks 1 of 5 at first; after its fix, features 3 of 6, checks 5 of 5. Judges 30. |
| A spreadsheet engine Systems | 18.8 | marked by tests | Did not load tests at first, 16 of 30 after its fix. |
| Fix a project with tools Agents | 4.5 | marked by tests | 8 of 18 tests passing at the end (8 at the start), in 12 actions. |
| Find the bugs in an invoicing module Debugging | 92.2 | marked by tests | 39 of 42 tests at first, 42 of 42 after its fix. |
| Twenty questions Reasoning | 80 | marked by tests | 17 of 20 right. |
Qwen 3.5 9B overall 25.7
Two runs on the RTX 4090 desktop, one run on the RTX 5070 Ti desktop and one run on the Mac mini M4. The words are from the runs whose builds I marked.
| Test | Score | My mark | What happened |
|---|---|---|---|
| A landing page that works Frontend | 46.4 | OK | Features 5 of 8, checks 5 of 5 at first; after its fix, features 6 of 8, checks 5 of 5. Judges 67. |
| A dashboard that recalculates Frontend | 9 | Fail | Features 5 of 8, checks 4 of 5 at first; after its fix, features 5 of 8, checks 4 of 5. Judges 33. |
| Breakout with lives, levels and pause Games | 9 | Fail | Features 3 of 6, checks 5 of 6 at first; after its fix, features 3 of 6, checks 5 of 6. Judges 42. |
| A lighthouse at dusk, in three.js 3D | 3.3 | Fail | Features 0 of 6, checks 2 of 6 at first; after its fix, features 1 of 6, checks 5 of 6. Judges 29. |
| A fox in the snow, by hand SVG | 25.1 | Inadequate | Features 5 of 7, checks 4 of 4 at first; after its fix, features 7 of 7, checks 4 of 4. Judges 51. |
| Twenty balls in a spinning heptagon Creative | 3.7 | Fail | Features 0 of 6, checks 5 of 5 at first; after its fix, features 0 of 6, checks 5 of 5. Judges 23. |
| A spreadsheet engine Systems | 0 | marked by tests | Did not load tests at first, did not load after its fix. |
| Fix a project with tools Agents | 91.5 | marked by tests | 18 of 18 tests passing at the end (8 at the start), in 13 actions. |
| Find the bugs in an invoicing module Debugging | 26.6 | marked by tests | 29 of 42 tests at first, did not load after its fix. |
| Twenty questions Reasoning | 42.5 | marked by tests | 9 of 20 right. |
Qwen 3.5 9B (MLX) overall 20.7
Three runs on the Mac mini M4. The words are from the runs whose builds I marked.
| Test | Score | My mark | What happened |
|---|---|---|---|
| A landing page that works Frontend | 46.4 | OK | Features 6 of 8, checks 5 of 5 at first; after its fix, features 6 of 8, checks 5 of 5. Judges 65. |
| A dashboard that recalculates Frontend | 5.9 | Fail | Features 5 of 8, checks 4 of 5 at first; after its fix, features 5 of 8, checks 4 of 5. Judges 27. |
| Breakout with lives, levels and pause Games | 4.4 | Fail | Features 0 of 6, checks 1 of 6 at first; after its fix, features 2 of 6, checks 3 of 6. Judges 19. |
| A lighthouse at dusk, in three.js 3D | 2.6 | Fail | Features 0 of 6, checks 4 of 6 at first; after its fix, features 0 of 6, checks 3 of 6. Judges 14. |
| A fox in the snow, by hand SVG | 7.9 | Fail | Features 7 of 7, checks 4 of 4 first time. Judges 42. |
| Twenty balls in a spinning heptagon Creative | 3.3 | Fail | Features 0 of 6, checks 2 of 5 at first; after its fix, features 0 of 6, checks 3 of 5. Judges 3. |
| A spreadsheet engine Systems | 0.6 | marked by tests | 1 of 30 tests at first, 0 of 30 after its fix. |
| Fix a project with tools Agents | 64 | marked by tests | 13 of 18 tests passing at the end (8 at the start), in 15 actions, not finished. |
| Find the bugs in an invoicing module Debugging | 54.2 | marked by tests | 36 of 42 tests at first, 36 of 42 after its fix. |
| Twenty questions Reasoning | 18.3 | marked by tests | 0 of 20 right. |
How I test
- The same ten prompts for every model, kept private. Public prompts end up in what new models are trained on, so the exact words are not here; their fingerprint (version r2, ee64da762f22187f) shows a later round used the same ones.
- Each maker's own settings, thinking off. gpt-oss-20b cannot switch thinking off, so it thinks at its lowest level.
- Every build is tried in a real browser, with the network off, and the four code tests are marked by tests the model never sees.
- One chance to fix. A build or module that fails anything is told what failed and answers again. I judge the final build; in the code tests both tries count half each.
- I judge every build myself. For the six builds you can look at, the score is 80% my own mark of the build (from fail to perfect) and 20% three AI judges from three labs, each sitting out its own lab's models. I marked one build of each model and test, and that mark stands for its other runs.
Round one
Round one's eight tests, from 15 to 20 October, are on their own page.