Skip to main content

Fusion

Fusion runs two tracking sources at once and stitches them into one skeleton. The usual reason is that neither source is good at everything: a headset tracks the upper body well and estimates the legs, while a sensor suit tracks legs directly. Fusion lets you take the good half of each.

Turn on Use Fusion and the Body tab gains two more rows: Lower Tracking for the second source, and Fusion Tracking for the combined output and its settings.

Fusion or Composite?

Fusion splits the body in half and expects both sources to know where the participant is standing — that is what its drift correction manages. If one of your sources reports orientation only, such as an inertial sensor set, there is no position to correct and nothing to align; use Composite tracking instead, which assigns individual joints rather than halves.

The problem fusion has to solve

Two tracking sources do not agree about where the participant is standing. Each has its own origin and its own drift, so the upper body and the legs pull apart over a session — slowly if you are lucky, visibly within minutes if you are not.

The Fusion Tracking row's settings all exist to manage that: pick a point on each skeleton that should coincide, then move one to match the other, gently enough that the correction is not itself visible.

Anchor Settings

SettingWhat it does
Upper BodyTracking Anchor / Lower BodyTracking AnchorThe joint on each skeleton that should line up. Hips is the usual choice — it is the root of both skeletons and the most stable joint on each.
Anchor AlignmentWhether the lower skeleton is moved to meet the upper one.
Align X, Align Y, Align ZWhich axes drift correction is allowed on.
Why Y is usually left off

X and Z are horizontal — the two sources disagreeing about where in the room the participant stands, which is drift you want removed. Y is height. Correcting Y makes the fused skeleton's floor level follow whichever source is noisier vertically, so feet slide or sink. Leave Y off unless you have a specific reason, and use Offset (m) under Leg Driver for a fixed height correction instead.

Dead-Zone Settings

A dead zone stops the correction chasing small disagreements. Below the threshold the two skeletons are treated as aligned and nothing moves.

SettingWhat it does
Dead-Zone SettingsEnable the dead zone.
Radius (m)Disagreement below this is ignored.
Exit Threshold (m)Disagreement above this re-engages correction.

The two thresholds differ on purpose. A single threshold makes the correction switch on and off repeatedly when the error hovers near it, which reads as jitter. Entering at a small radius and exiting at a larger one keeps that from happening.

Adaptive Half-Life Settings

Half-life is how quickly a correction is applied: the time for half of the remaining error to be removed. Short means responsive and visible; long means smooth and slow.

The right value depends on what the participant is doing, so it adapts:

SettingApplies when
Standing (s)The participant is stationary.
Moving (s)The participant is moving — above Move Threshold (m/s).
Planted (s)A foot is planted on the ground.
Move Threshold (m/s)Hip speed above which the participant counts as moving.
Max Speed (m/s)Ceiling on how fast a correction is applied, whatever the half-life says.

Correcting hardest while someone is standing still is the least noticeable moment to do it. Correcting while they walk drags the skeleton against the motion.

Foot Plant Settings

A planted foot is a strong signal: it should not slide. These settings detect that and protect it.

SettingWhat it does
Foot Plant SettingsEnable foot-plant detection.
Move Threshold (m/s)Foot speed below which it counts as planted.
Height (m)Maximum foot height for planted detection, so a lifted stationary foot is not counted.
Freeze When PlantedStop applying drift correction entirely while a foot is planted.

Freeze When Planted trades one artefact for another. On, feet stay put and error accumulates until the foot lifts. Off, correction is continuous and feet can slide slightly. Foot contact is usually the more noticeable of the two, so freezing is worth trying first.

Leg Driver

SettingWhat it does
Enable Leg IKSolve the legs with inverse kinematics rather than applying tracked rotations directly. Smooths out knee and ankle behaviour.
Offset (m)Fixed vertical offset. This is the shoe-thickness correction — a sensor on the ankle sits above the floor by the height of the shoe sole, and without this the avatar sinks.
Log PositionsPrint leg positions for diagnosis. Leave off during sessions.

Origin Alignment

SettingWhat it does
Auto Origin AlignAutomatically bring the two sources' origins together at startup, instead of requiring a manual offset.
Manual OffsetA fixed offset between sources, for when the relationship is known and you would rather set it than have it estimated.

Other

SettingWhat it does
Pin Hands To Tracked WristsForce the fused hands to the wrist positions from the tracked source, overriding whatever the fused skeleton produces. Use when hand placement matters more than a continuous arm chain — reaching and grasping tasks.
Record Post-AdjustedCapture the fused pose after alignment corrections rather than before. On is what you want for analysis: it matches what the participant saw.
Reset SettingsReturn every fusion setting to its default.

Tuning order

Fusion has many interacting settings. Change them in this order and each step's effect is visible on its own:

  1. Anchors first. Set both to Hips, enable Anchor Alignment, X and Z on, Y off. Confirm the two skeletons stop drifting apart.
  2. Dead zone next. Raise the radius until small jitter stops, no further.
  3. Half-lives after that. Start with Standing shortest, Moving longest. Watch the participant walk and stop.
  4. Foot plant last. Turn it on and see whether foot sliding improves.

Changing several at once makes it impossible to tell which one helped.

Creating a fusion avatar

Right-click an avatar prefab in the Project window and choose LABO → Create Fusion Avatar Prefab. This produces a variant set up for fusion, so you do not have to wire the upper and lower halves by hand.