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

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.

Open-source Agent OS: Rust-based OS for AI agents with WASM sandboxing and Hands feature
An open-source operating system for AI agents has been released with 137k lines of Rust code under MIT license. The system runs agents in WASM sandboxes with 16 security layers and introduces 'Hands' for scheduled, autonomous agent operation.

OpenUtter: Query Google Meet Transcripts Live via OpenClaw
OpenUtter is a skill that joins Google Meet as a guest via a headless browser, captures live captions, and streams them to your OpenClaw event bus. You can query the live transcript mid-call via Telegram, WhatsApp, Slack, or Discord.

LocalSynapse MCP Server Enables Claude to Search Local Documents Offline
LocalSynapse is an MCP server that indexes and searches inside local documents (Word, Excel, PowerPoint, PDF) using hybrid BM25 + AI semantic search. Everything runs locally with no cloud or API keys required.