
Hourglass
3D object3DSeamless loop16 seconds
The overbalanced wheel, the oldest perpetual motion machine: hinged weights swing out on the falling side and fold in on the rising side. Loops perfectly.
In Machines & clockwork, Craft & heritage
Next: HourglassSurprise me
Your current settings go with it. Combine several clips and hand them over together from your sequence.
Presets
The preview runs the same code your AI receives. These settings travel with the hand-off.
The overbalanced wheel: the oldest design for a perpetual motion machine, drawn by Villard de Honnecourt in the 1200s and reinvented ever since. A wheel carries hinged arms, each ending in a heavy weight. On the way down the arms swing out so their weights hang far from the axle; on the way up they fold in close, so the wheel always seems heavier on the falling side and should turn for ever. (It does not: a machine like this cannot work, which is the whole fascination.) Choose the number of arms, the metal (brass, steel, copper or bronze), the wood of the stand, the whole turns per loop, the backdrop colour and whether the camera sways.
src/perpetual-motion.js is the ingredient your AI reuses. demo.js is only the example scene around it, and uses chrome-material only for the demo.
src/perpetual-motion.jscreateOverbalancedWheel({ arms?, metal?, wood?, turns? }) => { group, setProgress(progress), dispose() }METALS: { brass, steel, copper, bronze }three@0.185.1 (source) — Renderer, geometry and shader materials.chrome-material@1.1.0 (demo) — Studio environment light, backdrop and contact shadow.apw-runtime@1.0.0 (demo) — Demo harness.Coordinates: The axle is at y = 6 on the z axis; the wheel (rim radius 3.2) turns clockwise seen from +z; each arm is 1.7 long and swings out to a radius of about 5.
Lighting: A warm key light with a shadow map, a shadow-catching floor and the studio environment.
Timing: setProgress(progress) sets the wheel angle and every arm's fold from its position; frames render in any order.
npm install
npm run render -- perpetual-motion/1.0.0 --out my-video.mp4Needs Node 18+, ffmpeg and Chrome/Chromium. Add --params my-settings.json (from Copy settings) for your own settings.sha256:06a2d08206b82a81…
3D object3DSeamless loop16 seconds

3D object3DSeamless loop20 seconds

3D object3DSeamless loop16 seconds

3D object3DSeamless loop12 seconds

3D object3DSeamless loop16 seconds

3D object3DSeamless loop12 seconds

3D object3DSeamless loop12 seconds

3D object3DSeamless loop16 seconds