Nodes · Transform
Tracker
Transformv3coreConcat: Xform
Overview
One point, tracked from the playhead, baked as ordinary keyed animation you can edit like any curve.
How to
- Place the point on a feature with contrast in both axes.
- Track forward (● Track ▶) or back (◀ Track); step a frame at a time with ◀| and |▶ when it slips.
- Nudge the point on the frame that slipped and continue — the existing track is extended, not replaced.
Inputs
| Input | What it takes |
|---|---|
| in | the image this node works on |
Outputs
| Output | Type |
|---|---|
| out | Image |
Parameters
| Parameter | Type | Default | What it does |
|---|---|---|---|
| track_count | Int | 1 | How many rows the Tracks table has. + track adds one; rows past four are ad hoc knobs, like label. |
| track1 | Float2 | [960.0, 540.0] | Track 1: the tracked position, keyed per frame by tracking or by hand. |
| offset1 | Float2 | [0.0, 0.0] | Track 1: added to the tracked position - follow a proxy feature, report the obscured one. |
| enable1 | Bool | true | Track 1: contributes when on; key it per frame to drop out while the feature is hidden. |
| t1 | Bool | true | Track 1 contributes to the derived translation. |
| r1 | Bool | true | Track 1 contributes to the derived rotation (needs two). |
| s1 | Bool | true | Track 1 contributes to the derived scale (needs two). |
| err1 | Float | 0.0 | Track 1: per-frame match error (1 - confidence), keyed by tracking; the path colour and a curve of its own. |
| name1 | Text | track1 | Track 1: its label in the table and the viewer. |
| patch1 | Int | 0 | Track 1: pattern box half-size, 0 = the nodes patch_radius. Drag the boxes corner in the viewer. |
| search1 | Int | 0 | Track 1: search radius past the pattern, 0 = the nodes search_radius. Drag the outer boxes corner. |
| track2 | Float2 | [1160.0, 540.0] | Track 2: the tracked position, keyed per frame by tracking or by hand. |
| offset2 | Float2 | [0.0, 0.0] | Track 2: added to the tracked position - follow a proxy feature, report the obscured one. |
| enable2 | Bool | true | Track 2: contributes when on; key it per frame to drop out while the feature is hidden. |
| t2 | Bool | true | Track 2 contributes to the derived translation. |
| r2 | Bool | true | Track 2 contributes to the derived rotation (needs two). |
| s2 | Bool | true | Track 2 contributes to the derived scale (needs two). |
| err2 | Float | 0.0 | Track 2: per-frame match error (1 - confidence), keyed by tracking; the path colour and a curve of its own. |
| name2 | Text | track2 | Track 2: its label in the table and the viewer. |
| patch2 | Int | 0 | Track 2: pattern box half-size, 0 = the nodes patch_radius. Drag the boxes corner in the viewer. |
| search2 | Int | 0 | Track 2: search radius past the pattern, 0 = the nodes search_radius. Drag the outer boxes corner. |
| track3 | Float2 | [1160.0, 740.0] | Track 3: the tracked position, keyed per frame by tracking or by hand. |
| offset3 | Float2 | [0.0, 0.0] | Track 3: added to the tracked position - follow a proxy feature, report the obscured one. |
| enable3 | Bool | true | Track 3: contributes when on; key it per frame to drop out while the feature is hidden. |
| t3 | Bool | true | Track 3 contributes to the derived translation. |
| r3 | Bool | true | Track 3 contributes to the derived rotation (needs two). |
| s3 | Bool | true | Track 3 contributes to the derived scale (needs two). |
| err3 | Float | 0.0 | Track 3: per-frame match error (1 - confidence), keyed by tracking; the path colour and a curve of its own. |
| name3 | Text | track3 | Track 3: its label in the table and the viewer. |
| patch3 | Int | 0 | Track 3: pattern box half-size, 0 = the nodes patch_radius. Drag the boxes corner in the viewer. |
| search3 | Int | 0 | Track 3: search radius past the pattern, 0 = the nodes search_radius. Drag the outer boxes corner. |
| track4 | Float2 | [960.0, 740.0] | Track 4: the tracked position, keyed per frame by tracking or by hand. |
| offset4 | Float2 | [0.0, 0.0] | Track 4: added to the tracked position - follow a proxy feature, report the obscured one. |
| enable4 | Bool | true | Track 4: contributes when on; key it per frame to drop out while the feature is hidden. |
| t4 | Bool | true | Track 4 contributes to the derived translation. |
| r4 | Bool | true | Track 4 contributes to the derived rotation (needs two). |
| s4 | Bool | true | Track 4 contributes to the derived scale (needs two). |
| err4 | Float | 0.0 | Track 4: per-frame match error (1 - confidence), keyed by tracking; the path colour and a curve of its own. |
| name4 | Text | track4 | Track 4: its label in the table and the viewer. |
| patch4 | Int | 0 | Track 4: pattern box half-size, 0 = the nodes patch_radius. Drag the boxes corner in the viewer. |
| search4 | Int | 0 | Track 4: search radius past the pattern, 0 = the nodes search_radius. Drag the outer boxes corner. |
| transform | Choice | none | What the tracks drive: none, stabilize / match-move (1pt = translation from the first enabled track), remove / add jitter (the high-frequency part only). none is the default, as in Nuke: the Tracker shows the plate untouched, because tracking is its only job — what moves a thing with the track is the Transform (or CornerPin) you export from it. nonestabilizestabilize 1ptmatch-movematch-move 1ptremove jitteradd jitter |
| reference_frame | Int | 0 | The frame the tracks are measured against (0 = the first keyed frame). The derived transform is identity here. |
| smooth_t | Int | 0 | Frame window (+/-) that averages the derived translation. |
| smooth_r | Int | 0 | Frame window (+/-) that averages the derived rotation. |
| smooth_s | Int | 0 | Frame window (+/-) that averages the derived scale. |
| jitter_period | Int | 10 | Smoothing window that separates jitter from motion in the remove / add jitter modes. |
| translate | Float2 | [0.0, 0.0] | DERIVED: the centroid motion of the T-flagged tracks, in Transform conventions (y up). Export copies or links it. |
| rotate | Float | 0.0 | DERIVED: the least-squares rotation over the R-flagged tracks (two or more), counter-clockwise degrees. |
| scale | Float2 | [1.0, 1.0] | DERIVED: the least-squares uniform scale over the S-flagged tracks (two or more). |
| center | Float2 | [0.0, 0.0] | DERIVED: the pivot - the contributing tracks centroid at the reference frame. |
| center_origin | Float2 | [0.0, 0.0] | Zero: the derived center is absolute, so an exported Transform reads it the same way. |
| patch_radius | Int | 12 | Default pattern box half-size for tracks whose own patch is 0. |
| search_radius | Int | 64 | Default search cap for tracks whose own search is 0 - the tracker auto-sizes its search within it. |
| grab | Choice | every frame | The pattern grab: every frame (default) matches frame-to-frame - the stepper the tracker is trusted for; first frame keeps the seed template (ZNCC); every n frames re-grabs on a cadence; if error above re-grabs instead of stopping when the error passes max_error. every framefirst frameevery n framesif error above |
| regrab_n | Int | 5 | The n for "every n frames" grabs. |
| max_error | Float | 0.3 | A match worse than this (0..1, 1 - confidence) stops the track at that frame instead of wandering on. |
| predict_track | Bool | true | Place each frames search at the position last frames velocity predicts (fast pans) - off searches around the last position. |
| track_channels | Choice | luma | Which channels the matcher sees: luma / rgb (the plate as is), or one channel copied into all three. lumargbredgreenblue |
| pretrack_filter | Choice | none | Filter on the analysis window before matching: none, adjust contrast (stretch to full range), median (3x3, against grain). noneadjust contrastmedian |
| adjust_luminance | Bool | true | Normalise brightness between frames before matching (recorded; on in the matcher today). |
| warp | Choice | translate | How the pattern is allowed to deform between frames (recorded; translation today, the warped-template matcher is the road to affine). translatetranslate+rotatetranslate+scaletranslate+rotate+scaleaffine |
| show_error | Bool | true | Colour each tracks path green / amber / red by its per-frame error in the viewer. |
| auto_retrack | Bool | false | On: nudging a tracked point (or Set keyframe) re-tracks that track between its keyframes on the spot - fix one frame, the rest follows. |
| filter | Choice | bilinear | The resampling filter. Cubic for general work; impulse to keep hard pixels. impulsebilinearcubicmitchelllanczos |
| disabled | Bool | false | Bypass: the node passes its first input through untouched (D in the graph). The knobs keep their values for when it comes back. |
| label | Text | A note shown under the node in the graph — what this node is FOR. Never affects the render or the cache. | |
| hide_input | Bool | false | Draw the node without its input wire — a tidy graph for a node whose source is obvious (a Dot, a viewer tap). |
Known edges
The search window is auto-tuned from predicted velocity within search_radius as a cap, so a repetitive texture is less likely to jump to a lookalike.
Since
27 Aug 2026 — backward and single-frame tracking
See also
- Camera Tracker (HDCT) — How to get a solved 3D camera out of a plate.