
Split-Flap Display
Text layer3D9 seconds
Your words as a glowing neon sign on a brick wall at night, flickering on like the real thing.
Your current settings go with it. Combine several clips and hand them over together from your sequence.
Presets
Letters, numbers, punctuation and ♥ ★ ⚡ → (type <3 for a heart).
Smaller, under line 1. Leave empty for one line.
Number of a letter, counting from the first, that flickers like a failing tube. 0 for none.
How much of the frame the sign fills.
Changes the flicker timing and the bricks.
The preview runs the same code your AI receives. These settings travel with the hand-off.
Type one or two lines and they are bent in glass tube like a real neon sign: hot, slightly overexposed tubes, a soft glow in the air and coloured light spilling onto the bricks around them. It switches on with a stutter, letter by letter, or writes itself on, or buzzes on a seamless loop. Choose the two tube colours, a border, the wall (red brick, painted brick, concrete, or black for blending), how much it flickers, and one dying letter if you like.
src/neon-sign.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/neon-sign.jscreateNeonSign({ renderer, width, height, lines?, frame?, frameColor?, wall?, animation?, flicker?, faulty?, tube?, glow?, size?, duration?, seed? }) => { render(time, renderTarget?), units, tubeWidth, capHeight, onAt, brightness(index, time), dispose() }neonGlyphs(text) => { width, letters: [{ char, x, width, strokes: [{ closed, points }] }] }WALLS: { brick, painted, concrete, black }three@0.185.1 (source) — Renderer, render targets and shaders for the glow.apw-runtime@1.0.0 (demo) — Demo harness.Coordinates: The sign is centred and sized to fit the frame; any aspect ratio works.
Lighting: Self-lit: the tubes light the wall themselves; scene lights do not affect it.
Timing: render(time) is a pure function of time; frames render in any order. onAt tells you when the sign is fully lit.
npm install
npm run render -- neon-sign/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:70b3f0e2e4553acd…
Text layer3D9 seconds

Full example2D6 seconds

Effect2D8 seconds

Background3DSeamless loop12 seconds

3D object3DSeamless loop12 seconds

3D object3DSeamless loop16 seconds

3D object3DSeamless loop15 seconds

3D object3DSeamless loop12 seconds