
Ferrofluid
3D object3DSeamless loop16 seconds
A glass of oil on water: glossy beads rise, flatten into the oil and send ripples across the boundary while water beads sink. Loops perfectly.
In Light, glass & shine, Liquids
Next: FerrofluidSurprise 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.
A tall glass holding a layer of oil on top of water, forever separating. Glossy beads of oil are born at the bottom, swell, race up through the water and flatten into the oil layer, each merge sending a ring of ripples across the boundary between the liquids, while beads of coloured water sink through the oil and merge into the water below. Choose the number of beads, the colours (amber, rose or neon), how many trips each bead makes per loop, the strength of the ripples, the seed, the backdrop colour and whether the camera sways.
src/emulsion-separate.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/emulsion-separate.jscreateEmulsion({ beads?, palette?, cycles?, ripples?, seed? }) => { group, setProgress(progress), dispose() }PALETTES: { amber, rose, neon }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 glass is centred on the y axis with radius 1.7 and height 6.2; the boundary between the liquids sits at y = 2.6; the camera looks at the middle of the glass.
Lighting: A warm key light with a shadow map and the studio environment.
Timing: setProgress(progress) places every bead and rewrites the boundary; frames render in any order.
npm install
npm run render -- emulsion-separate/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:d9b624d2db2f52eb…
3D object3DSeamless loop16 seconds

3D object3DSeamless loop8 seconds

3D object3DSeamless loop12 seconds

3D object3DSeamless loop15 seconds

3D object3DSeamless loop14 seconds

3D object3DSeamless loop12 seconds

3D object3DSeamless loop16 seconds

3D object3DSeamless loop16 seconds