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
- Wire the plate.
- Press ▶ Solve and watch the phase/percentage/ETA; Cancel lands at the next frame boundary.
- Check the track-curve diagnostics for the worst offenders before trusting the camera.
Inputs
| Input | What it takes |
|---|---|
| in | the image this node works on |
Outputs
| Output | Type |
|---|---|
| out | Image |
Parameters
| Parameter | Type | Default | What it does |
|---|---|---|---|
| features | Int | 300 | How 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_separation | Float | 12.0 | Minimum distance between two features in pixels, so the tracker spreads over the frame instead of clustering on one texture. |
| patch_radius | Int | 12 | Half-size in pixels of the pattern the tracker matches. Bigger is steadier, smaller follows fine detail. |
| levels | Int | 4 | Pyramid depth of the motion solve. Each level doubles the motion that can be found; more than the frame has is noise. |
| min_length | Int | 8 | A track shorter than this many frames is dropped before the solve — short tracks are usually a glint or an edge that slid. |
| fb_max | Float | 0.3 | Forward–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. |
| motion | Choice | auto | What 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_mode | Choice | unknown | unknown 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_px | Float | 0.0 | The focal length in pixels to start from (or to trust, when focal_mode is known). 0 guesses 1.2 × the plate width. |
| refine_lens | Bool | true | Solve the lens distortion (k1, k2) with the camera. Off keeps the lens ideal — right for a plate that was undistorted upstream. |
| detect_movers | Bool | true | Blacksmith 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_accept | Text | Accepted suggestion ids (JSON). A ◇ suggestion — dense motion with no track support — gates nothing until accepted here or in the triage rows. | |
| holdout | Text | hard | Solver-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_regions | Text | Regions the solve ignores, drawn in the viewer — the moving actor, a reflection. Stored as shapes. | |
| matte_ignore | Text | Detected movers the artist marked IGNORE: their tracks are excluded from the solve. | |
| mattes | Text | The detected movers, as the solve found them (baked). The triage section above is their editor. | |
| layers | Text | Flat 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_stats | Text | Per planar layer, how much it contributed to the solve — written by the solve, read in the triage section. | |
| tx | Float | 0.0 | Translate X — position along the world X axis, metres. |
| ty | Float | 0.0 | Translate Y — position along the world Y axis (up), metres. |
| tz | Float | 0.0 | Translate Z — position along the world Z axis, metres. The camera looks down −Z. |
| rx | Float | 0.0 | Rotate around X, degrees. |
| ry | Float | 0.0 | Rotate around Y (turntable), degrees. |
| rz | Float | 0.0 | Rotate around Z (roll), degrees. |
| focal_mm | Float | 35.0 | The 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_h | Float | 36.0 | The sensor's horizontal width in millimetres, the reference focal_mm is expressed against. 36 is full frame. |
| k1 | Float | 0.0 | The solved radial distortion's first term. 0 is an ideal lens; the strong-lens undistort doorway refuses past ±0.35. |
| k2 | Float | 0.0 | The solved radial distortion's second term. |
| solve_rms | Float | 0.0 | The 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_rms | Float | 0.0 | The reprojection error at the current frame — the frame to look at when the overall number is fine but one shot section slips. |
| cloud | Text | The solved 3D point cloud (baked). The viewer overlay reprojects it; Scene+ places it. | |
| tracks | Text | The 2D tracks (baked) — what the overlay draws as tracks. | |
| status | Text | What the last solve did, in words: features, frames, RMS, and the lens it settled on. | |
| solve_start | Float | 0.0 | Baked: the first frame of the solve, for the overlay's reprojection. |
| solve_cx | Float | 0.0 | Baked: the principal point's X used by the solve, for the overlay. |
| solve_cy | Float | 0.0 | Baked: the principal point's Y used by the solve, for the overlay. |
| solve_f_px | Float | 0.0 | Baked: the focal length in pixels the solve settled on, for the overlay. |
| solve_norm | Float | 0.0 | Baked: the normalisation the solve applied, for the overlay. |
| overlay | Choice | tracks | What the viewer draws over the plate: the 2D tracks, the reprojected cloud, both, or nothing. offtrackscloudboth |
| 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). |
See also
- Camera Tracker (HDCT) — How to get a solved 3D camera out of a plate.