
Particle Galaxy
Background3DSeamless loop14 seconds
Doorways inside doorways spiral away into a glowing depth, falling in at a steady rate. Loops perfectly.
In Science & maths, Light, glass & shine, Patterns & illusions
Your current settings go with it. Combine several clips and hand them over together from your sequence.
Presets
Turn per level, in radians; negative spirals the other way.
The preview runs the same code your AI receives. These settings travel with the hand-off.
A doorway with a smaller copy of itself in its opening, and another in that, receding into an endless glowing depth. The whole picture falls in towards the middle at a steady rate, one copy of the doorway passing into the next every loop, and each level turns a little more than the one before, so the corridor spirals as it goes. Doorways can be arches, rectangles or circles. Choose the shape, the colours (ember, ocean, violet or mono), how much smaller each doorway is than the last, the twist per level, the frame thickness and the brightness.
src/recursive-portal.js is the ingredient your AI reuses. demo.js is only the example scene around it, and uses the demo harness only for the demo.
src/recursive-portal.jscreateRecursivePortal({ shape?, palette?, ratio?, twist?, frame?, brightness? }) => { scene, camera, setSize(width, height), update(time, loopSeconds), dispose() }createBloomPass(renderer, { width, height, glow?, exposure?, grain? }) => { render(scene, camera, output?), dispose() }PALETTES: { ember, ocean, violet, mono }three@0.185.1 (source) — Renderer and a full-screen shader material.apw-runtime@1.0.0 (demo) — Demo harness.Coordinates: Screen-centred, ±1 vertically; every doorway is centred on the origin; level n has scale ratio^n and turns n × twist.
Lighting: Self-lit: walls shade towards the frame, frames are bevelled, and a glow sits at the far end; the bloom adds to it.
Timing: update(time, loopSeconds) sets the loop phase; frames render in any order.
npm install
npm run render -- recursive-portal/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:3bc799e0ae1c6d24…
Background3DSeamless loop14 seconds

Background3DSeamless loop12 seconds

Background3DSeamless loop12 seconds

Effect2DSeamless loop8 seconds

3D object3DSeamless loop16 seconds

3D object3DSeamless loop16 seconds

Background3DSeamless loop12 seconds

Background3DSeamless loop10 seconds