Does it run? Does it look right?
LLM Visual Bench asks models for the thing they're actually asked to do in a one-shot chat — produce a single self-contained HTML file that draws an animation, a playable game, an animated page — then grades the result automatically in a real browser and publishes the scorecard.
Scroll ↓A small, honest benchmark for one-shot visual codegen — graded by a real browser, not by vibes.
Every run starts from the same fixed prompt. The model answers with one HTML file; the harness boots it in headless Chromium and probes what a screenshot can't show — that the moons are children of the gas giant, that adjacent gears counter-rotate, that the renderer stays under its draw-call budget. The output is a scorecard per run, a percentage per category, a methodology write-up, and a leaderboard.
It's built for the local-LLM scene: 4-bit quantisations of 27B–35B models on a laptop, with prompt tiers short enough that a 30B Q4 model can finish — because a benchmark where everything scores 2/10 ranks nothing. It runs offline, needs no GPU and no API key, and stores every artifact on the filesystem, because benchmark artifacts have to outlive the tool that made them.
What it measures
Five numbers, kept separate on purpose — craft never contaminates correctness.
Correctness
Weighted fraction of all machine-checked requirements that pass. Hard-fail items — a prompt's non-negotiables — are listed separately rather than zeroing the run: "70% correct but missed the point" is a real result.
Functional
Correctness excluding the performance category — the plain "does the thing work" number.
Performance
Frame rate, draw-call and object budgets on their own — measured while the page actually animates.
Craft
How it looks — ranked by blind pairwise voting (Bradley–Terry) between anonymised screenshots of the same prompt, because absolute beauty scores drift between judges and sessions; forced choice doesn't.
Composite
One blended number (default 60/25/15 functional/craft/performance) for the leaderboard — with the components always shown beside it.