
Torus Wave Loop
Effect2DSeamless loop8 seconds
A thick rope of glossy chocolate coils onto a white plate, folding into a spiralling heap. Loops perfectly.
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.
Thick, glossy chocolate falling from a spout in one heavy rope onto a white plate, where it coils over and over as viscous liquids do, laying down a heap with a rotating spiral of folds and a scalloped skirt at its foot, shining in the studio light. Choose the chocolate (dark, milk, white or ruby), how many coils the rope makes in a loop, how tall the heap grows, how deep the folds are, the backdrop and whether the camera drifts.
src/chocolate-pour.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/chocolate-pour.jscreateChocolatePour({ kind?, coils?, heap?, ridges? }) => { group, setProgress(progress), dispose() }KINDS: { dark, milk, white, ruby }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 plate is centred on the origin on y = 0 (radius 2.65); the spout is at y = 6.55; the heap peaks at about 0.75.
Lighting: A warm key light with a shadow map and the studio environment on the clear-coated chocolate.
Timing: setProgress(progress) rewrites the heap's heights and the rope's curve; frames render in any order.
npm install
npm run render -- chocolate-pour/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:bba3b37a7410a39f…
Effect2DSeamless loop8 seconds

3D object3DSeamless loop8 seconds

3D object3DSeamless loop15 seconds

3D object3DSeamless loop14 seconds

3D object3DSeamless loop16 seconds

3D object3DSeamless loop16 seconds

3D object3DSeamless loop16 seconds

3D object3DSeamless loop16 seconds