Skip to content

Nodes · Transform

CameraTracker

Transformv1core

Overview

Footage in, a solved camera out. The solve is an explicit action — the kernel passes the image through untouched — and its result is baked into the node's knobs as ordinary, undoable animation.

How to

  1. Wire the plate.
  2. Press ▶ Solve and watch the phase/percentage/ETA; Cancel lands at the next frame boundary.
  3. Check the track-curve diagnostics for the worst offenders before trusting the camera.

Inputs

InputWhat it takes
inthe image this node works on

Outputs

OutputType
outImage

Parameters

ParameterTypeDefaultWhat it does
featuresInt300How many features to track per frame. More is a denser cloud and a slower solve; 300 is a good plate, 600 a textured one.
min_separationFloat12.0Minimum distance between two features in pixels, so the tracker spreads over the frame instead of clustering on one texture.
patch_radiusInt12Half-size in pixels of the pattern the tracker matches. Bigger is steadier, smaller follows fine detail.
levelsInt4Pyramid depth of the motion solve. Each level doubles the motion that can be found; more than the frame has is noise.
min_lengthInt8A track shorter than this many frames is dropped before the solve — short tracks are usually a glint or an edge that slid.
fb_maxFloat0.3Forward–backward check: a feature tracked ahead then back must land within this many pixels of where it started, or it is dropped. Lower is stricter.
motionChoiceautoWhat the camera does: auto decides from the data, free is a full 6-DoF move, rotation a nodal pan/tilt (no parallax), planar a move over a flat scene. autofreerotationplanar
focal_modeChoiceunknownunknown solves the focal length from the parallax; known takes focal_guess_px as fixed — set it when the lens is on the slate. unknownknown
focal_guess_pxFloat0.0The focal length in pixels to start from (or to trust, when focal_mode is known). 0 guesses 1.2 × the plate width.
refine_lensBooltrueSolve the lens distortion (k1, k2) with the camera. Off keeps the lens ideal — right for a plate that was undistorted upstream.
detect_moversBooltrueBlacksmith auto-holdout: find everything moving independently of the camera (actors, cars) and keep its features out of the solve. Unconfirmed mattes must WIN an A/B solve or they are dropped.
matte_acceptTextAccepted suggestion ids (JSON). A ◇ suggestion — dense motion with no track support — gates nothing until accepted here or in the triage rows.
holdoutTexthardSolver-gate strength. hard (default) excludes matted observations outright; soft keeps 1 in 10 of them — for shots where the matte is aggressive and static coverage is thin.
holdout_regionsTextRegions the solve ignores, drawn in the viewer — the moving actor, a reflection. Stored as shapes.
matte_ignoreTextDetected movers the artist marked IGNORE: their tracks are excluded from the solve.
mattesTextThe detected movers, as the solve found them (baked). The triage section above is their editor.
layersTextFlat surfaces you've declared (JSON) — drawn with ▱ Add surface in the viewer. Each stores the quad and the frame you drew it on; the corners are tracked at solve time, so nothing goes stale when the plate changes.
layer_statsTextPer planar layer, how much it contributed to the solve — written by the solve, read in the triage section.
txFloat0.0Translate X — position along the world X axis, metres.
tyFloat0.0Translate Y — position along the world Y axis (up), metres.
tzFloat0.0Translate Z — position along the world Z axis, metres. The camera looks down −Z.
rxFloat0.0Rotate around X, degrees.
ryFloat0.0Rotate around Y (turntable), degrees.
rzFloat0.0Rotate around Z (roll), degrees.
focal_mmFloat35.0The solved (or set) focal length in millimetres against aperture_h. A solved 18 mm read as 35 mm relights a wide shot with a long lens's falloff — the number to check first.
aperture_hFloat36.0The sensor's horizontal width in millimetres, the reference focal_mm is expressed against. 36 is full frame.
k1Float0.0The solved radial distortion's first term. 0 is an ideal lens; the strong-lens undistort doorway refuses past ±0.35.
k2Float0.0The solved radial distortion's second term.
solve_rmsFloat0.0The solve's reprojection error over the whole shot in pixels. Under 0.5 is a good solve, over 1 wants more features or holdouts.
frame_rmsFloat0.0The reprojection error at the current frame — the frame to look at when the overall number is fine but one shot section slips.
cloudTextThe solved 3D point cloud (baked). The viewer overlay reprojects it; Scene+ places it.
tracksTextThe 2D tracks (baked) — what the overlay draws as tracks.
statusTextWhat the last solve did, in words: features, frames, RMS, and the lens it settled on.
solve_startFloat0.0Baked: the first frame of the solve, for the overlay's reprojection.
solve_cxFloat0.0Baked: the principal point's X used by the solve, for the overlay.
solve_cyFloat0.0Baked: the principal point's Y used by the solve, for the overlay.
solve_f_pxFloat0.0Baked: the focal length in pixels the solve settled on, for the overlay.
solve_normFloat0.0Baked: the normalisation the solve applied, for the overlay.
overlayChoicetracksWhat the viewer draws over the plate: the 2D tracks, the reprojected cloud, both, or nothing. offtrackscloudboth
disabledBoolfalseBypass: the node passes its first input through untouched (D in the graph). The knobs keep their values for when it comes back.
labelTextA note shown under the node in the graph — what this node is FOR. Never affects the render or the cache.
hide_inputBoolfalseDraw the node without its input wire — a tidy graph for a node whose source is obvious (a Dot, a viewer tap).

See also