GEM-SMPL

GEM-SMPL is the SMPL video-motion-estimation release of GEM: A Generalist Model for Human Motion, originally released as GENMO.

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:

python3.10 -m venv outputs/envs/gem-smpl
outputs/envs/gem-smpl/bin/pip install -e ".[gem-smpl]"

Run the standard task API:

from pathlib import Path

from motius.motion.representation.monocular_capture import (
    save_monocular_capture_result,
)
from motius.pipelines.gem_smpl import GemSmplPipeline

pipeline = GemSmplPipeline.from_pretrained(
    "ZeyuLing/Motius-GEM-SMPL",
    bundle_kwargs={
        "python_executable": "outputs/envs/gem-smpl/bin/python",
        "body_models_root": "checkpoints/body_models",
    },
)
result = pipeline.infer_monocular_motion_capture(
    "input.mp4",
    output_root="outputs/gem_smpl/run_001",
    materialize_geometry=True,
    render=True,
)
save_monocular_capture_result(
    result,
    Path("outputs/gem_smpl/run_001/result.npz"),
)

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.

GEM-SMPL world-motion preview

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
python tools/verify_monocular_pipeline_parity.py \
  --reference outputs/parity/gem_smpl/reference_trace.npz \
  --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

from motius import Pipeline

pipeline = Pipeline.from_pretrained("ZeyuLing/Motius-GEM-SMPL")
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Paper for ZeyuLing/Motius-GEM-SMPL