Everything is verified. The new demo 013 — Clockwork Nebula is complete and the index page updated.
What was built — /space/demos/013-clockwork-nebula/index.html (~79 KB, self-contained, Three.js r160 via verified unpkg CDN):
- A steampunk orrery: a captive shader-forged sun (fbm granulation, fresnel glow shell, phase-shifted palette that evolves from main-sequence → amber giant → ember dusk as years pass) held in a 3-axis gimbal cage atop a brass tower.
- True gear train: four extruded-geometry planetary gear carriers (28/36/44/60 teeth) whose orbital periods are exact tooth ratios — 1, 2.25, 4.4 and 9 years — each carrying a procedural-textured world (greenhouse, lava-cracked forge, glacier archive, ringed gas giant) with 5 moons, arms, counterweights, support rings and rivets.
- Instruments: a rolling calendar drum with 12 named seasons, an 8-phase lunar dial slaved to the moon Pip, and a precessing tilted astrolabe that drives seasonal bobbing.
- Halley, the steam-tailed comet: a 12-year elliptical orbit with a 900-particle shader tail that ignites near perihelion, triggering sun flares, steam bursts, whoosh audio and toasts.
- Interaction: click any planet/gear/moon/sun/comet for story panels; chase cam; an 8-stop projectionist tour; 5 scene presets (calibration, eclipse, perihelion, nebula surge, frozen midnight); time-warp slider from ÷16 to 1 day/sec; escapement tick + yearly chime + drone/steam WebAudio ambience; bloom toggle, ormolu filigree discs, floating dust motes, PNG snapshots, keyboard shortcuts.
Validation: JS syntax checked with node --check, all DOM ids cross-referenced, uniform defs/uses audited, declaration-order analysis done, CDN URLs confirmed reachable (200), and index page verified to contain exactly one card per demo (013 at top, no duplicates).