The timeline
Play, pause, scrub, set your frame range, and see every keyframe at a glance.
The timeline runs along the bottom of the window. Its top strip is the transport — the play controls and frame readouts — and below it sits the dopesheet, where your keyframes live. This is where time happens.
The transport
The transport bar holds the play controls on the left and a row of live readouts on the right.
From left to right, the playback buttons are:
Skip to start — jumps to the first frame of your range.
Step back — moves one frame earlier.
Play / Pause — starts and stops playback. The button shows a pause icon while running.
Step forward — moves one frame later.
Skip to end — jumps to the last frame of your range.
Next to them is the Frame field. Drag it to scrub through time, or click and type to jump to an exact frame. It stays clamped to your range.
You can also scrub by dragging directly on the dopesheet ruler — grab the playhead and slide it. Same result, more tactile.
Range and looping
The Range fields set the first and last frame of your composition — Range: 0 to 240, for example. Playback loops between these by default, so a 0-to-240 range plays as a clean 4-second cycle at 60 fps.
If the start and end are the same, the range is treated as open-ended (shown as ∞) and just keeps counting forward.
The range is the heartbeat of a looping piece — for a seamless loop, make sure your animation returns to its starting state on the last frame.
Playback modes
The Realtime toggle decides how DNA spends time when a frame is heavy to compute:
Realtime on — plays at the project's frames-per-second and drops frames if a cook can't keep up. The clock stays honest; the picture may stutter.
Realtime off — plays every frame in order, even if that means running slower than real time. Best for recording or stepping through complex work where you don't want to miss anything.
The right-hand side of the bar shows live timing: Time (seconds elapsed), Frames (total frames drawn), Δ (milliseconds per frame), and FPS. These are your performance gauges — if FPS dips well below your project rate, head to the The performance panel.
The dopesheet
Below the transport, the dopesheet shows your animated parameters as rows, with a dot for every keyframe placed in time. It's a bird's-eye view of the whole piece: where things move, where they hold, and how the timing lines up across parameters.
You can select keyframes here, drag them to retime, and box-select a group to move them together. For shaping the values between keyframes — easing, overshoot, bezier handles — flip on the Curves toggle to open the The curve editor.
Keyframes are created from a parameter's right-click menu or by recording live input — see Keyframing and Recording live input.
Working inside subgraphs
When you dive into a subgraph, a breadcrumb appears on the right of the transport showing your path, like Project > Particles > Spawn. Click any earlier segment to pop back up a level. A small (fps) tag next to it shows the frame rate of the level you're currently in, which can differ from the parent.
This matters because time can flow differently inside a subgraph — see Time & playback for how nested clocks work.
If your project uses a musical clock, the transport also shows a BPM field, a time signature, and a bar-and-beat readout. Those are covered in Clocks & tempo.