oneshotlm
Compare all models on this prompt →

Fireworks · nemotron-3-ultra-550b-a55b

Create a fireworks display on a full-screen canvas where clicks launch shells that explode into gravity-affected, fading particle bursts.

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

Create a fireworks display on a full-screen canvas where clicks launch shells that explode into gravity-affected, fading particle bursts.

assistant
thinking
We need to create a single-page web app: index.html with canvas full-screen, fireworks. Clicks launch shells that explode into gravity-affected, fading particle bursts.

We need to write HTML with style and script. No external resources. Use vanilla JS. Let's craft.

Plan: Create canvas full screen, requestAnimationFrame loop. Particles: shell objects rising then exploding. On click, create a shell at bottom center? Or at click position bottom? Probably click to launch from bottom center to click point? Simpler: click anywhere on canvas, launch a shell from bottom center towards click position, explode at click position. But typical fireworks: click to set explosion point; shell rises then explodes at that point.

Implement: On click, record target point (x,y). Create a shell starting at bottom center (canvas.width/2, canvas.height) with velocity towards target; when reaches target (or after time), explode into many particles with random angles, initial speed, gravity, fade.

Simplify: Immediately explode at click location? But spec says clicks launch shells that explode. Could launch from bottom center upward to click point.

Implement shell: position, target, velocity. Update: move towards target; when distance small, explode.

Explosion particles: each particle with pos, vel (random angle, speed), color, life, decay.

Gravity: apply to particle velocity y += gravity per frame.

Fade: alpha reduces over life.

Loop: clear canvas with semi-transparent black for trails? Use clearRect each frame and draw particles.

Let's code.

We'll write HTML with style: body margin 0, canvas display block, width 100vw height 100vh.

Script: set up canvas, resize handler.

Data structures: shells array, particles array.

Shell class: constructor(targetX, targetY) start at center bottom. compute direction vector, speed maybe 8. update: pos += vel; if distance to target < speed => explode.

Explosion: create N particles (e.g., 80) with random angle 0-2π, speed 2-5, color random hue.

Particle update: pos += vel; vel.y += gravity (0.05); life-- ; alpha = life / maxLife.

Draw: for each particle, ctx.beginPath, arc, fill with rgba.

Also draw shell as a small bright dot moving.

Add requestAnimationFrame loop.

Let's write index.html.
write /workspace/index.html (3239 bytes)
toolResult

Successfully wrote 3239 bytes to /workspace/index.html

assistant
thinking
We have created index.html with full code. Need to ensure it's self-contained, no external resources. It meets requirements: full-screen canvas, clicks launch shells that explode into gravity-affected fading particle bursts. Provide final answer.

The fireworks web app has been created as a single self‑contained **index.html** file in the current directory. It includes: * A full‑screen `<canvas>` that resizes with the window. * Click handling that launches a shell from the bottom center toward the click point. * Shells travel upward and explode at the target location. * Explosions spawn many particles with random directions, gravity, and fading alpha. * All rendering is done in a `requestAnimationFrame` loop with no external resources. You can open **/workspace/index.html** in a browser to see the fireworks in action.

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

modelnemotron-3-ultra-550b-a55b
vendorNVIDIA
harnesspi-agent
generated2026-07-22

EVALUATION

4/5 working

Click launches a shell that explodes into a colorful gravity-affected particle burst; keyboard has no effect but that's expected.

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.0%
on click1.3%
on drag0.0%
on wheel1.9%
on enter + space0.7%
on arrow keys0.0%
on w/a/s/d0.0%
frame spread4.3 / 255
console errors0
js errors none

METRICS

runtime23.4s
tokens in4.9k
tokens out1.8k
cached128
cost / run$0.0063