Getting started
Export
The default export path encodes in your browser from the same scene clock the preview uses. Formats and maximum resolution depend on the codecs and memory available on that device.
Formats
| Format | Encoder | Notes |
|---|---|---|
| MP4 | WebCodecs, H.264 High 5.1 | Hardware encoder first. The default for anything going into another editor. |
| WebM | WebCodecs, VP9 profile 0 | Often smaller at similar quality; browser encoding support and editor compatibility vary. |
| GIF | Per-frame 256-colour palette, Floyd–Steinberg dithering | A palette per frame, so gradients survive better than a GIF usually does. |
Resolutions
720p, 1080p, 2K, 4K, or the exact pixel size of a custom canvas. The presets are defined by the shortest edge, so a vertical 1080p is 1080×1920, not 1920×1080. Both 3D sections export through the same dialog, because the 2D and 3D renderers implement one capture contract. A listed size is an option, not a guarantee that every phone can encode it.
Why the loop does not pop
Every template quantizes its speed to a whole number of motion cycles per clip, so the last frame lands exactly where the first one starts. Conveyor families go further and match their period to the card count, so each image returns to its own slot. A few presets are one-shot by design — a drop-and-bounce has nowhere to loop back to — and those skip the rule rather than fake it.
This is also why some presets change the clip length when you pick them: their cadence was measured in seconds per card, and at another duration the motion is simply a different motion.
The server route is off by default
There is an optional ffmpeg route for deployments that want it. It ships disabled, and it should stay that way on anything reachable from the internet until it is behind authentication and a queue — it has no auth, no rate limit and no cap on concurrent processes of its own. The browser path needs none of it.