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

 
 
 

Contributors

Languages