# VolumetricSMPL
## Description
VolumetricSMPL is an extension of the SMPL body model that incorporates a volumetric (signed distance field, SDF) representation. This enables seamless interaction with 3D geometries, such as scenes, objects, and other humans.
## Installation
Ensure that PyTorch and PyTorch3D are installed with GPU support. Then, install VolumetricSMPL via:
```bash
pip install VolumetricSMPL
```
# Usage
VolumetricSMPL extends the interface of the [SMPL-X package](https://github.com/vchoutas/smplx) by attaching a volumetric representation to the body model. This allows for querying signed distance fields for arbitrary points and accessing collision loss terms.
A more detailed tutorial is available [here](https://github.com/markomih/VolumetricSMPL_applications/), demonstrating how to integrate VolumetricSMPL into applications requiring human-scene, human-object, and human-human interactions.
# Example Usage
```python
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
```
# Pretrained Models
Pretrained models are automatically fetched and loaded. They can also be found in the `dev` branch inside the `./models` directory.
# Contact
For questions, please contact Marko Mihajlovic (_markomih@ethz.ch_) or open an issue on GitHub.
Raw data
{
"_id": null,
"home_page": "https://github.com/markomih/VolumetricSMPL",
"name": "VolumetricSMPL",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6.0",
"maintainer_email": null,
"keywords": null,
"author": "Marko Mihajlovic",
"author_email": "markomih@inf.ethz.ch",
"download_url": "https://files.pythonhosted.org/packages/43/a0/12e3f97bbdffe8c9b8385bc18d23af6401216b6743905e80a1d271928077/volumetricsmpl-1.0.4.tar.gz",
"platform": null,
"description": "# VolumetricSMPL\n\n## Description\nVolumetricSMPL is an extension of the SMPL body model that incorporates a volumetric (signed distance field, SDF) representation. This enables seamless interaction with 3D geometries, such as scenes, objects, and other humans.\n\n## Installation\nEnsure that PyTorch and PyTorch3D are installed with GPU support. Then, install VolumetricSMPL via:\n```bash\npip install VolumetricSMPL\n```\n\n# Usage\nVolumetricSMPL extends the interface of the [SMPL-X package](https://github.com/vchoutas/smplx) by attaching a volumetric representation to the body model. This allows for querying signed distance fields for arbitrary points and accessing collision loss terms.\n\nA more detailed tutorial is available [here](https://github.com/markomih/VolumetricSMPL_applications/), demonstrating how to integrate VolumetricSMPL into applications requiring human-scene, human-object, and human-human interactions.\n\n# Example Usage\n```python\nimport smplx\nfrom VolumetricSMPL import attach_volume\n\n# Create a SMPL body and extend it with volumetric functionalities (supports SMPL, SMPLH, and SMPL-X)\nmodel = smplx.create(**smpl_parameters)\nattach_volume(model)\n\n# Forward pass\nsmpl_output = model(**smpl_data) \n\n# Ensure valid SMPL variables (pose parameters, joints, and vertices)\nassert model.joint_mapper is None, \"VolumetricSMPL requires valid SMPL joints as input.\"\n\n# Access volumetric functionalities\nmodel.volume.query(scan_point_cloud) # Query SDF for given points\nmodel.volume.selfpen_loss(smpl_output) # Compute self-intersection loss\nmodel.volume.collision_loss(smpl_output, scan_point_cloud) # Compute collisions with external geometries\n```\n\n# Pretrained Models\nPretrained models are automatically fetched and loaded. They can also be found in the `dev` branch inside the `./models` directory.\n\n# Contact\nFor questions, please contact Marko Mihajlovic (_markomih@ethz.ch_) or open an issue on GitHub. \n",
"bugtrack_url": null,
"license": "MIT",
"summary": "VolumetricSMPL body model.",
"version": "1.0.4",
"project_urls": {
"Homepage": "https://github.com/markomih/VolumetricSMPL"
},
"split_keywords": [],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "c18adf274f938f314992812eae6470ed0ad945d12e92efc5719892f1547bd31a",
"md5": "0e5e3ef84c1d56d40e13d411cf484f2a",
"sha256": "aed868225c3605068b30e49c2e7c4975d8beebc6e904210339dedff2e74291a1"
},
"downloads": -1,
"filename": "VolumetricSMPL-1.0.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "0e5e3ef84c1d56d40e13d411cf484f2a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6.0",
"size": 22693,
"upload_time": "2025-07-20T11:34:11",
"upload_time_iso_8601": "2025-07-20T11:34:11.261767Z",
"url": "https://files.pythonhosted.org/packages/c1/8a/df274f938f314992812eae6470ed0ad945d12e92efc5719892f1547bd31a/VolumetricSMPL-1.0.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "43a012e3f97bbdffe8c9b8385bc18d23af6401216b6743905e80a1d271928077",
"md5": "c08bec5cead85c0d6027ca5b7022ff96",
"sha256": "5382b941eef854a2bb20d3a37ff17ce5991d9cf7350c7aa4f9374fac30128db0"
},
"downloads": -1,
"filename": "volumetricsmpl-1.0.4.tar.gz",
"has_sig": false,
"md5_digest": "c08bec5cead85c0d6027ca5b7022ff96",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6.0",
"size": 22806,
"upload_time": "2025-07-20T11:34:12",
"upload_time_iso_8601": "2025-07-20T11:34:12.875218Z",
"url": "https://files.pythonhosted.org/packages/43/a0/12e3f97bbdffe8c9b8385bc18d23af6401216b6743905e80a1d271928077/volumetricsmpl-1.0.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-20 11:34:12",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "markomih",
"github_project": "VolumetricSMPL",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "volumetricsmpl"
}