oneshotlm
Compare all models on this prompt →

Synthwave sunset · minimax-m2

Create an animated synthwave sunset: a glowing gradient sun with scanlines setting over an infinite neon grid that scrolls toward the viewer, with a starfield and a reflected horizon.

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

Create an animated synthwave sunset: a glowing gradient sun with scanlines setting over an infinite neon grid that scrolls toward the viewer, with a starfield and a reflected horizon.

assistant
thinking
The user wants me to create a synthwave-style animated scene with:
1. A glowing gradient sun (synthwave style, typically with horizontal stripes)
2. Scanlines effect
3. An infinite neon grid that scrolls toward the viewer
4. A starfield background
5. A reflected horizon

This is a single HTML file project with CSS and JavaScript for animations. I'll create it all in one index.html file.

Let me plan this:
- CSS gradients for the sky and sun
- Canvas or CSS for the neon grid perspective effect
- Animation for the scrolling grid
- Starfield with twinkling stars
- Reflection effect on the horizon

I'll use canvas for the grid and starfield as it's more performant for animations, and CSS for the sun and sky.
write /tmp/ws/index.html (11623 bytes)
toolResult

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

assistant
thinking
I've created the synthwave sunset scene. Let me verify the file exists and has proper content.
bash {"command":"ls -la /tmp/ws/index.html"}
toolResult

-rw-r--r--. 1 node node 11623 Aug 1 20:53 /tmp/ws/index.html

assistant
thinking
The file is created. Let me verify it looks correct by checking the beginning and end of the file to make sure it's all there properly.
read {"path":"/tmp/ws/index.html","limit":30}
toolResult

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Synthwave Sunset</title> <style> * { margin: 0; padding: 0; box-sizing: border-box; } body { overflow: hidden; background: #000; font-family: 'Courier New', monospace; } .container { position: relative; width: 100vw; height: 100vh; background: linear-gradient( to bottom, #0a0015 0%, #1a0030 20%, #2d0a4e 40%, #4a1259 50%, #6b1a5c 60%, [358 more lines in file. Use offset=31 to continue.]

assistant
thinking
The file looks good. Let me verify the closing tags are correct.
read {"path":"/tmp/ws/index.html","offset":300}
toolResult

const gradient = ctx.createLinearGradient(0, y, canvas.width, y); gradient.addColorStop(0, `rgba(255, 0, 255, ${alpha})`); gradient.addColorStop(0.5, `rgba(0, 255, 255, ${alpha})`); gradient.addColorStop(1, `rgba(255, 0, 255, ${alpha})`); ctx.strokeStyle = gradient; ctx.lineWidth = Math.max(1, (1 - t) * 3); ctx.stroke(); } // Draw vertical lines (radiating from vanishing point) const numVLines = 40; const spread = canvas.width * 2; for (let i = -numVLines / 2; i <= numVLines / 2; i++) { const baseX = vanishingPointX + (i / (numVLines / 2)) * spread; ctx.beginPath(); ctx.moveTo(vanishingPointX + (i * 5), vanishingPointY); ctx.lineTo(baseX, canvas.height); const dist = Math.abs(i) / (numVLines / 2); const alpha = Math.max(0.1, (1 - dist) * 0.6); ctx.strokeStyle = `rgba(255, 0, 255, ${alpha})`; ctx.lineWidth = Math.max(0.5, (1 - dist) * 2); ctx.stroke(); } // Add glow effect to grid const glowGradient = ctx.createLinearGradient(0, horizonY, 0, canvas.height); glowGradient.addColorStop(0, 'rgba(0, 255, 255, 0.1)'); glowGradient.addColorStop(1, 'rgba(255, 0, 255, 0)'); ctx.fillStyle = glowGradient; ctx.fillRect(0, horizonY, canvas.width, canvas.height - horizonY); } function animate() { offset += gridSpeed; drawGrid(); requestAnimationFrame(animate); } animate(); // Add some extra animated particles const container = document.querySelector('.container'); function createParticle() { const particle = document.createElement('div'); particle.style.cssText = ` position: absolute; width: 3px; height: 3px; background: #00ffff; border-radius: 50%; box-shadow: 0 0 10px #00ffff; left: ${Math.random() * 100}%; bottom: 35%; animation: flyUp ${Math.random() * 3 + 2}s linear forwards; `; const style = document.createElement('style'); style.textContent = ` @keyframes flyUp { 0% { transform: translateY(0) scale(1); opacity: 1; } 100% { transform: translateY(-200px) scale(0); opacity: 0; } } `; document.head.appendChild(style); container.appendChild(particle); setTimeout(() => { particle.remove(); style.remove(); }, 5000); } setInterval(createParticle, 300); </script> </body> </html>

assistant
thinking
The file is complete with proper closing tags. The synthwave sunset scene includes:

1. ✅ Glowing gradient sun with scanlines (the horizontal stripes on the sun)
2. ✅ An infinite neon grid that scrolls toward the viewer (using canvas for perspective)
3. ✅ A starfield with twinkling stars (animated with CSS keyframes)
4. ✅ A reflected horizon (the reflection div and the horizon line)
5. ✅ Scanlines overlay effect
6. ✅ Vignette effect
7. ✅ Animated cyan particles rising
8. ✅ "SYNTHWAVE" title with glow effect

All in a single self-contained HTML file with no external resources.

Done! I've created a complete synthwave sunset scene in `/tmp/ws/index.html`. The animation includes: - **Glowing gradient sun** with characteristic horizontal scanlines cutting through it - **Infinite neon grid** that continuously scrolls toward the viewer with perspective effect - **Twinkling starfield** in the upper portion of the sky - **Neon horizon line** with magenta/cyan gradient glow - **Reflection effect** below the horizon - **Scanlines overlay** for that retro CRT aesthetic - **Vignette effect** for depth - **Animated cyan particles** rising from the horizon - **"SYNTHWAVE" title** with pulsing neon glow The entire scene is self-contained in a single HTML file with no external dependencies. Open the file in any modern browser to see the animated synthwave sunset.

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

modelminimax-m2
vendorMiniMax
harnesspi-agent
generated2026-08-01

EVALUATION

3/5 working

Static-looking synthwave sun, grid, starfield, and horizon scene; no visible grid scroll animation or input response.

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.1%
on click0.1%
on drag0.1%
on wheel0.1%
on enter + space0.1%
on arrow keys0.1%
on w/a/s/d0.1%
frame spread33.3 / 255
console errors0
js errors none

METRICS

runtime37.0s
tokens in21k
tokens out3.5k
cached0
cost / run$0.0090