
Pendulum Wave
3D object3DSeamless loop12 seconds
Polished balls on a walnut base: one swings in, one swings out, click after click. Loops perfectly.
In Science & maths, Machines & clockwork, Light, glass & shine, Toys, games & parties
Next: Pendulum WaveSurprise me
Your current settings go with it. Combine several clips and hand them over together from your sequence.
Presets
Whole cycles of the swing in each loop.
Changes the wood grain.
The preview runs the same code your AI receives. These settings travel with the hand-off.
The classic executive toy on a glossy black table in a dark studio: a row of polished balls hung on V-shaped strings from two chrome rails, on a bevelled walnut base with brass feet. The end ball swings up and strikes the row, the far ball takes the motion and swings out, falls back and strikes again, the middle balls standing still, and so on. The balls mirror the studio and are mirrored in the table. Choose the finish of the balls (chrome, gold, black chrome or copper), the number of balls, whether one or two are lifted, how wide the swing is, how many clicks per loop, and the wood of the base.
src/newtons-cradle.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/newtons-cradle.jscreateNewtonsCradle({ balls?, lift?, finish?, base?, amplitude?, seed?, anisotropy? }) => { group, height, count, update(time, loopSeconds, { cycles? }), dispose() }cradleSwing(u) => { left, right }FINISHES: { chrome, gold, black, copper }BASES: { walnut, maple, ebony }three@0.185.1 (source) — Renderer, geometry and physical metals.chrome-material@1.1.0 (demo) — Studio environment light and backdrop.apw-runtime@1.0.0 (demo) — Demo harness.Coordinates: 1 unit = 10 cm. The balls have a radius of 0.5 and touch at rest; the rails stand 6.75 above the base; strings run from rails 1.9 apart to the top of each ball.
Lighting: Physical metals: needs scene.environment for the balls to mirror the room; a shadow-casting key light draws the strings' and balls' shadows on the base.
Timing: update(time, loopSeconds, { cycles }) is a pure function of time; frames render in any order.
npm install
npm run render -- newtons-cradle/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:3b445b06dc672622…
3D object3DSeamless loop12 seconds

3D object3DSeamless loop12 seconds

Full example3DReal physics8 seconds

3D object3DSeamless loop16 seconds

3D object3DSeamless loop16 seconds

3D object3DSeamless loop16 seconds

3D object3DSeamless loop16 seconds

3D object3DSeamless loop16 seconds