Skip to main content

SMPL layer for PyTorch

SMPL human body [1] layer for PyTorch (tested with v0.4 and v1.x) is a differentiable PyTorch layer that deterministically maps from pose and shape parameters to human body joints and vertices. It can be integrated into any architecture as a differentiable layer to predict body meshes. The code is adapted from the manopth repository by Yana Hasson.

smpl

Setup

1. The smplpytorch package

  • Run without installing: You will need to install the dependencies listed in environment.yml:
    • conda env update -f environment.yml in an existing environment, or
    • conda env create -f environment.yml, for a new smplpytorch environment
  • Install: To import SMPL_Layer in another project with from smplpytorch.pytorch.smpl_layer import SMPL_Layer do one of the following.
    • Option 1: This should automatically install the dependencies.
      git clone https://github.com/gulvarol/smplpytorch.git
      cd smplpytorch
      pip install .
      
    • Option 2: You can install smplpytorch from PyPI. Additionally, you might need to install chumpy.
      pip install smplpytorch
      

2. Download SMPL pickle files

  • Download the models from the SMPL website by choosing "SMPL for Python users". Note that you need to comply with the SMPL model license.
  • Extract and copy the models folder into the smplpytorch/native/ folder (or set the model_root parameter accordingly).

Demo

Forward pass the randomly created pose and shape parameters from the SMPL layer and display the human body mesh and joints:

python demo.py

Acknowledgements

The code largely builds on the manopth repository from Yana Hasson, which implements the MANO hand model [2] layer.

The code is a PyTorch port of the original SMPL model from chumpy. It builds on the work of Loper et al. [1].

The code reuses part of the code by Zhang Xiong to compute the rotation utilities.

If you find this code useful for your research, please cite the original SMPL publication:

@article{SMPL:2015,
    author = {Loper, Matthew and Mahmood, Naureen and Romero, Javier and Pons-Moll, Gerard and Black, Michael J.},
    title = {{SMPL}: A Skinned Multi-Person Linear Model},
    journal = {ACM Trans. Graphics (Proc. SIGGRAPH Asia)},
    number = {6},
    pages = {248:1--248:16},
    volume = {34},
    year = {2015}
}

References

[1] Matthew Loper, Naureen Mahmood, Javier Romero, Gerard Pons-Moll, and Michael J. Black, "SMPL: A Skinned Multi-Person Linear Model," SIGGRAPH Asia, 2015.

[2] Javier Romero, Dimitrios Tzionas, and Michael J. Black, "Embodied Hands: Modeling and Capturing Hands and Bodies Together," SIGGRAPH Asia, 2017.

Metadata

Release files for smplpytorch 0.0.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for smplpytorch 0.0.8
File Size Uploaded Provenance Actions
smplpytorch-0.0.8.tar.gz 9.5 kB Without provenance Details for smplpytorch-0.0.8.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for smplpytorch 0.0.8
File Interpreter ABI Platform Actions
smplpytorch-0.0.8-py3-none-any.whl Python 3 none any Details for smplpytorch-0.0.8-py3-none-any.whl

Total release size: 32.4 kB

Release files / smplpytorch-0.0.8.tar.gz

Download URL smplpytorch-0.0.8.tar.gz
Size 9.5 kB
Tags Source
SHA-256 checksum
How to use checksums
35a011206985c993dccea63e7a4d77bc71369baa0fd58f36ebcad6da3af38779
BLAKE2b-256 checksum
How to use checksums
16b30ea0c906ce4236efed823e0469fa1f9dfa330f05fc42d36bfbdf25c37f2f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.3

Release files / smplpytorch-0.0.8-py3-none-any.whl

Download URL smplpytorch-0.0.8-py3-none-any.whl
Size 22.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
059a398a3f10acf74f8da7fca8bba870f6504523cd3df6f52264b496c37b0a4a
BLAKE2b-256 checksum
How to use checksums
5fc227a2e0739670c19c52da1f90ebb576c2d64eb93a8c397461db2a41365e9f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.3

Security for smplpytorch 0.0.8

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A 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.

Release history Release notifications | RSS feed

This release

0.0.8 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page