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

Gemma-4 26B-A4B with Opencode Runs Efficiently on M5 MacBook Air
A 32GB M5 MacBook Air can run the Gemma-4-26B-A4B-it-UD-IQ4_XS model at 300 tokens/second prompt processing and 12 tokens/second generation in low power mode, using only 8W of power without getting warm or noisy.
Agentalmanac: A Catalog of 23 MCP Servers with Paste-Ready JSON Configs
Reddit user catalogues 23 MCP servers with paste-ready configs for Claude Desktop, Cursor, and Continue. Routes around archived servers to maintained alternatives. Hosted demo runs on Cloudflare Workers.

Mandala v0.3: Open-Source Async Runtime to Unify Logistics Telemetry as OpenTelemetry Spans for Agent Reasoning
Mandala v0.3 provides an open-source async runtime that ingests telemetry from Samsara, Descartes, Vizion, and FMCSA via webhooks, emits events as OpenTelemetry spans, and exposes data via MCP tools for LLM agents.

Local RAG Tool Built with Nemotron Nano 9B v2 and vLLM Tool Calling
A developer built a local-first RAG research tool that runs entirely on a single GPU using Nemotron Nano 9B v2 Japanese on vLLM with custom parser plugins for tool calling. The system features a two-step extract-execute flow with bilingual keyword extraction and parallel FTS5/DuckDuckGo search.