
Clockwork Butterfly
3D object3DSeamless loop12 seconds
A glass snow globe on a wooden pedestal: shaken once, the snow swirls and settles round a tiny winter scene. Loops perfectly.
Your current settings go with it. Combine several clips and hand them over together from your sequence.
Presets
The words engraved on the brass plaque.
Changes the flakes, the wood grain and the lights behind.
The preview runs the same code your AI receives. These settings travel with the hand-off.
A snow globe on a turned wooden pedestal, in a dark, cosy room whose lights show upside down in the glass. Inside, a tiny winter scene under a sphere of liquid glass: a log cabin with glowing windows, a decorated Christmas tree with presents, or a snowman by a lamp post. The globe is picked up and shaken once: the flakes lift, swirl and drift back down onto the snow, and by the end of the loop it is at rest again. Or leave it still and let the snow fall gently for ever. A brass plaque on the front carries your own words. Choose the scene, the wood, the colour of the liquid, the amount of snow and how hard it is shaken, and the room's lights: golden, Christmas or cool.
src/snow-globe.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/snow-globe.jscreateSnowGlobe({ scene?, base?, plaque?, snow?, tint?, seed?, anisotropy? }) => { group, sphere, height, lift(progress), update(time, loopSeconds, { mode?, shake? }), dispose() }createBokehBackdrop(theme?, seed?) => { mesh, dispose() }BASES: { walnut, mahogany, ebony }SCENES: ['cabin', 'tree', 'snowman']three@0.185.1 (source) — Renderer, geometry and physical glass (transmission).chrome-material@1.1.0 (demo) — Studio environment light and the contact shadow.apw-runtime@1.0.0 (demo) — Demo harness.Coordinates: 1 unit = 10 cm. The globe's sphere has a radius of 2.05 and is centred 2.73 above the table; the pedestal is 4 across.
Lighting: Physical glass and brass: needs scene.environment. The tiny scene carries its own warm lights. The glass refracts opaque meshes only, so a backdrop (createBokehBackdrop) must be opaque to show through it.
Timing: update(time, loopSeconds) is a pure function of time; frames render in any order. lift(progress) gives the shake's lift for a contact shadow.
npm install
npm run render -- snow-globe/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:5519ab0fb96cabe4…
3D object3DSeamless loop12 seconds

3D object3DSeamless loop16 seconds

3D object3DSeamless loop12 seconds

3D object3DSeamless loop15 seconds

3D object3DSeamless loop12 seconds

3D object3DSeamless loop16 seconds

3D object3DSeamless loop14 seconds

3D object3DSeamless loop16 seconds