File size: 6,144 Bytes
214ff69 3cd15cc 214ff69 3cd15cc | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 | ---
license: other
license_name: amass-non-commercial
license_link: https://amass.is.tue.mpg.de/license.html
tags:
- pose-estimation
- virtual-reality
- motion-capture
- smpl
- onnx
- unity
library_name: onnx
pipeline_tag: other
---
# Qudmi v0.1 β model card
Full-body human pose from sparse VR tracking: head + two hand controllers β 22 SMPL body joints,
in real time, on device.
## β οΈ License: research and non-commercial use only
**The weights may not be used in a commercial product or service.**
They are trained on [AMASS](https://amass.is.tue.mpg.de/), whose license permits non-commercial
scientific research, education and artistic projects only, and states explicitly that it
"prohibits the use of the Dataset to train methods/algorithms/neural networks/etc. for commercial
use of any kind". That restriction passes to anything trained on it, including these weights.
The **code** in [github.com/Quddos/qudmi](https://github.com/Quddos/qudmi) is MIT and carries no
such restriction β the architecture, training pipeline and Unity runtime are freely reusable, and
you can retrain on your own data for any purpose.
## What it does
| | |
|---|---|
| Input | 40 frames Γ 36 features β head and both wrists, each as position (3) + 6D rotation (6) + velocity (3), at 30 Hz |
| Output | 135 values β 22 joint rotations in 6D form + root translation |
| Parameters | 4.8 M |
| Inference | ~2 ms CPU (ONNX Runtime), ~1.5 ms GPU |
| Format | ONNX opset 18, single self-contained file |
Input is canonicalized against the head's horizontal position and yaw, which is the only
reference frame a headset can actually supply. Rotations use the 6D continuous representation
(Zhou et al. 2019) rather than quaternions or Euler angles, which are discontinuous and hurt
regression.
## Performance
Root-aligned MPJPE, the standard metric in this literature.
| Split | Source | MPJPE |
|---|---|---|
| val | HumanEva | 76 mm |
| test | TotalCapture | 94 mm |
Published three-point work (AvatarPoser, AGRoL) reports roughly 60β70 mm, so this sits about
1.4Γ behind the state of the art. Six-sensor systems such as DTP report ~10 mm, but with the
pelvis and both ankles tracked the root and legs are measured rather than inferred β a different
and considerably easier problem.
### Where the error is
| Joint group | MPJPE |
|---|---|
| feet / ankles | 173β196 mm |
| knees | ~111 mm |
| wrists | ~107 mm |
**Legs dominate, and that is structural.** Nothing observes the lower body at three tracked
points, so it is a plausible inference rather than a measurement. Every three-point method shares
this limit.
**The wrist number is misleading on its own.** Wrist position is a model *input*, but the network
predicts rotations and nothing constrains forward kinematics to return the wrist to the observed
position β error accumulates along spine β collar β shoulder β elbow β wrist. The Unity runtime
corrects this with two-bone IK onto the tracked controllers, so live hand error is effectively
zero. The root is handled the same way: the runtime anchors to the measured headset position
rather than the predicted root translation, which generalizes poorly across datasets.
## Training
- **Data**: official AMASS split β ACCAD, BMLmovi, CMU, KIT (589,761 windows) for training,
HumanEva for validation, TotalCapture for test.
- **Losses**: rotation-matrix MSE (1.0), FK joint-position (0.5), root translation (0.1). The low
translation weight is deliberate: it generalizes ~10Γ worse than the other terms and the runtime
discards it, so it should not dominate the gradients.
- **Schedule**: AdamW, lr 1e-4 halving every 15 epochs, early stopping on validation pose quality.
Stopped at epoch 27; best checkpoint epoch 17.
- **Hardware**: single RTX 3060, a few hours.
## Known limitations
- **Legs are inferred, not measured** β see above. Expect plausible rather than accurate.
- **Foot sliding.** DTP's foot-velocity loss is not implemented, because it differences
consecutive *predicted* frames and this model predicts a single frame from a window. It needs
sequence-level training to be meaningful.
- **Body-size range.** AMASS subjects top out near 1.65 m head height. The runtime scales input
toward the training distribution at calibration, but users far outside it may see degraded
quality.
- **Not profiled on standalone Quest.** Developed over Quest Link.
## Intended use
Research, education, prototyping and non-commercial projects: social VR presence, full-body
avatars, movement analysis, animation authoring.
Not suitable as-is for clinical, diagnostic or safety-critical use β accuracy has not been
validated for any of those, and the lower body is inferred.
## Author
**Raheem Quddus** ([@Quddos](https://github.com/Quddos) on GitHub,
[@quddusr](https://huggingface.co/quddusr) on Hugging Face).
Qudmi's model, training pipeline and Unity runtime are original work. The design draws on
published research in this area, credited below.
## Citing Qudmi
```bibtex
@software{quddus2026qudmi,
author = {Quddus, Raheem},
title = {Qudmi: Full-body VR pose estimation from sparse head and hand tracking},
year = {2026},
url = {https://github.com/Quddos/qudmi}
}
```
## Prior work this builds on
These are acknowledgements, not the citation for this project. Cite them in addition to Qudmi if
you publish work using it.
- **AMASS** (Mahmood et al. 2019) β the motion capture corpus the model is trained on. Citing it
is a condition of its license.
- **6D rotation representation** (Zhou et al. 2019) β the output encoding.
- **AvatarPoser** (Jiang et al. 2022) and **AGRoL** (Du et al. 2023) β prior three-point
sparse-tracking methods; their reported accuracy is the benchmark Qudmi is measured against.
- **DTP** (Liu et al., *Virtual Reality* 28:116, 2024) β six-sensor method whose loss design
(rotation + FK position weighting) and T-pose sensor calibration informed this implementation.
|