oneshotlm
Compare all models on this prompt →

Asteroids · aion-2.0

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 · 4 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
I only include one tag.

The user wants a single-page self-contained HTML file with an Asteroids game. Let me plan the implementation:

1. **Canvas setup**: Full-screen canvas, or a fixed size like 800x600 centered.
2. **Ship**: Vector-drawn triangle, rotate left/right, thrust forward, wrap around edges, inertia-based movement.
3. **Bullets**: Fire from ship, travel in straight line, wrap around, limited lifetime.
4. **Asteroids**: Start with a few large asteroids, split into medium then small when shot, wrap around edges, move in random directions.
5. **Collision**: Ship vs asteroid = lose life, reset. Bullet vs asteroid = split/destroy, add score.
6. **Score & Lives**: Display on screen.
7. **Controls**: Arrow keys or WASD for thrust/rotate, space to shoot.
8. **Procedural vector graphics**: Draw everything with canvas path operations (lines, no images).

Let me write the complete HTML file.

write /tmp/ws/index.html (12778 bytes)
toolResult

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

assistant
thinking
Let me start.

The user wants a single-file HTML page with a playable Asteroids game. I need to write it to /tmp/ws/index.html. I have done that. The file contains:

- Inline CSS for styling (dark background, centered canvas)
- A canvas element (900x600)
- Inline JavaScript implementing the full Asteroids game:
  - Ship with rotation (ArrowLeft/Right or A/D), thrust (ArrowUp/W), wrapping
  - Bullets (Space/Z) that wrap and have limited lifetime
  - Asteroids with jagged procedural shapes, three sizes (large→medium→small), splitting
  - Collision detection using circle approximation
  - Score, lives, level progression
  - Particle explosions
  - Game over / restart
  - Subtle grid background
  - HUD showing score, level, lives

All vector graphics, no external assets, no CDN, no network requests. The game should be fully functional.

The game is written to `/tmp/ws/index.html`. Here's what it includes: **Controls:** - **Arrow Left / A** – rotate left - **Arrow Right / D** – rotate right - **Arrow Up / W** – thrust (with engine flame effect) - **Space / Z** – shoot **Features:** - Thrust-and-rotate vector ship with inertia and speed cap - Bullets with limited range, ship wraps around screen edges - Procedural jagged asteroids in 3 sizes (large → medium → small) - Asteroids split into 2 smaller pieces when shot - Score per asteroid size (20/50/100 points) - Lives (3), level counter, increasing asteroid count per wave - 2-second invincibility after respawn (flashing effect) - Particle explosions on ship death and asteroid hits - Game over screen with final score and restart prompt - Subtle grid background, all vector-drawn — zero external assets or network requests Open `index.html` in any browser to play.

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

modelaion-2.0
vendorAion Labs
harnesspi-agent
generated2026-08-01

EVALUATION

3/5 partial

Asteroids-style vector game renders with drifting asteroids and ship, but ship never rotates/thrusts and lives count drops after inputs, suggesting weak or unclear player control.

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 motion1.7%
on click2.3%
on drag2.2%
on wheel2.3%
on enter + space2.8%
on arrow keys2.4%
on w/a/s/d2.1%
frame spread6.9 / 255
console errors0
js errors none

METRICS

runtime62.2s
tokens in4.8k
tokens out4.4k
cached2.4k
cost / run$0.0114