Skip to main content

Composite Tracking

The Composite provider runs several tracking sources at once and lets you say, joint by joint, which one drives each part of the body. One source — the base — decides where the participant is in the room and how long their bones are. The others contribute joint angles wherever you assign them.

The case it was built for: a headset that knows where the participant is standing but only estimates their arm, alongside inertial sensors that measure the arm directly but have no idea the room exists. Each source covers the other's gap.

The problem it solves

Sources are rarely good at everything, and they fail in different directions:

A headsetAn inertial sensor set
Where the body is in the roomKnows itNo idea — an IMU reports orientation only, never position
How long the participant's bones areEstimates them per participantDoes not measure them
Individual joint anglesInferred from cameras; degrades on anything it cannot seeMeasured directly at each instrumented segment
Which way "forward" isReferenced to the roomReferenced to magnetic north, so it has to be dialled in

Neither is sufficient alone. Put the arm on the sensors and everything else on the headset, and you get measured joint angles on a body that walks around the room correctly.

How it fits together

Composite provider  — one row on the Body tab

├── base source e.g. Meta → where the body is, how long the bones are
└── override source e.g. UDP / IMU → joint angles, wherever you assign them


avatar, gizmos, Body CSV

Downstream, nothing knows it is a composite. It drives avatars, draws gizmos and writes to the Body CSV exactly like a single source would.

Composite or Fusion?

Both combine two sources, and they do different jobs. Pick by what you are trying to split.

FusionComposite
Splits the bodyUpper half / lower half, fixedAny joints you choose
Both sources contribute positionYes — each tracks where its half isNo — only the base does
Keeps the halves togetherDrift correction you tune: dead zone, half-lives, foot plantsNothing to tune; the composite's root is the base's root
Built forA headset plus a suit that tracks legsA headset plus sensors that measure specific joints

The short version: use Fusion when both sources know where the body is, and Composite when only one of them does. An orientation-only source has no position to correct, so there is no drift between the two to manage — which is why Composite has no alignment settings at all.

Start here

Set it up →

Get a known-good single source working first. If you are feeding the override from your own sensors or a recording, run the UDP sample on its own before combining it with anything — once a composite looks wrong, you want to already know which half is at fault.

What's in this section

  • Setup — configuring the provider, its sources, and getting the first frame on screen.
  • The joint map — choosing which source drives which joint, and why position is never one of the choices.
  • Troubleshooting — symptoms and what causes them.