Time Remap
Remap time to freeze a frame, play in slow motion, or run in reverse.
What it does
Time Remap changes the relationship between the timeline and the frame that plays back. An animated image, Volume, or field sequence wired into Source is re-timed: held on one frame, stretched or compressed, run backwards, or looped and bounced once it reaches the end.
With nothing connected to Source, the outputs are a remapped time and frame number. Wire either into another node's frame control, such as a Video node's custom frame, to drive that node's timing instead of retiming an image.
When to use it
Freeze frame: hold one moment while the rest of the scene keeps playing.
Slow or fast motion: Speed below or above 1.
Reverse playback.
A clip that loops or ping-pongs past its end rather than holding or cutting.
Driving another node's frame or time input from a custom remap curve.
| Parameter | Type | Default | What it does |
|---|---|---|---|
source | Color Field or Field or Volume Sequence or Field Sequence | — | Capture, VolumeArray or FieldArray (optional - if not connected, use time output to drive Video) |
time_curve | Curve | 2D Curve | Shape of the remapped time — edit it here, or wire a Curve to share one. X = wrapped input time (0-1), Y = output time. A straight line is no shaping. |
time_mode | String | "Timeline" | Timeline: use current timeline position. Absolute: use time parameter (0-1). Frame: use frame parameter. One of: Timeline, Absolute, Frame. |
time | Number | 0 | Time position (0 = first frame, 1 = last frame) |
frame | Number | 0 | Target frame number |
speed | Number | 1 | Playback speed (negative for reverse) |
reverse | Boolean | false | Reverse time direction |
wrap_mode | String | "Loop" | Clamp: hold at boundaries. Loop: repeat. Ping Pong: bounce back and forth. One of: Clamp, Loop, Ping Pong. |
interpolation | String | "Linear" | Nearest = snap to closest frame (hard cuts), Linear = blend between frames (smooth). One of: Nearest, Linear. |
frame_count | Number | 100 | Total frame count (used for time-to-frame conversion when no source connected) |
posterize_step | Number | 0 | Hold every N frames (frame-rate reduce). 0 = off (full sub-frame). |
temporal_mode | String | "Off" | Wide Time (mean) / Echo (add, decay, max, min) over a window of remapped frames. Off = single frame. One of: Off, Wide Time, Echo Add, Echo Decay, Echo Max, Echo Min. |
frame_stack_span | Number | 8 | Frame window width to reduce (in frames). |
frame_stack_count | Number | 8 | How many frames to sample across the window. |
frame_stack_offset | String | "Back" | Back: trail into past frames. Center: symmetric. Forward: into future frames. One of: Back, Center, Forward. |
frame_stack_decay | Number | 0.700 | Echo Decay falloff: each older frame is weighted this much less. |
strength | Number | 1 | Effect strength / wet-dry (0 = no effect, 1 = full). Editable, wirable, keyframable. |
Gotchas
Reverse combined with the Clamp wrap mode freezes on the first frame. Clamp holds any out-of-range time at its nearest boundary, and reversed time immediately runs negative. Use Loop or Ping Pong when Reverse is on.
Frame Count is not read from the connected source's actual length. It is a value you set. If it does not match the source's real frame count, the loop point, the ping-pong bounce, and the Time and Frame parameters (fractions or indices of Frame Count) land in the wrong place.
Time Remap replaces its source in the layer stack rather than sitting alongside it, so only the retimed result is visible, not the original playing underneath.
Interpolation set to Nearest gives hard, stepped cuts between frames. Linear blends between the two nearest frames for smooth slow motion.
Worked example
Add Time Remap and wire your animated image or Volume into Source.
Set Time Mode to Absolute and leave Time at 0 for a simple freeze frame, or drive Time from another parameter for a scrubbed freeze.
For slow motion, set Time Mode to Timeline and lower Speed below 1; for reverse playback, enable Reverse and set Wrap Mode to Loop or Ping Pong.
If nothing is connected to Source, leave it empty and take the Time or Frame output into another node's frame control to drive its playback instead.