Skip to content

markomih/VolumetricSMPL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VolumetricSMPL: A Neural Volumetric Body Model for Efficient Interactions, Contacts, and Collisions

PyPI version License: MIT Paper Video

VolumetricSMPL Teaser

🌟 TL;DR

VolumetricSMPL is a lightweight, plug-and-play extension for SMPL(-X) models that adds volumetric functionality via Signed Distance Fields (SDFs). With minimal integration—just a single line of code—users gain access to fast and differentiable SDF queries, collision detection, and self-intersection resolution.

✨ Key Features

  • 🔌 Single-line integration with existing SMPL models
  • Fast and differentiable SDF queries
  • 🛡️ Built-in collision detection and self-intersection resolution
  • 🔄 Compatible with SMPL, SMPLH, and SMPL-X
  • 🎯 Efficient interaction modeling for perception and reconstruction tasks

📚 Paper & Resources

🚀 Quick Start

Installation

Ensure that PyTorch and PyTorch3D are installed with GPU support. Then install VolumetricSMPL:

pip install VolumetricSMPL

Basic Usage

Extend an existing SMPL-X model with volumetric functionalities:

import smplx
from VolumetricSMPL import attach_volume

# Create a SMPL body and extend it with volumetric functionalities
# Supports SMPL, SMPLH, and SMPL-X
model = smplx.create(**smpl_parameters)
attach_volume(model)

# Forward pass
smpl_output = model(**smpl_data)  

# Ensure valid SMPL variables (pose parameters, joints, and vertices)
assert model.joint_mapper is None, "VolumetricSMPL requires valid SMPL joints as input."

# Access volumetric functionalities
model.volume.query(scan_point_cloud)                 # Query SDF for given points
model.volume.selfpen_loss(smpl_output)               # Compute self-intersection loss
model.volume.collision_loss(smpl_output, scan_point_cloud)  # Compute collisions with external geometries

📖 Detailed Usage

VolumetricSMPL extends the interface of the SMPL-X package by attaching a volumetric representation to the body model. This allows for:

  • Querying signed distance fields for arbitrary points
  • Accessing collision loss terms for optimization
  • Self-intersection detection and resolution
  • Efficient interaction modeling with 3D geometries

For further examples and use cases, check out our Applications repository.

📦 Pretrained Models

Pretrained models are automatically fetched and loaded when you first use VolumetricSMPL. They can also be found in the dev branch inside the ./models directory.

🔧 Requirements

  • Python 3.7+
  • PyTorch
  • PyTorch3D
  • SMPL-X

📄 Citation

If you find this work useful, please cite our paper:

@inproceedings{ICCV25:VolumetricSMPL,
   title={{VolumetricSMPL}: A Neural Volumetric Body Model for Efficient Interactions, Contacts, and Collisions},
   author={Mihajlovic, Marko and Zhang, Siwei and Li, Gen and Zhao, Kaifeng and M{\"u}ller, Lea and Tang, Siyu},
   booktitle={Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)},
   year={2025}
}

👥 Authors

Contact

For questions, please contact Marko Mihajlovic or raise an issue on GitHub.

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

[ICCV 2025 Highlight] VolumetricSMPL

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages