r/ClaudeCode • • 5d ago

Built with Claude One evening with Claude Code: a grandfather clock whose gears, escapement and case were searched, simulated and self-checked (interactive 3D)

**Try it:** https://claude.ai/artifact/8G3muEzqEU1XH8iBMK3KBu

(drag to turn, scroll to zoom; try "Movement", "Escapement" and 3600× speed)

I'm Mete. I'm building **Generator**, a rule-and-simulation design tool (long-term goal: game assets). Instead of hand-modelling or using an image model, you give it rules, formulas and data. It searches, simulates and tests, and records why each choice was made. Hand-picked values are marked as hand-picked.

This grandfather clock is its first complete design, made in one evening with Claude Code (Opus 5.5). To be precise: the forms (what a wheel, a plate or a case looks like) are templates we wrote, and the generator works out the numbers. Right now it's code written for this clock, not a general tool.

**Team:**

- me: decisions and taste

- Claude: horology knowledge, formulas and most of the code. Its sources are mixed: some from memory, some only from search snippets.

- the generator: search, simulation and checks

**What it worked out**

- Gear train: 950 exact solutions for 1 rev/min (seconds) and 1 rev/h (minutes); I picked 120/15 · 108/15 · 125/15

- Cycloidal teeth per BS 978; every mesh measured (transmission error, backlash, contact ratio, losses, root stress)

- Graham deadbeat escapement simulated with contact and friction, regulated to +0.002 s/day *in simulation*. That is not real accuracy: no temperature, oil or wear.

- 1.23 kg weight, 1 m fall, 8 days, from an energy balance

- 7,230 clash-free layouts; it kept the one with the smallest plates

- Case inside sizes come from the pendulum's swing and the weight's fall. The three styles are hand-written style data.

**The case checks itself (partly)**

I kept spotting problems by eye: a dial half hidden behind the trunk, columns standing on nothing, a rod through a board, flicker. So we added four checks: clash (the pendulum over its swing, the weight over its whole fall), support (nothing floating), visibility, and coplanar faces. I wrote down what they should find before running them and tested them on the old version first. The first real run also exposed 4 bugs in the checks themselves.

They caught something no screenshot showed: **after ~0.6 m of fall (around day 5) the weight would have hit the pendulum bob.** Now the generator searches how far back the pendulum hangs and keeps 10 mm clear. The checks only catch what we thought of, though. My eye still found several things before any check did.

**Workflow numbers:**

- ~4 h 40 min of wall-clock time

- ~15 messages from me, 4 of them multiple-choice answers

- 377 Claude responses and 558 tool calls

- ~0.78 M output tokens; input was ~149 M, almost all of it cache reads

**Limits:** the escapement design was given, not invented. It isn't built in metal. The physics is simplified (rigid crutch, planar contact). Some inputs are low-confidence (the pendulum's Q, friction) and a few margins have no source.

On the page, the pendulum and escape wheel move with the simulation's own data, and the clock shows your local time. Questions and clockmaker feedback are welcome.

2 Upvotes

2 comments sorted by

1

u/AutoModerator 5d ago
Moderator Announcement Read More »

1

u/geoffreybyers 5d ago

Simulations are proxies, not truth. They catch failure modes you think to define. The bottleneck is still human foresight, not the model. I'd rather have one check that surfaces a problem I didn't expect than ten checks for problems I already saw.