Time Shift
Re-evaluates upstream content at a frame offset from the current playhead.
Category: Time Menu path: Time > Time Shift
Ports
| Port | Type | Direction | Description |
|---|---|---|---|
in | imageRgba16f | input | Upstream content to time-shift. |
out | imageRgba16f | output | The same content, sampled at comp_frame + offset instead of the current frame. |
Parameters
| Param | Type | Default | Description |
|---|---|---|---|
offset | scalar | 0 | Frames to shift. Positive = future content shows earlier (rate-up); negative = past content lingers (rate-down / delay). Fractional values are allowed but only meaningful when upstream produces frame-interpolated content. |
Expose Channels
| Port | Type | Overrides |
|---|---|---|
offset_in | scalar | offset |
How It Works
When the engine evaluates a TimeShift node, it recursively re-evaluates the entire upstream subgraph with comp_frame replaced by comp_frame + offset. Reuses the same multi-time-evaluation pattern motion blur uses.
For static upstream chains (no animations, no Time node, no simulations), this is free — the cache hits because cache keys don't depend on the modified frame. For animated upstream (Time-driven, video, simulations, keyframed params), every TimeShift eval re-runs the chain at the modified time.
Drop a FileCache between an animated source and TimeShift to make this fast. The FileCache reads frames by their integer index from disk; re-eval at any modified frame just reads a different file. Without the FileCache, the editor surfaces a "SLOW" chip on the TimeShift node.
Usage Examples
Basic — delay an animated layer
Animated content (e.g. a moving shape) → TimeShift(offset=-15) → Output. Whatever's happening at frame N+15 now plays at frame N. Useful for staggering identical animations in a row.
Animated rate
Time → Math(snap to step?) → TimeShift.offset_in. The offset becomes a function of time itself — produces ramp-up / ramp-down speed effects.
Camera shake delay
Animated content → TimeShift(offset=-2) → put on a layer above the original. Produces a subtle two-frame "ghost" copy that lags the main animation.
Tips
- Offset is in comp frames, not seconds. Multiply by frame rate if you're thinking in time.
- Pair with
Loopto time-shift looped content for staggered repeats. - Negative offsets reach into the past — generally fast, since past frames are likely already evaluated for playback.
- Positive offsets reach into the future — works, but may pre-evaluate frames that haven't been displayed yet (slower for stateful sims because they need to simulate ahead).
Related Nodes
- Freeze Frame — pin upstream to a single frame (the constant case of TimeShift).
- Posterize Time — snap upstream time to discrete steps.
- Loop — modulo-cycle upstream time.
- Echo — sample at multiple offsets and blend.
- FileCache — bake upstream to disk for fast time-warp reads.