GEM-SMPL
GEM-SMPL is the SMPL video-motion-estimation release of GEM: A Generalist
Model for Human Motion, originally released as GENMO.
- Paper: GEM: A Generalist Model for Human Motion
- Official source: NVlabs/GENMO
- Motius checkpoint:
ZeyuLing/Motius-GEM-SMPL
- Pinned source revision:
16bebf402d8893184249ee206d957b8248cd8310
- Checkpoint SHA-256:
1d15cbe2864d6de61a75e83fdbfe83bec3c7b183eee3d3dcdbd9107e4456454a
Tasks: Monocular Motion Capture
Supported Tasks
| Task | Public API | Input | Output |
|---|
| Monocular Motion Capture | infer_monocular_motion_capture | RGB video | MonocularCaptureResult |
Checkpoint
The Motius Hugging Face artifact contains the exact official GEM-SMPL,
HMR2, ViTPose, and YOLO checkpoint bytes and a manifest with every SHA-256.
The runtime source is shipped inside the motius wheel at its pinned revision;
inference never imports another repository checkout.
SMPL and SMPL-X files are license-gated and are not redistributed. Download
them into
checkpoints/body_models/ using
checkpoints/body_models/README.md.
Motion Representation
GEM-SMPL predicts camera-space and gravity-aligned global body parameters.
Motius preserves the native 21-joint body pose, root orientation, translation,
and ten shape coefficients. Geometry materialization exposes:
- SMPL-24 named joints;
- 6,890-vertex SMPL meshes;
- camera and world root trajectories;
- per-frame camera intrinsics;
- the source video clock without temporal resampling.
The internal SMPL-X body layer is converted with the same fixed sparse
SMPL-X-to-SMPL map used by the pinned implementation.
Usage
Create an isolated environment without cloning GENMO:
1python3.10 -m venv outputs/envs/gem-smpl
2outputs/envs/gem-smpl/bin/pip install -e ".[gem-smpl]"
Run the standard task API:
1from pathlib import Path
2
3from motius.motion.representation.monocular_capture import (
4 save_monocular_capture_result,
5)
6from motius.pipelines.gem_smpl import GemSmplPipeline
7
8pipeline = GemSmplPipeline.from_pretrained(
9 "ZeyuLing/Motius-GEM-SMPL",
10 bundle_kwargs={
11 "python_executable": "outputs/envs/gem-smpl/bin/python",
12 "body_models_root": "checkpoints/body_models",
13 },
14)
15result = pipeline.infer_monocular_motion_capture(
16 "input.mp4",
17 output_root="outputs/gem_smpl/run_001",
18 materialize_geometry=True,
19 render=True,
20)
21save_monocular_capture_result(
22 result,
23 Path("outputs/gem_smpl/run_001/result.npz"),
24)
render=True requests the upstream in-camera/world previews. It can be left
off for evaluation and batch inference.
Demo
This 768px, 30 FPS preview renders the world-space SMPL vertices returned by
the public Motius pipeline.
Evaluation Results
Protocol: 3dpw_test_camera_v1, one inference item per official 3DPW person
track using the released target-crop protocol.
| Coverage | MPJPE ↓ | PA-MPJPE ↓ | Acceleration ↓ |
|---|
| 100.00% | 64.46 mm | 46.45 mm | 5.713 m/s² |
Stage Parity
The migration gate replays the same video, checkpoint bytes, licensed body
models, precomputed visual tensors, and random seed through the pinned official
source and the Motius package.
| Boundary | Fields | Requirement | Result |
|---|
| Tracking | 1 | exact | pass |
| Keypoints | 1 | exact | pass |
| Visual features | 2 | exact | pass |
| Complete model input | 15 | exact | pass |
| Network and decoded output | 9 | exact | pass |
| SMPL geometry | 4 | exact | pass |
| Public result | 10 | exact | pass |
| Total | 42 | rtol=0, atol=0 | pass |
1python tools/verify_monocular_pipeline_parity.py \
2 --reference outputs/parity/gem_smpl/reference_trace.npz \
3 --candidate outputs/parity/gem_smpl/motius_trace.npz
License
The vendored source retains the NVIDIA OneWay Noncommercial license. Public
weights retain the NVIDIA Open Model License. SMPL and SMPL-X have separate
terms. See the
GEM-SMPL attributions
and the packaged license files before use.
Direct Loading
1from motius import Pipeline
2
3pipeline = Pipeline.from_pretrained("ZeyuLing/Motius-GEM-SMPL")