What Causes Jittery Skeletons in Real-Time Motion Capture?
Jittery skeletons in real-time motion capture are almost always a data problem, not a rendering problem. The most common causes are marker occlusion and label swapping, camera calibration drift, inaccurate subject calibration, dropped frames or sync errors between devices, and a mismatch between the solved skeleton and the target rig during retargeting. Each introduces small frame-to-frame errors that the solver then amplifies into visible shake.
What does skeleton jitter actually look like?
Jitter shows up as high-frequency, low-amplitude noise on a character that should be still or moving smoothly: shoulders buzzing during a walk, a foot vibrating on contact, fingers trembling in a held pose, or a spine that shivers when the performer turns away from part of the volume.
It is worth separating jitter from two things it is often confused with. A pop is a single-frame discontinuity, usually caused by a label swap or a marker reappearing after occlusion. Drift is a slow, sustained deviation, usually calibration-related. Jitter is continuous, small, and rhythmic. Identifying which of the three you are looking at narrows the cause considerably before you change a single setting.
Cause 1: Marker occlusion, swaps and ghost reflections
The most frequent source of real-time jitter is incomplete marker data. When a marker is hidden by a prop, another performer, or the performer’s own body, the solver has fewer constraints for that segment and must infer the joint position. If markers drop in and out across consecutive frames, the solve oscillates between two slightly different solutions.
Ghost markers make this worse. Reflective tape on trainers, watch faces, floor markings, wet surfaces, and glossy props all produce spurious reconstructions that the labeler may briefly attach to a limb before rejecting them. The result is a one-to-three frame twitch that repeats every time the performer passes through the same part of the volume.
Marker placement matters too. Markers mounted on soft tissue, loose suits, or over clothing seams move independently of the underlying bone. That soft-tissue artifact is real movement, faithfully captured, which is precisely why filtering alone will not fix it.
Cause 2: Calibration drift and camera coverage
Camera calibration degrades over time. Cameras are knocked by lighting crews, truss flexes under load, floors move with foot traffic, and thermal expansion shifts optics slightly as the room warms. Once the calibration no longer matches physical reality, reconstruction residuals rise, and 3D marker positions wobble even when nothing is moving.
Coverage is the related issue. Any point in the volume needs to be seen by enough cameras, from sufficiently different angles, to triangulate reliably. Two cameras with a narrow baseline give a poorly conditioned solution along the depth axis, a classic source of jitter at the edges of a volume, near the floor, or in the shadow of large set pieces. If the jitter is spatially consistent (always in the same corner), coverage or calibration is the first place to look.
Cause 3: A poorly calibrated or mis-scaled subject
Real-time solving fits a skeleton model to observed markers. If the model’s segment lengths, joint centers, or marker offsets do not match the performer, the solver must distribute the error across the chain every frame, and the distribution changes as the pose changes. That produces jitter concentrated at the extremities, most visibly in the hands and feet.
A subject calibrated in a rushed range-of-motion pass, or reused from a different performer, is a common culprit. Hands are especially sensitive: finger solving relies on small markers in proximity, so a marginal calibration that looks acceptable on the torso can be unusable at the fingertips.
Cause 4: Sync, dropped frames and network latency
Real-time pipelines chain several systems together: cameras, capture software, a network, a game engine, and often a video or audio device. Any of them can introduce a timing error. Cameras that are not genlocked or timecode-locked sample at slightly different instants. Dropped frames force the engine to interpolate or hold a pose, producing a stutter that reads as jitter. Streaming over a congested or shared network introduces variable latency, causing packets to arrive unevenly, and the receiving application resamples them irregularly.
If jitter appears in the engine but the mocap software’s own 3D view is clean, the problem sits downstream in transport, sync, or engine-side interpolation, not in the capture.
Cause 5: Retargeting and engine-side smoothing
Finally, jitter can be created after the solve. Retargeting a source skeleton onto a character rig with different proportions forces IK solutions to compensate, and small source errors become large target errors at the end of a limb. Overly aggressive engine-side smoothing introduces its own artifacts: filters that are too tight lag the motion and then overshoot, resulting in a soft, rhythmic wobble.
How do you diagnose jitter quickly?
Work upstream to downstream and stop at the first layer that is clean:
- Check raw 2D camera data and marker counts for the affected segment.
- Review calibration residuals and recalibrate if they have risen since the last known-good session.
- Mask reflections and remove reflective materials from the volume and wardrobe.
- Re-run the subject calibration, checking segment scaling and finger markers.
- Confirm genlock, timecode, and frame rate agreement across every device.
- Compare the capture software’s 3D view against the engine view to isolate transport issues.
- Review retargeting constraints and disable engine-side filtering to see the underlying signal.
How Vicon addresses jitter in real-time pipelines
Vicon’s approach is to remove the causes rather than smooth over the symptoms.
Shōgun Live performs occlusion fixing in real time. When a marker is lost due to crowding on set or an object passing between the camera and the performer, Shōgun predicts where the marker would be and maintains the solve, so segments stay stable rather than oscillating. Live Subject Calibration produces a scaled, accurate solving subject on set in minutes, and Auto-Skeleton in Shōgun Post offers a refined alternative that can be reimported into Live for subsequent takes. Shōgun 1.19 added System Health monitoring alongside new motion models and a transition manager, giving teams visibility of camera and system status frame by frame.
On the hardware side, Valkyrie, Vero, and Vanguard cameras carry onboard sensors that monitor camera position and temperature, flagging physical changes that cause calibration drift before they affect your data. Vicon Lock handles genlock and timecode across devices, and the DataStream SDK provides a low-latency, well-defined route into engines and custom applications. Shōgun retargets directly into game engines without third-party software, eliminating a common failure point, while Shōgun Post offers automatic gap-filling and MCP reprocessing to recover frames dropped during a live session.
Jitter is rarely one problem. It is usually three small ones stacking up, and a system built to expose each layer is what lets you fix them quickly.