oneshotlm
Compare all models on this prompt →

Mandelbrot explorer · claude-opus-5

Render the Mandelbrot set with a smooth color gradient on a full-screen canvas, with click-and-drag to pan and mouse-wheel to zoom.

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

Render the Mandelbrot set with a smooth color gradient on a full-screen canvas, with click-and-drag to pan and mouse-wheel to zoom.

assistant
thinking
I'm building an HTML page with a Mandelbrot set renderer that uses progressive rendering across frames to keep things responsive. I'll render to ImageData with a tiled approach, showing a low-resolution preview first while the full image fills in, and during panning or zooming I'll translate the existing canvas to give immediate visual feedback.
write /tmp/ws/index.html (8602 bytes)
toolResult

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

assistant
thinking
I'm verifying the skip logic for the coarse pass—at each step s, pixels where both coordinates are multiples of 2s get skipped since they were already computed at the coarser step 2s, which makes sense given how the coarse pass iterates. The initial pass at step 8 correctly has no skip condition, and since job.y increments by s, the y-coordinates are always multiples of s as expected. Now moving on to the progress bar.

The scaling formula is a bit rough but shouldn't cause issues. I'm checking the resize logic—there's a potential noop with `scale = scale`, though the fallback `if(!oldW) scale = 3.2/W` handles the edge case correctly. For periodicity detection, initializing pr and pi to 0 could theoretically flag z=0 as exterior, but after the first iteration with z=0 and some c, we get zr=cr and zi=ci which are nonzero unless c itself is zero, and that's interior anyway, so it's fine.

`/tmp/ws/index.html` — self-contained Mandelbrot explorer. Features: - **Full-screen canvas**, DPR-aware, resizes live - **Smooth coloring** via fractional escape count (`log log |z|`) → 2048-entry LUT, 3 palettes (button or `p`) - **Progressive rendering**: 8→4→2→1 pixel block refinement inside a 14 ms/frame budget, so panning/zooming stays responsive; thin progress bar at top - **Interaction**: drag to pan, wheel to zoom at cursor, double-click zoom in, pinch/drag on touch, `r` reset, `+`/`-` keys - **Perf**: cardioid + period-2 bulb early-out, periodicity cycle detection, adaptive `maxIter` that grows with zoom depth - HUD shows center coordinates (precision scales with zoom), zoom factor, iteration count

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

modelclaude-opus-5
vendorAnthropic · Claude
harnesspi-agent
generated2026-08-03

EVALUATION

4/5 working

Interactive Mandelbrot fractal viewer; drag pans and wheel zooms correctly, keyboard inputs have no effect, no self-animation.

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 click0.0%
on drag81.8%
on wheel33.0%
on enter + space0.0%
on arrow keys0.0%
on w/a/s/d0.0%
frame spread56.5 / 255
console errors0
js errors none

METRICS

runtime61.4s
tokens in9.3k
tokens out5.4k
cached3.5k
cost / run$0.1741