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 headset | An inertial sensor set | |
|---|---|---|
| Where the body is in the room | Knows it | No idea — an IMU reports orientation only, never position |
| How long the participant's bones are | Estimates them per participant | Does not measure them |
| Individual joint angles | Inferred from cameras; degrades on anything it cannot see | Measured directly at each instrumented segment |
| Which way "forward" is | Referenced to the room | Referenced 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.
| Fusion | Composite | |
|---|---|---|
| Splits the body | Upper half / lower half, fixed | Any joints you choose |
| Both sources contribute position | Yes — each tracks where its half is | No — only the base does |
| Keeps the halves together | Drift correction you tune: dead zone, half-lives, foot plants | Nothing to tune; the composite's root is the base's root |
| Built for | A headset plus a suit that tracks legs | A 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
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.