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 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
| Setting | What it does |
|---|---|
| Upper BodyTracking Anchor / Lower BodyTracking Anchor | The 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 Alignment | Whether the lower skeleton is moved to meet the upper one. |
| Align X, Align Y, Align Z | Which axes drift correction is allowed on. |
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.
| Setting | What it does |
|---|---|
| Dead-Zone Settings | Enable 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:
| Setting | Applies 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.
| Setting | What it does |
|---|---|
| Foot Plant Settings | Enable 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 Planted | Stop 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
| Setting | What it does |
|---|---|
| Enable Leg IK | Solve 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 Positions | Print leg positions for diagnosis. Leave off during sessions. |
Origin Alignment
| Setting | What it does |
|---|---|
| Auto Origin Align | Automatically bring the two sources' origins together at startup, instead of requiring a manual offset. |
| Manual Offset | A fixed offset between sources, for when the relationship is known and you would rather set it than have it estimated. |
Other
| Setting | What it does |
|---|---|
| Pin Hands To Tracked Wrists | Force 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-Adjusted | Capture the fused pose after alignment corrections rather than before. On is what you want for analysis: it matches what the participant saw. |
| Reset Settings | Return 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:
- Anchors first. Set both to Hips, enable Anchor Alignment, X and Z on, Y off. Confirm the two skeletons stop drifting apart.
- Dead zone next. Raise the radius until small jitter stops, no further.
- Half-lives after that. Start with Standing shortest, Moving longest. Watch the participant walk and stop.
- 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.