Building a Geological Clock with Claude Code: Single HTML + Three.js

Owen Thomas, a product designer with basic HTML/CSS skills, built eona.earth — a geological clock that maps Earth's 4.5 billion year history onto a 12-hour clock face synced to local time. The project was built entirely using Claude Code (Pro plan) and is shipped as a single HTML file with vanilla JS, Three.js for WebGL, and a custom fragment shader — no build step.
Key Details from the Build
- Claude Code usage: Mostly used Sonnet for implementation, switched to Opus 4.6 for complex work or when stuck. Initially tried Opus 4.7 but found it over-engineered (e.g., running 4 noise passes per pixel at 60fps).
- Custom WebGL shader renders the globe with paleogeographic continent data. Procedural clouds and atmospheric haze evolve as you move through geological time.
- Colour palette was designed in Gemini (free plan, Thinking mode) to create a system for 14 phases of Earth's evolution. Opus 4.6 then built an interactive palette editor (unprompted) for adjusting colours, surfaces, and clouds — available at eona.earth/colour-lab.html.
- Interaction: Drag a scrubber handle to move through 4.5 billion years manually. Toggle layers on/off via top-right controls.
- Time mappings: 12:06 — Moon forms, 2:45 — first life, 11:39 — dinosaurs go extinct, humans appear in the last 3 seconds.
- Continental drift: Post-cryogenic snowball Earth rendered using paleogeographic continent data (shape-tweened map series).
Workflow & Constraints
Owen worked evenings over 2 weeks, staying within Pro plan limits by being intentional: short sessions, off-peak hours, working outside Claude where possible, and using context files. The source code is on GitHub at github.com/owen-thomas/eona-earth.
Planned Features
- Keyboard navigation to jump between events
- Scrub without globe spinning (to observe continental drift)
- Future Earth projection covering the planet's remaining lifespan (second 12-hour period)
- Physical build using Waveshare round display + Raspberry Pi 4
- Sound design
- Watch/mobile/desktop app
📖 Read the full source: r/ClaudeAI
👀 See Also

Swarm Orchestra v2 Plugin Adds Inter-Agent Messaging to Fix Claude Code Agent Team Chaos
Swarm Orchestra is a plugin that addresses Claude Code's experimental TeamCreate feature, which can spawn runaway agents. Version 2 adds inter-agent messaging via a PreToolUse hook and self-configuration via a /teammate skill.

Found-Issues plugin logs bugs Claude ignores while working on other tasks
A Claude Code plugin that writes one-line entries to docs/found-issues.md when the agent spots bugs outside scope, with auto-closure on PR merge and tombstone detection.

Local voice-to-text transcription for OpenClaw using Parakeet TDT 0.6b v3
A developer has converted NVIDIA's Parakeet TDT 0.6b v3 model to run locally via ONNX on CPU, supporting 25 European languages. The model provides an OpenAI-compatible API endpoint through a Docker container, allowing integration with OpenClaw for audio file transcription.

OpenClaw vs Hermes: Different Design Philosophies for AI Agents
OpenClaw is a multi-channel gateway connecting WhatsApp, Telegram, Discord, Slack, and iMessage with a massive skill ecosystem, while Hermes is a learning agent that evaluates tasks, saves patterns as reusable skills, and builds a model of your workflow over time.