oneshotlm
Compare all models on this prompt →

3D solar system · deepseek-v4-flash-0731

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 · 18 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
Let me check the current directory and the three.min.js file.
bash {"command":"cd /workspace && ls -la && head -c 300 three.min.js"}
toolResult

total 644 drwxrwxrwx 3 node node 96 Aug 1 05:17 . drwxr-xr-x 1 root root 4096 Aug 1 05:17 .. -rw-r--r-- 1 node node 603445 Aug 1 05:17 three.min.js /** * @license * Copyright 2010-2021 Three.js Authors * SPDX-License-Identifier: MIT */ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).THREE={})}(th

assistant
thinking
Let me check the version of three.js.
bash {"command":"cd /workspace && grep -o 'REVISION=\"[0-9]*\"' three.min.js | head -1"}
toolResult

(no output)

assistant
bash {"command":"cd /workspace && grep -o 'REVISION[eE]=\"[0-9]*\"\\|REVERSION=\"[0-9]*\"' three.min.js | head; grep -o 'OrbitControls' three.min
toolResult

(no output)

assistant
thinking
This appears to be the core three.min.js (a build, REVISION possibly minified differently). No OrbitControls included. So I'll implement my own orbit-drag camera controls. Let me build a self-contained index.html.

I'll create:
- Sun with emissive material and glow (sprites)
- Planets with varied sizes, speeds, orbit radii
- Orbit rings
- Starfield (Points)
- Custom orbit controls (drag to rotate, wheel to zoom, scroll)

Let me write the file.

OrbitControls isn't bundled, so I'll implement my own orbit-drag camera controls. Let me build the app.

write /workspace/index.html (13111 bytes)
toolResult

Successfully wrote 13111 bytes to /workspace/index.html

assistant
thinking
Let me verify the file loads and check for errors by opening in a headless manner. Let me check if node is available to do a sanity check of the JS, but it's DOM-dependent. Let me at least verify three.min.js has the needed classes (Sphere, MeshStandardMaterial, PointLight, Sprite, RingGeometry, Raycaster, etc.).
bash {"command":"cd /workspace && for cls in SphereGeometry MeshBasicMaterial MeshStandardMaterial PointLight AmbientLight Sprite SpriteMaterial
toolResult

OK SphereGeometry OK MeshBasicMaterial OK MeshStandardMaterial OK PointLight OK AmbientLight OK Sprite OK SpriteMaterial OK CanvasTexture OK RingGeometry OK LineLoop OK LineBasicMaterial OK BufferGeometry OK Float32BufferAttribute OK BufferAttribute OK Vector3 OK Spherical OK Raycaster OK Clock OK WebGLRenderer OK Points OK PointsMaterial

assistant
thinking
All classes present. Let me do a quick sanity check that there are no obvious runtime errors by running in a minimal DOM environment. Actually let me try running with node and a mock since that's complex. Instead let me review the code once more.

In the controls IIFE, I set spherical twice - first from camera.position then recompute. Fine.

`const v = new THREE.Vector3();` used in Saturn ring. Fine.

The `controls.update()` in animate re-sets camera from spherical each frame - since spherical is the source of truth, good.

One issue: after user drags, camera looks at target (origin). Good.

Let me verify there's no syntax error by running node parse check on the script portion. I can extract the script and check syntax with node --check after stripping HTML. Simpler: use node to parse just the JS.

Actually let me just run a quick check by writing the script content to a temp file and node --check it.
bash {"command":"cd /workspace && python3 - <<'EOF'\nimport re\nhtml=open('index.html').read()\nm=[s for s in re.findall(r'<script[^>]*>(.*?)</sc
toolResult

/bin/bash: line 1: python3: command not found node:internal/modules/cjs/loader:1520 throw err; ^ Error: Cannot find module '/tmp/app.js' at node:internal/modules/cjs/loader:1517:15 at node:internal/main/check_syntax:33:20 { code: 'MODULE_NOT_FOUND', requireStack: [] } Node.js v24.18.0 Command exited with code 1

assistant
bash {"command":"cd /workspace && node -e \"\nconst fs=require('fs');\nconst html=fs.readFileSync('index.html','utf8');\nconst re=/<script(?![^>]
toolResult

extracted 11557 JS SYNTAX OK

assistant
thinking
Syntax OK. The app is complete. Let me confirm the file is present.
bash {"command":"cd /workspace && ls -la index.html"}
toolResult

-rw-r--r-- 1 node node 13115 Aug 1 05:17 index.html

assistant

Done. I built a complete, self-contained 3D solar system in `/workspace/index.html`, loading the pre-provided `three.min.js` via `<script src="three.min.js">` (no CDNs, no external resources). What's included: **Sun & lighting** - Emissive sun with two layered additive glow sprites (halo effect) - Warm point light from the sun so planets are properly lit, plus faint ambient light **Planets** — 8 planets (Mercury → Neptune) each with: - Varied sizes, colors, orbit radii, and orbital speeds (slower farther out) - Axial rotation at varied rates - A visible semi-transparent orbit ring for each planet **Saturn** — extra flattened ring disc around it **Starfield** - 4,000 stars distributed in a large flattened sphere via `THREE.Points`, with varied white/blue/red tints using per-vertex colors **Orbit-drag camera controls** (custom, since OrbitControls isn't bundled) - Drag to rotate around the scene (spherical coordinates) - Mouse wheel to zoom (clamped distance) - Touch support: single-finger orbit + two-finger pinch zoom **Extras** - Hover raycasting: hovering a planet shows its name in the UI panel - Live FPS counter - Responsive resize handling I verified the JS syntax parses cleanly and confirmed all required Three.js classes exist in the bundled `three.min.js`. Just open `index.html` in a browser.

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

modeldeepseek-v4-flash-0731
vendorDeepSeek
harnesspi-agent
generated2026-08-01

EVALUATION

4/5 working

3D solar system with sun, orbiting planets of varied sizes/speeds, starfield, and working orbit-drag and scroll-zoom 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 motion4.2%
on click4.8%
on drag4.6%
on wheel70.2%
on enter + space1.1%
on arrow keys0.6%
on w/a/s/d0.5%
frame spread45 / 255
console errors0
js errors none

METRICS

runtime46.5s
tokens in7.4k
tokens out5.8k
cached36k
cost / run$0.0297