
Fibonacci Spiral Data
3D object3DSeamless loop16 seconds
A row of rainbow bars sorts itself as a dance, every swap a hop, then un-sorts again. Loops perfectly.
In Text & data
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 row of rainbow bars that sorts itself as a dance. A sorting algorithm (insertion, bubble, selection or quick sort) runs on a shuffled row; every swap is two bars hopping past each other in an arc, one over and one under. When the row is in order a wave of lift runs along it, then the same dance is played backwards until the row is shuffled again. Choose the number of bars, the algorithm, where the rainbow starts, how high the bars hop, the seed that shuffles the row, the backdrop colour and whether the camera sways.
src/sorting-ballet.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/sorting-ballet.jscreateSortingBallet({ bars?, algorithm?, hue?, hop?, seed? }) => { group, swaps, setProgress(progress), dispose() }sortingSwaps(values, algorithm?) => [slotA, slotB][]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 bars stand on y = 0, about 15 wide and up to 4.8 tall; swapping bars hop in an arc and slide ±0.9 in depth to pass each other.
Lighting: A warm key light with a shadow map, a floor and the studio environment.
Timing: setProgress(progress) replays the swaps up to the current moment (at most a few hundred); frames render in any order.
npm install
npm run render -- sorting-ballet/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:5668a5f8b9783a9f…
3D object3DSeamless loop16 seconds

Full example2D6 seconds

Text layer2D5 seconds

Text layer2DSeamless loop6 seconds

Text layer2DSeamless loop10 seconds

Text layer3D9 seconds

Text layer2D5 seconds

Text layer2DSeamless loop6 seconds