Last week I wanted a little retro Tetris I could open in a browser and play with that chunky handheld-console feel. Instead of hunting for a template, I typed one short prompt into a local LLM in my coding agent. The whole thing ran on my laptop. No cloud API, no build step, no dependencies. Here are the numbers that matter.

The prompt
The entire request was one sentence, in Chinese:
创建一个俄罗斯方块游戏网页版,要求模拟手持游戏机的感觉
Translation: “Create a web-based Tetris game that simulates the feel of a handheld console.” No spec, no design doc, no reference links. Just a vibe.
The stack
| Model | Qwen 3 27B (speed-optimized build), served locally via MTPLX |
|---|---|
| Hardware | MacBook Pro — Apple M5 Max, 64 GB unified memory |
| OS | macOS 26.6.2 |
| Harness | Local coding agent (single-file output, no GPU server, no API key) |
Everything — inference, context, the whole 34k-token working set — lived in the 64 GB of unified memory on the laptop. Nothing left the machine.
The numbers
I pulled the telemetry straight out of the session log:
| Step | Output tokens | Wall time | Throughput |
|---|---|---|---|
| Write the game (19 KB single-file HTML) | 24,112 | ~9.5 min | ~42 tok/s |
| Write the blog post about it | 1,891 | ~13 s | ~145 tok/s |
Two honest caveats:
- The ~42 tok/s on the game is a blended rate — it includes hidden reasoning tokens (medium effort level) and reprocessing a ~34k-token prompt. Pure decode is faster than that.
- The ~145 tok/s on the post is the cleaner number: a short, straightforward generation. For a 27B running on a laptop’s memory, that’s a genuinely healthy rate.
The 9.5 minutes sounds scary, but it was one continuous stream of ~24,000 tokens — the model was never idle between steps, it just had a lot of deliberation and a big file to lay down. You watch it stream the whole thing in real time, and that turns out to be half the fun.
One sentence in, one playable handheld console out — generated entirely inside a 64 GB MacBook, at ~145 tokens per second.
The result
The game itself: original four-shade DMG green palette on a 160×144 pixelated canvas, a hand-drawn 3×5 bitmap font, the whole Game Boy shell in pure CSS (clickable D-pad, A/B buttons, START/SELECT, speaker grille), and chip-tune sound synthesized from scratch with the Web Audio API. One file, ~19 KB, zero dependencies.
Controls: ← → move · ↓ soft drop · ↑ / X rotate · Space hard drop · Enter pause. Or just click the on-screen buttons — that’s the whole point.
Try it yourself
If you have a local LLM wired into a coding agent, try the exact same sentence. The interesting variable isn’t the prompt anymore — it’s your hardware. A 27B on a 64 GB M5 Max streams at ~145 tok/s when it isn’t thinking; a smaller model on 32 GB gets you there sooner with less polish. The local-model era is as much about silicon as it is about architecture.












