GVHMR: World-Grounded Human Motion Recovery via Gravity-View Coordinates
Project Page | Paper
World-Grounded Human Motion Recovery via Gravity-View Coordinates
Zehong Shen*, Huaijin Pi*, Yan Xia, Zhi Cen, Sida Peng†, Zechen Hu, Hujun Bao, Ruizhen Hu, Xiaowei Zhou
SIGGRAPH Asia 2024
News 🔥
- [2025-03-08] By default not using DPVO. We implemented a SimpleVO, which is more efficient and compatible with GVHMR.
- [2025-03-08] We added a new option
f_mmto specify the focal length of the fullframe camera in mm.
Setup
Please see installation for details.
Quick Start
Google Colab demo for GVHMR
HuggingFace demo for GVHMR
Demo
Demo entries are provided in tools/demo. Use -s to skip visual odometry if you know the camera is static, otherwise the camera will be estimated by DPVO.
We also provide a script demo_folder.py to inference a entire folder.
python tools/demo/demo.py --video=docs/example_video/tennis.mp4 -s
python tools/demo/demo_folder.py -f inputs/demo/folder_in -d outputs/demo/folder_out -s
The same CLI is available after pip install as python -m hmr4d.demo or the gvhmr-demo console script.
Use as a library
The demo pipeline is importable, so GVHMR can be run programmatically (e.g. as an Eden extension). The model is loaded once and reused across calls:
from hmr4d.demo import GVHMR
# `checkpoint_root` points at your downloaded checkpoints (body models, GVHMR/HMR2/
# ViTPose/YOLO/DPVO weights). It defaults to ./inputs/checkpoints; set it (or the
# $GVHMR_CHECKPOINT_ROOT env var) to run from any working directory.
model = GVHMR(checkpoint_root="/path/to/inputs/checkpoints")
out = model.recover("docs/example_video/tennis.mp4", static_cam=True) # render=True for overlay videos
# out -> {"smpl_params_global", "smpl_params_incam", "K_fullimg", "output_dir"}
GVHMR is CUDA-only (select a GPU with CUDA_VISIBLE_DEVICES). It composes its own Hydra
config, so it must run in a process without an already-initialized Hydra — when embedding it
in another Hydra-using application (such as Eden), run it out-of-process.
Reproduce
-
Test: To reproduce the 3DPW, RICH, and EMDB results in a single run, use the following command:
python tools/train.py global/task=gvhmr/test_3dpw_emdb_rich exp=gvhmr/mixed/mixed ckpt_path=inputs/checkpoints/gvhmr/gvhmr_siga24_release.ckpt
To test individual datasets, change
global/tasktogvhmr/test_3dpw,gvhmr/test_rich, orgvhmr/test_emdb. -
Train: To train the model, use the following command:
# The gvhmr_siga24_release.ckpt is trained with 2x4090 for 420 epochs, note that different GPU settings may lead to different results. python tools/train.py exp=gvhmr/mixed/mixed
During training, note that we do not employ post-processing as in the test script, so the global metrics results will differ (but should still be good for comparison with baseline methods).
Citation
If you find this code useful for your research, please use the following BibTeX entry.
@inproceedings{shen2024gvhmr,
title={World-Grounded Human Motion Recovery via Gravity-View Coordinates},
author={Shen, Zehong and Pi, Huaijin and Xia, Yan and Cen, Zhi and Peng, Sida and Hu, Zechen and Bao, Hujun and Hu, Ruizhen and Zhou, Xiaowei},
booktitle={SIGGRAPH Asia Conference Proceedings},
year={2024}
}
Acknowledgement
We thank the authors of WHAM, 4D-Humans, and ViTPose-Pytorch for their great works, without which our project/code would not be possible.
Metadata
Release files for eden-gvhmr 1.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| eden_gvhmr-1.1.1.tar.gz | 502.5 kB | With provenance | Details for eden_gvhmr-1.1.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| eden_gvhmr-1.1.1-py3-none-any.whl | Python 3 | none | any | Details for eden_gvhmr-1.1.1-py3-none-any.whl |
Total release size: 1.1 MB
Release files / eden_gvhmr-1.1.1.tar.gz
| Download URL | eden_gvhmr-1.1.1.tar.gz |
|---|---|
| Size | 502.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e17a39bdd495b889a37c43b2788da1f1f3ba8f7e00bbbb45f1eea88c63d1ca5c
|
|
BLAKE2b-256 checksum How to use checksums |
c1097bc5bb92172493631d80b57a2e676293098ad325f4c5e2a8f860ee2c4c95
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 31, 2026.
Transparency logRelease files / eden_gvhmr-1.1.1-py3-none-any.whl
| Download URL | eden_gvhmr-1.1.1-py3-none-any.whl |
|---|---|
| Size | 601.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6426bee2606e15902ff62061386b7b15f2e0b2ce421e988fed52f5b4eb812097
|
|
BLAKE2b-256 checksum How to use checksums |
ead6f4185283adb07d861bf972e84e67306bbf20db828ed70f1b27f6d383be4b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 31, 2026.
Transparency logSecurity for eden-gvhmr 1.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for eden_gvhmr-1.1.1.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 31, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.