
Ripple Pond
Background2DSeamless loop12 seconds
A dry garden at low sun: a wooden rake draws fine lines in the sand round mossy stones, then a board smooths it clean. Loops perfectly.
Next: Ripple PondSurprise me
Your current settings go with it. Combine several clips and hand them over together from your sequence.
Presets
Changes the shape of the stones, the moss and the leaves.
The preview runs the same code your AI receives. These settings travel with the hand-off.
A Japanese dry garden in the low light of late afternoon: pale sand, a few weathered stones with moss at their feet, rings already raked round each stone, and a wooden rake that enters from the left and is pulled along the garden in long passes, one band after another, each leaving a row of fine grooves that catch the raking light. When it has finished, a smoothing board is drawn across and the sand is clean again for the next time round. Maple leaves drift through the frame, the sun shifts a little and the camera eases in and out. Choose the stones (a trio, a pair or a cluster of five), the pattern (straight lines or flowing waves), the colour of the sand, the sun and the exposure.
src/zen-garden.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/zen-garden.jscreateZenGarden({ stones?, pattern?, sand?, seed? }) => { group, uniforms, designLoop, update(time, loopSeconds), dispose() }STONES: { trio, pair, cluster }SANDS: { pale, white, warm, grey }three@0.185.1 (source) — Renderer, geometry and the sand's groove shader.chrome-material@1.1.0 (demo) — Studio environment light.apw-runtime@1.0.0 (demo) — Demo harness.Coordinates: 1 unit = 10 cm. The raked part is 18 wide (x from -9 to 9) and 13.5 deep (z from -5.5 to 8) and the lines run along z; the wall stands behind at z = 9.
Lighting: Physical materials: a shadow-casting low sun for the grooves (the sand's normals carry them) and the stones' shadows; a hemisphere fill.
Timing: update(time, loopSeconds) is a pure function of time; frames render in any order. The passes and the board are scaled to the loop length (designed for 20 s).
npm install
npm run render -- zen-garden/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:36b73d4e088b1e52…
Background2DSeamless loop12 seconds

3D object3DSeamless loop12 seconds

3D object3DSeamless loop12 seconds

Background3DSeamless loop12 seconds

Background3DSeamless loop12 seconds

Background3DSeamless loop12 seconds

Background3DSeamless loop12 seconds

Background3DSeamless loop10 seconds