Playback
The examples below show a single tile in isolation — Mode and the delays shape one cycle's timing, and a full grid mid-stagger would only make that harder to see. In the app, every tile in the grid follows this same cycle, just offset in time by Time shift.
Mode
What it does: decides what happens at the end of the sequence, once a tile has fully played through.
- Loop — plays forward, then jumps straight back to the first frame and starts again.
- Ping-pong — plays forward, then plays back in reverse, then forward again — so it bounces rather than snapping.
| Loop | Ping-pong |
|---|---|
![]() |
![]() |
Ping-pong is a good fit when a sequence looks a little jarring snapping from "fully in" back to "fully empty" — bouncing back out is often the more natural-looking choice, at the cost of taking twice as long to complete both directions.
Start delay & End delay
What they do: add a pause — a hold — on the first frame (Start delay) or last frame (End delay) before playback continues. In Ping-pong mode, these hold the two opposite ends of the bounce (the "empty" trough and the "full" peak) independently.
| No delay | Start delay only | Start + End delay |
|---|---|---|
![]() |
![]() |
![]() |
Both delays lengthen the shared loop cycle rather than sitting outside it — which matters once Time shift is in play. Every tile is reading its position from the same overall cycle, so if you add a hold, every phase-shifted tile still stays in sync relative to each other; the whole grid just gets a shared breathing moment rather than any one tile pausing on its own.
⚠️ Loop/Ping-pong and these delays are honored by GIF, APNG, and MP4 exports (and both sprite sheet formats), but a PNG sequence never has them baked in — a folder of numbered images has no concept of timing at all, so it's always a plain forward loop. See Exporting.




