
Hourglass
3D object3DSeamless loop16 seconds
A Calder-style hanging mobile of brass arms and lacquered shapes, swaying and creeping round forever. 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
Levels of arms: 2 gives 4 shapes, 3 gives 8, 4 gives 16.
Whole turns the arms creep round per loop.
The preview runs the same code your AI receives. These settings travel with the hand-off.
A hanging mobile in the manner of Alexander Calder: a tree of slender brass arms, each carrying two things on fine strings — a lacquered shape, or another arm that carries two more. Every arm turns about its own string at its own pace, swaying and creeping round, and every shape spins slowly, so the whole sculpture keeps finding new arrangements. Choose how many levels of arms (4, 8 or 16 shapes), the colours (primary, pastel, sunset or mono), how far the arms sway, how many whole turns they creep round per loop, the seed, the backdrop colour and whether the camera sways.
src/kinetic-mobile.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/kinetic-mobile.jscreateMobile({ levels?, palette?, sway?, spin?, seed? }) => { group, setProgress(progress), dispose() }PALETTES: { primary, pastel, sunset, mono }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 mobile hangs from a hook at y ≈ 9.5 on a thread to the root arm at y ≈ 6.7; the root arm is 3.4 wide and each level is 0.58 times the one above; the camera looks at y = 4.8.
Lighting: A warm key light with a shadow map, a shadow-catching floor and the studio environment.
Timing: setProgress(progress) sets every arm's turn and every shape's spin; frames render in any order.
npm install
npm run render -- kinetic-mobile/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:24ccb373de0646a7…
3D object3DSeamless loop16 seconds

3D object3DSeamless loop16 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