oneshotlm
Compare all models on this prompt →

Asteroids · qwen3.8-2.4t-a95b

Build a playable Asteroids game on a canvas: a thrust-and-rotate vector ship that shoots and wraps around the screen edges, splitting asteroids into smaller pieces, with score and lives. Procedural vector graphics only, no external assets.

⛨ sandboxed Open in new tab ↗
transcript · 6 messages
user

Build a playable Asteroids game on a canvas: a thrust-and-rotate vector ship that shoots and wraps around the screen edges, splitting asteroids into smaller pieces, with score and lives. Procedural vector graphics only, no external assets.

assistant
thinking
Create a complete Asteroids game in a single index.html. Contents to include: spaceship rotation/thrust/inertia, bullets, asteroid splitting, screen wrap, score, lives, particle explosions, restart, hypertext (warp) if possible. Keep it robust.
write /tmp/ws/index.html (12827 bytes)
toolResult

Successfully wrote 12827 bytes to /tmp/ws/index.html

assistant
thinking
Quick sanity check: verify that the file exists, and maybe do a JS syntax check with node (if available).
bash {"command":"cd /tmp/ws && ls -la index.html && node -e \"\nconst html = require('fs').readFileSync('index.html','utf8');\nconst js = html.ma
toolResult

-rw-r--r--. 1 node node 12830 Aug 13 01:25 index.html JS syntax OK

assistant
thinking
Wait — the syntax check ran, but since the script is an IIFE using browser APIs, the new Function check is only verifying the syntax. No problem there. Done.

Done — `/tmp/ws/index.html` is a fully self-contained Asteroids game (CSS in `<style>`, JS in `<script>`, zero external resources). JS syntax verified. **Features:** - 🚀 **Vector ship** — rotate with ←/→ (or A/D), thrust with ↑/W (inertia + drag physics), drawn as a classic line-art triangle with animated exhaust flame and thrust particles - 💥 **Shooting** — SPACE fires bullets (with a cap of 6 onscreen), bullets wrap around edges - 🪨 **Asteroids** — procedurally generated jagged polygons, 3 sizes; big → 2 medium → 2 small (20/50/100 points), each with random spin, speed, and rotation - 🌀 **Screen wrapping** for ship, bullets, and asteroids - ❤️ **Lives & score** — HUD shows score, level, and lives as mini ship icons; 3s invincibility blink on respawn (waits for center to be clear) - 🎮 **Game states** — menu, playing, paused (P), game over; Enter to start/restart - ✨ **Polish** — particle explosions, screen shake, starfield background, drifting asteroids behind the menu, level progression (more rocks each level)

TAKE IT TO CODE

A single self-contained HTML file — copy it and open in any browser, or reuse the prompt with your own pi-agent run.

RUN

modelqwen3.8-2.4t-a95b
vendorQwen
harnesspi-agent
generated2026-08-13

EVALUATION

3/5 partial

Menu with drifting asteroids works; pressing Enter+Space/arrows/WASD starts game showing ship and score/level HUD, but ship appears static and controls seem weak.

Vision grade · anthropic/claude-sonnet-5

MEASUREMENTS

Raw readings from the capture, not a verdict — the grade above is the only judgement. Percentages are how much of the screen changed; the measure under-reports sparse motion on a dark background.

idle motion0.6%
on click1.0%
on drag1.0%
on wheel0.9%
on enter + space3.7%
on arrow keys1.7%
on w/a/s/d1.8%
frame spread11 / 255
console errors0
js errors none

METRICS

runtime75.1s
tokens in14k
tokens out5.1k
cached0
cost / run$0.0595