One-shot, no edits: a procedural low-poly planet with atmosphere, drifting clouds and a medieval catapult seated on the surface normal. Three.js, single self-contained HTML file, no build step.
"Besiege Earth — low-poly planet in one HTML file" is one prompt run by 2 models: Kimi K3 and Claude Opus 4.8.2 of 2 finished, on figures reported by the author.
Models
2
Completed
2 of 2
Cheapest completed run
not measured
Figures reported by Terry Chen. Not independently verified.
Numbers on this page were reported by the author. We did not run this comparison and cannot verify them.
Prompt published by the author in a reply: https://x.com/227Terry/status/2081906721665212751
Output
Kimi K3
Claude Opus 4.8
Prompt28 lines · EN
Output EXACTLY ONE complete HTML file. No markdown fences. No explanation before or after the HTML.
The file must run in Chrome with no build step.
Tech stack (required):
- Three.js r170+ from http://cdn.jsdelivr.net
- WebGLRenderer only (NOT WebGPU)
- OrbitControls: orbit a planet at origin; min/max distance clamped
Scene: "Besiege Earth"
- Procedural LOW-POLY planet at origin:
• Build from icosahedron or cube-sphere (subdivided cube inflated to sphere)
• Displace vertices with layered simplex/noise for continents and mountains
• Color by height: deep ocean blue, green lowlands, brown peaks, white ice caps
• Flat shading (MeshFlatMaterial or computed flat normals) for Besiege-like look
- Thin atmosphere: slightly larger transparent sphere, fresnel/rim glow on edges
- Slow cloud shell: second transparent layer or particle ring, subtle drift
- Surface prop: one medieval SIEGE CATAPULT built from box/cylinder primitives
(wood brown + metal gray), sitting on land near equator, correctly oriented
to planet surface normal (not floating, not buried)
- Lighting: warm sun directional + cool ambient; soft gradient sky background
- UI overlay: title "Besiege Earth", subtitle with controls hint
- Animation loop: planet rotates slowly (~0.05 rad/s); optional catapult arm sway
- Responsive full-viewport canvas
- Graceful error message if WebGL unavailable
Constraints:
- All geometry procedural; no external images or models
- Keep total file under 900 lines if possible