There's no voiceover and no text until the logo: a glowing orb is the thread through 22 worlds, from dark and digital to bright and dreamy, ending on the brand. Example: examples/prismor/ is an 83 s Prismor title film.
Workflow
- Start:
python3 scripts/main.py init my-film. - Brand: put the real logo in
assets/logo.pngand setnameinbrief.json(the wordmark beside it). Never generate the logo. - Assets: restyle the prompts in
assets.jsonto your palette, then runpython3 scripts/main.py assets.assets <name>regenerates one.- The default model is
gpt-image-2.5-sunburst. UseFRAMESMITH_IMAGE_MODEL=gpt-image-2.5-flarefor faster drafts. - Transparent assets use native alpha. If a model refuses alpha, the engine falls back to a chroma key and a cutout automatically. Use
"key": "#FF00FF"for green subjects.
- The default model is
- Review: run
sheet(30 frames across the film) andstill 3 22 48. - Render: run
render. The score (pad chords, shimmer notes on cuts, whooshes, a pulse in the bright half and a logo hit) is synthesised and muxed. Pass your own track by muxing afterwards if you have a licensed one.
Worlds
scenes in the brief overrides any duration (0 drops a world). In order:
data·chamber·wire·roomflight·horizon·vortex·neonicons·geometry·sroom·isoflash·pillars·ribbons·frostframes·pworld·portal·landspace·logo
The dark half uses indigo, signal red, green and cyan accents. From flash onwards the film turns pastel. Each world is one function in scripts/main.py.
| asset | used in | framing |
|---|---|---|
orb |
everywhere | small luminous glass orb, transparent |
sphere_* (pink, cyan, lime, violet, peach, frost) |
burst, sphere room, pillars, ribbons, frost | single glossy sphere, centred, transparent |
planet_* |
space | single planet, transparent |
clouds, ribbon |
landscape, ribbons, frames | separate shapes, transparent |
iso_house, iso_stairs, iso_shield |
isometric panels | isometric glass object, transparent; swap the shield for your product's symbol |
bubbles_sky, pastel_world, landscape, space |
horizon, flash, pastel world, landscape, space | wide 1536×1024 backdrops |
Notes
- Scene canvases are RGB on purpose: Pillow blends translucent draws only on RGB images, and RGBA sprites paste with themselves as the mask.
- Dense particle fields use a seeded
numpytable, not theh()hash, to avoid streaks. - About 2000 frames: budget roughly 1–1.5 h on 2 throttled cores with
FRAMESMITH_PRESET=veryfast.