The layer pipeline
What happens to a layer between the moment you press play and the moment it lands on the canvas.
Every frame, every visible layer goes through the same sequence. Nothing skips a step and nothing runs out of order. Once you know the sequence, a surprising number of "why is it doing that" questions answer themselves — because almost all of them are really questions about ordering.
Here is the whole thing.
- 1Keyframes resolve
The playhead time is used to interpolate every keyframed property. This produces the layer's pose for this frame — position, scale, rotation, opacity, and any effect or modifier parameter you keyframed.
- 2Motion path applies
If the layer is bound to a Magical Curve, its position is replaced by a point on that curve. This happens after keyframes, so a keyframed position is overridden — what you keyframe on a path-bound layer is its progress along the path, not its X and Y.
- 3Drivers run
Oscillate, Spin, Wiggle, Jiggle and the rest modulate the pose. Because they run after the path, a path-bound layer can also bob and sway on top of its travel. Instanced layers skip this step here — their drivers run per clone at step 6 instead.
- 4Morph style blends
If a Morph is carrying style, the fill, stroke and effect stack blend toward the target here — before anything is drawn, so the blended effects are the ones that get applied.
- 5Parenting applies
The layer inherits its parent chain's animated transform. Parents resolve through the same pipeline first, so a parent that is itself wiggling passes that motion down.
- 6Path operators run
Offset Path, Pucker / Bloat, Round Corners, Zig-Zag, Wiggle Path and Bend rewrite the outline, in the order they appear in your modifier list. Each one takes the previous one's output.
- 7Modifiers run
Mask, Mirror, Repeater, Instancer, Tile, Corner Pin, Melt, Boolean and Morph. This is where copies get made and geometry gets clipped or combined.
- 8Effects render
The effects stack runs on the finished result: shadows, glows, blurs, colour adjustments, grain, shaders. By now the layer is a picture, and effects work on pictures.
The two facts that explain everything else#
Modifiers run before effects. Always, regardless of how you arrange the panels. So a Drop Shadow on a layer with a Repeater shadows the whole finished array, not each copy — by the time the shadow runs, the array is one picture.
Within the modifier list, order is yours. Path operators and modifiers execute top to bottom exactly as listed. Offset Path then Round Corners gives you a fattened shape with soft corners. Round Corners then Offset Path gives you a soft shape that has been fattened, and the corners come out different. Drag them to reorder.
Adding a glow and expecting it to be clipped by a mask that sits below it in the list. The mask runs at step 7 and the glow at step 8, so the glow spreads past the mask edge. Put the glow on the layer and the mask on a parent, or accept the spread.
Why drivers run before modifiers#
A driver changes the layer's pose. A modifier reads that pose to decide where to put copies. If the order were reversed, the copies would be placed from the static pose and then the whole array would be moved as one block — which is a different, much less useful behaviour.
This is also why an instanced layer skips the normal driver step. The Instancer needs to run drivers per clone, with each clone's own index and position, so running them once beforehand would double the motion. Add a driver to an instanced layer and you will notice the original does not move — only the clones do.
Where time actually comes from#
One clock: the timeline playhead. Every driver, every simulation, every shader is a function of that value and nothing else. Nothing reads the wall clock.
This matters more than it sounds. It is why scrubbing shows you the true frame rather than an approximation, why the export matches the preview, and why a render that takes four minutes for four seconds of video produces exactly what you saw. A single node reading performance.now() anywhere in the chain would break all three.
Melt in Liquid mode and the fluid simulation accumulate state across frames rather than being pure functions of time. They are still deterministic — same input, same output — but jumping backwards means re-running from the start, so scrubbing them is not instant.