SlimeVR Skeleton Example
Introduction
SlimeVR uses forward kinematics to calculate the position of a point on your body based on the rotations of a SlimeVR tracker. Inverse kinematics is typically used by games to calculate the rotations of a virtual skeleton to match the position of a SteamVR tracker.
To summarize
- SlimeVR tracker rotations -> SlimeVR Server
- Forward kinematics (SlimeVR) -> Rotations to positions
- SlimeVR Server positions -> SteamVR
- Inverse kinematics (SteamVR/Games) -> Positions to rotations
Illustration
Physical trackers
The images below illustrate wearing two physical trackers, a chest tracker mounted on the front and a hip tracker mounted on the back. These trackers are the input data for SlimeVR.
Note: The input does not include the skeleton, the outline is purely for illustrative purposes.
SlimeVR server internal skeleton
The images below illustrate the internal skeleton of SlimeVR calculated from the rotational data from the two SlimeVR trackers and a resulting SteamVR waist tracker attached to the bottom of the skeleton's hip bone. The rotation of the chest tracker is used for the top bone of the spine and the rotation of the hip tracker is used for the bottom bone of the spine.
Note: The illustrated skeleton does not accurately represent the skeleton used for SlimeVR, it is an artistic approximation.
SteamVR output
The images below illustrate the resulting SteamVR waist tracker. This tracker is the output data from SlimeVR and is what is seen in SteamVR and games.
Note: The output does not include the skeleton, the outline is purely for illustrative purposes.
Credit
The cases used for the illustration of SlimeVR trackers are the Hyperion cases (https://github.com/Smeltie/Hyperion) by Smeltie and contributors as listed on the GitHub page.