Generators
Generators
The built-in asset types and how to choose between them.
For AI / LLMs: View Markdown
Every asset names a generator. Options come from settings.defaults["<id>"] merged beneath
the asset's own options (the asset wins). Each generator validates its own option shape.
| Generator | Output | Needs url? | Key options |
|---|---|---|---|
scroll-reel | mp4 (+ gif/webp/poster) | Yes | width/height/fps/durationMs, choreography, autoSections, loop, colorScheme/viewports, aspect, outputs |
interaction | mp4 | Yes | actions[], cursor, focus |
screenshots | png / jpeg | Yes | viewports[], fullPage, format, elements[], deviceScaleFactor |
wall | mp4 | No | columns[] (tiles by name or { src } + per-column motion), pulses, loops, pan, gap/tileAspect, preview |
specimen | mp4 | No | font, template, pulses, colors, seed |
icons | mp4 / png | No | icons/dir, template, steps (order/stagger sweeps), layout, base/accent, output.format |
palette | png | No | colors[], layout, corner fields |
palette-reel | mp4 | No | colors[], details, timing |
URL-based vs local generators
- URL-based (
scroll-reel,interaction,screenshots) capture a live page, so the asset needs aurl(and a running site or a managed server). With a managed server, an omittedurldefaults to the server root. - Local (
wall,specimen,icons,palette,palette-reel) render from a font file, a colour list, an icon set, or other assets — nourlrequired. Awallcomposites the assets its columns name (deriving its dependencies from them) plus local files via{ src }tiles;iconsrenders a grid of local icon files.
Video fidelity
The video generators capture frame-stepped by default: a virtual clock is driven, each
frame is screenshotted, and frames are piped to ffmpeg — so output is frame-accurate,
supersampled by deviceScaleFactor, parallelised across workers, and byte-identical
run-to-run. The one deliberate exception is the
interaction generator, which always records realtime —
scripted interactions, time-based hero animations, and autoplay video are inherently live.
(wall also offers capture: "realtime" as a fast iteration mode.)