Skip to content

Time Shift

Re-evaluates upstream content at a frame offset from the current playhead.

Category: Time Menu path: Time > Time Shift

Ports

PortTypeDirectionDescription
inimageRgba16finputUpstream content to time-shift.
outimageRgba16foutputThe same content, sampled at comp_frame + offset instead of the current frame.

Parameters

ParamTypeDefaultDescription
offsetscalar0Frames 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

PortTypeOverrides
offset_inscalaroffset

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 Loop to 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).
  • 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.

Caddis — professional motion design.