Body Tracking

Track a person's body pose, dense face mesh with blendshapes, hands, and gestures.

What it does

Body Tracking runs a single machine-learning model over an image to find a person: body pose, hands and face at once. The full set of pins is always present, body keypoints, left and right hand keypoints, face keypoints, a skeleton preview and per-point confidences, so downstream wiring survives a toggle being flipped. Regions that are switched off come through empty.

Dense Face gives a 478-point face mesh plus 52 expression blendshape coefficients, Dense Hands gives finer hand landmarks, and Gestures gives a per-hand gesture label. A One-Euro smoothing filter is on by default to settle per-frame jitter, and the skeleton preview draws over the image while the node is selected.

When to use it

ParameterTypeDefaultWhat it does
imageRaster—Image to track a person in (connect Camera Input)
enabledBooleantrueEnable tracking
detector_sourceString"whole_person"Detector source — whole-person RTMW pose, or a face-only detector (BlazeFace ROI). One of: whole_person, face_only.
model_qualityString"balanced"Model tier — falls back to the balanced model if the selected tier isn't installed. One of: fast, balanced, accurate.
confidence_thresholdNumber0.300Body confidence threshold (also the fallback for feet)
hand_confidenceNumber0.200Hand confidence threshold — usually lower than body (hands are smaller / more occluded)
face_confidenceNumber0.200Face confidence threshold — usually lower than body
min_detection_confidenceNumber0.500Minimum detection confidence (face-only source)
min_tracking_confidenceNumber0.500Minimum tracking confidence (face-only source)
dense_faceBooleanfalseUpgrade the face region to a dense 478-point FaceMesh
blendshapesBooleantrueOutput the 52 ARKit expression blendshape coefficients (only fires when Dense Face is on)
dense_handsBooleanfalseUpgrade the hand regions to dense hand-landmarker keypoints
gesturesBooleanfalseClassify a canned gesture label per hand
smoothingBooleantrueTemporally smooth landmarks (One-Euro filter) to remove per-frame jitter
smoothing_min_cutoffNumber1Smoothing min cutoff — lower is smoother but adds lag at rest
smoothing_betaNumber0.500Smoothing speed coefficient (beta) — higher reduces lag during fast motion
line_widthNumber3Line thickness for skeleton bones
joint_radiusNumber6Radius of joint circles
point_sizeNumber2Radius of dense-mesh preview points
colorColorrgba(0.00, 1.00, 0.00, 1.00)Color for skeleton lines and joints
preview_regionsString"all"Which skeleton regions to show in preview. One of: body, hands, face, all.
opacityNumber1Layer opacity (0 = transparent, 1 = opaque). Editable, wirable, keyframable.

Gotchas

If a Model Quality tier is not installed, the balanced model is used instead with no other sign of it. Check results when expecting the accurate tier.

Worked example

  1. Add Body Tracking and wire a Camera or Image into its input.

  2. Leave Detector Source on whole-person and Enabled on. A skeleton preview draws over the image.

  3. Turn on Dense Face and Blendshapes to get facial expression coefficients for a face rig.

  4. Turn on Dense Hands and Gestures to get finer hand tracking plus a canned gesture label per hand.

  5. If tracking looks jittery at rest or laggy in motion, adjust Smoothing Min Cutoff and Smoothing Beta to taste.

See also

Vision Pose · Object Detect · Camera Input · Points