oneshotlm
Compare all models on this prompt →

3D solar system · minimax-m2.1

Using the pre-provided three.min.js (global THREE), build a 3D solar system with the sun and orbiting planets at varied speeds and sizes, orbit-drag camera controls, and a starfield.

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

Using the pre-provided three.min.js (global THREE), build a 3D solar system with the sun and orbiting planets at varied speeds and sizes, orbit-drag camera controls, and a starfield.

assistant
thinking
The user wants me to build a 3D solar system using Three.js. Let me first check what's in the current directory to confirm three.min.js is present, then create a comprehensive single-page web app with:

1. A sun at the center
2. Multiple planets orbiting at different speeds and sizes
3. Orbit-drag camera controls (OrbitControls)
4. A starfield background

Let me start by checking the directory contents.
bash {"command":"ls -la /tmp/ws"}
toolResult

total 592 drwxr-sr-x. 2 node node 26 Aug 1 20:46 . drwxrwsrwx. 3 root node 16 Aug 1 20:46 .. -rw-r--r--. 1 node node 603445 Aug 1 20:46 three.min.js

assistant
thinking
Good, three.min.js is present. Now let me check if OrbitControls is available - it's usually a separate file from three.min.js. Let me check if there's an OrbitControls file or if I need to implement it differently.

Actually, for a self-contained file without external CDN, I need to either:
1. Include OrbitControls inline (it's a complex module)
2. Or implement a simple orbit camera manually

Let me check if there's an OrbitControls file available in the directory.
bash {"command":"ls -la /tmp/ws/*.js /tmp/ws/*.json 2>/dev/null || echo \"Only three.min.js found\""}
toolResult

-rw-r--r--. 1 node node 603445 Aug 1 20:46 /tmp/ws/three.min.js Only three.min.js found

assistant
thinking
Only three.min.js is available. I'll need to implement orbit camera controls manually since OrbitControls is not available. I can create a simple orbit camera that responds to mouse drag events.

Let me build a comprehensive 3D solar system with:
1. Sun (glowing, emissive)
2. 8 planets with varying sizes, colors, and orbital speeds
3. Saturn's rings
4. A starfield background
5. Simple orbit-drag camera controls (implemented manually)
6. Ambient and point lighting from the sun

Let me create the index.html file.

I'll create a comprehensive 3D solar system with the sun, planets, starfield, and custom orbit camera controls. Let me build this:

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

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

assistant
thinking
The file has been created. Let me verify it exists and check that everything looks good.
bash {"command":"ls -la /tmp/ws/index.html"}
toolResult

-rw-r--r--. 1 node node 19905 Aug 1 20:47 /tmp/ws/index.html

assistant
thinking
The file has been created. Let me verify that the file is valid by checking for any obvious issues. I should also verify that the HTML is syntactically correct and that all the elements are properly closed.
bash {"command":"head -30 /tmp/ws/index.html && echo \"...\" && tail -20 /tmp/ws/index.html"}
toolResult

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>3D Solar System</title> <style> * { margin: 0; padding: 0; box-sizing: border-box; } body { overflow: hidden; background: #000; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; } #canvas-container { width: 100vw; height: 100vh; position: relative; } canvas { display: block; } #info { ... sunGlow.rotation.y += 0.002; sunGlow.rotation.x += 0.001; // Update camera controls orbitControls.update(); renderer.render(scene, camera); } // Handle window resize window.addEventListener('resize', () => { camera.aspect = window.innerWidth / window.innerHeight; camera.updateProjectionMatrix(); renderer.setSize(window.innerWidth, window.innerHeight); }); animate(); </script> </body> </html>

assistant
thinking
The file looks good. It's properly structured with HTML, CSS, and JavaScript all in one file. Let me verify the structure is complete and the code is valid.

Key features included:
1. ✅ Three.js loaded from local three.min.js
2. ✅ Sun at center with glow effect
3. ✅ 8 planets with varying sizes, colors, and orbital speeds
4. ✅ Saturn's rings
5. ✅ Moons for Earth and Mars
6. ✅ Jupiter's bands
7. ✅ Starfield background (15,000 stars)
8. ✅ Custom orbit-drag camera controls (left-click drag to rotate, right-click drag to pan, scroll to zoom)
9. ✅ Planet hover detection with labels
10. ✅ Time speed control slider

Everything looks complete and should work properly!

I've created a complete 3D solar system in `/tmp/ws/index.html`. Here's what's included: **Features:** - ☀️ **Sun** - Glowing central star with corona effect - 🪐 **8 Planets** - Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune - Varied sizes and colors based on real planets - Different orbital speeds (inner planets faster, outer planets slower) - Saturn's rings - Jupiter's atmospheric bands - Moons for Earth (1) and Mars (2) - ⭐ **Starfield** - 15,000 colorful stars in the background - 🎮 **Orbit camera controls** (custom implementation): - Left-click drag: Rotate view - Right-click drag: Pan - Scroll wheel: Zoom in/out - 🏷️ **Planet labels** - Hover over planets to see their names - ⏱️ **Time speed slider** - Control orbital animation speed (0-10x) The file is completely self-contained with no external dependencies (uses the local three.min.js). Open `index.html` in a browser to explore the solar system!

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.1
vendorMiniMax
harnesspi-agent
generated2026-08-01

EVALUATION

4/5 working

3D solar system with sun, orbiting planets of varied sizes, orbit rings, starfield, and working drag/wheel camera controls.

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.5%
on click2.0%
on drag5.1%
on wheel3.2%
on enter + space1.9%
on arrow keys2.1%
on w/a/s/d2.0%
frame spread22.8 / 255
console errors0
js errors none

METRICS

runtime51.9s
tokens in1.5k
tokens out5.6k
cached25k
cost / run$0.0080