{"id":20125605,"url":"https://github.com/ptrvilya/blendify","last_synced_at":"2025-08-29T16:41:05.651Z","repository":{"id":163452279,"uuid":"475003162","full_name":"ptrvilya/blendify","owner":"ptrvilya","description":"Lightweight Python framework that provides a high-level API for creating and rendering scenes with Blender. ","archived":false,"fork":false,"pushed_at":"2025-04-21T23:52:31.000Z","size":11671,"stargazers_count":811,"open_issues_count":2,"forks_count":20,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-04-22T00:22:50.178Z","etag":null,"topics":["blender","blender-python","bpy","rendering"],"latest_commit_sha":null,"homepage":"https://virtualhumans.mpi-inf.mpg.de/blendify/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ptrvilya.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-03-28T12:59:32.000Z","updated_at":"2025-04-21T23:51:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"89b502b0-594f-4ea9-99d8-50582ac4a7c1","html_url":"https://github.com/ptrvilya/blendify","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ptrvilya%2Fblendify","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ptrvilya%2Fblendify/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ptrvilya%2Fblendify/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ptrvilya%2Fblendify/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ptrvilya","download_url":"https://codeload.github.com/ptrvilya/blendify/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252734399,"owners_count":21796012,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blender","blender-python","bpy","rendering"],"created_at":"2024-11-13T20:01:25.648Z","updated_at":"2025-05-06T17:34:32.117Z","avatar_url":"https://github.com/ptrvilya.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"\u003cpicture\u003e\n  \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"./docs/_static/logo/blendify_logo_dark_bg.png\"\u003e\n  \u003cimg alt=\"blendify logo\" src=\"./docs/_static/logo/blendify_logo_light_bg.png\"\u003e\n\u003c/picture\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://arxiv.org/abs/2410.17858\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/arXiv-2410.17858-b31b1b\" alt=\"Paper PDF\"\u003e\n    \u003c/a\u003e\n    \u0026emsp;\n    \u003ca href=\"https://colab.research.google.com/github/ptrvilya/blendify/blob/main/examples/ipynb/blendify_colab_demo.ipynb\"\u003e\n        \u003cimg src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Google Colab\"\u003e\n    \u003c/a\u003e\n    \u0026emsp;  \n    \u003ca href=\"https://virtualhumans.mpi-inf.mpg.de/blendify/index.html\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/Project%20page-0e80c0\" alt=\"Project page\"/\u003e\n    \u003c/a\u003e\n    \u0026emsp;  \n    \u003ca href=\"https://pypi.org/project/blendify/\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/pypi%20package-2.0-0e80c0\" alt=\"pypi package\"/\u003e\n    \u003c/a\u003e   \n    \u0026emsp;\n    \u003ca href=\"https://www.gnu.org/licenses/gpl-3.0.html\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/License-GPL%20v3-yellow.svg\" alt=\"The GPL v3 License\"/\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n## Introduction\nBlendify is a lightweight Python framework that provides a high-level API for creating and rendering scenes with Blender. Developed with a focus on 3D computer vision visualization, Blendify simplifies access to selected Blender functions and objects.\n\nKey features of Blendify:\n\n1. **Simple interface:** Blendify provides a user-friendly interface for performing common visualization tasks without having to dive into the complicated Blender API.\n\n2. **Easy integration:** Blendify seamlessly integrates with development scripts, implementing\ncommonly used routines and functions:\n    * native support of point clouds, meshes, and primitives;\n    * support of per-vertex colors and textures;\n    * advanced shadows with shadow catcher objects;\n    * video rendering with smooth camera trajectories;\n    * support for common camera models;\n    * import and export of .blend files for deeper integration with Blender;\n    * per-face definition of materials for meshes;\n    * support for common rotation representations and look-at utility to automatically setup orientation.\n3. **Quick start:** Blendify is easy to get started with and does not require a standalone Blender installation. All you need to do is run `pip install blendify`.\n\n4. **Blendify works in Colab:** check out [our Google Colab demo](https://colab.research.google.com/github/ptrvilya/blendify/blob/main/examples/ipynb/blendify_colab_demo.ipynb)!\n\n## Installation instructions\nPlease note: **Blendify requires Python 3.10**\n### Install from pip (minimal package, no extra dependencies)\n```bash\npip install blendify\n```\n### Install the full package with optional requirements\n```bash\npip install blendify[all]\n```\nThe full package includes extra dependencies for utilities, examples and documentation.\n\n\n## Quick Start\n```python\n# Script to render cube\nfrom blendify import scene\nfrom blendify.materials import PrincipledBSDFMaterial\nfrom blendify.colors import UniformColors\n# Add light\nscene.lights.add_point(strength=1000, translation=(4, -2, 4))\n# Add camera\nscene.set_perspective_camera((512, 512), fov_x=0.7, rotation=(0.82, 0.42, 0.18, 0.34), translation=(5, -5, 5))\n# Create material\nmaterial = PrincipledBSDFMaterial()\n# Create color\ncolor = UniformColors((0.0, 1.0, 0.0))\n# Add cube mesh\nscene.renderables.add_cube_mesh(1.0, material, color)\n# Render scene\nscene.render(filepath=\"cube.png\")\n```\n\n\n## Examples\n**Note:** Examples require extra dependencies, make sure to install them with `pip install blendify[examples]`\n\nRunning examples 4 and 5 requires [PyTorch](https://pytorch.org/), running example 5 also requires SMPL model files, please refer to the installation instructions in \nSMPL-X [README](https://github.com/vchoutas/smplx#downloading-the-model).\n\n\u003ctable\u003e\n  \u003ctr align=\"center\"\u003e\n    \u003ctd\u003e\u003ca href=\"examples/01_cornell_box.py\"\u003e\u003cb\u003eCornell Box\u003c/b\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"examples/02_color_albedo_depth.py\"\u003e\u003cb\u003eColor, albedo and depth\u003c/b\u003e\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr align=\"center\"\u003e\n    \u003ctd\u003e\u003cimg src=\"./docs/_static/examples/01_cornell_box.jpg\" width=\"310px\"/\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"./docs/_static/examples/02_color_albedo_depth.jpg\" width=\"310px\"/\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr align=\"center\"\u003e\n    \u003ctd\u003e\u003ca href=\"examples/03_mesh_with_texture.py\"\u003e\u003cb\u003eMesh with texture\u003c/b\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"examples/04_camera_colored_point_cloud.py\"\u003e\u003cb\u003eCamera colored point cloud\u003c/b\u003e\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr align=\"center\"\u003e\n    \u003ctd\u003e\u003cimg src=\"./docs/_static/examples/03_mesh_with_texture.jpg\" width=\"310px\"/\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"./docs/_static/examples/04_camera_colored_point_cloud.gif\" width=\"310px\"/\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr align=\"center\"\u003e\n    \u003ctd\u003e\u003ca href=\"examples/05_smpl_movement.py\"\u003e\u003cb\u003eSMPL movement\u003c/b\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"examples/06_nurbs_trajectory.py\"\u003e\u003cb\u003eNURBS trajectory\u003c/b\u003e\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr align=\"center\"\u003e\n    \u003ctd\u003e\u003cimg src=\"./docs/_static/examples/05_smpl_movement.gif\" width=\"310px\"/\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"./docs/_static/examples/06_nurbs_trajectory.gif\" width=\"310px\"/\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr align=\"center\"\u003e\n    \u003ctd\u003e\u003ca href=\"examples/07_materials_and_shadow_catcher.py\"\u003e\u003cb\u003eVarious materials and shadow catcher\u003c/b\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"examples/08_per_face_material.py\"\u003e\u003cb\u003ePer-face material\u003c/b\u003e\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr align=\"center\"\u003e\n    \u003ctd\u003e\u003cimg src=\"./docs/_static/examples/07_materials_and_shadow_catcher.jpg\" width=\"310px\"/\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"./docs/_static/examples/08_per_face_material.jpg\" width=\"310px\"/\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\n## Changelog\nThe most recent version of blendify is **2.0.1**. The 2.0.0 update introduced some breaking changes that are\nsummarized alongside the overview of the new features in the [CHANGELOG](CHANGELOG.md) file.\n\n## Citation\nIf you use Blendify in your research, please cite:\n```bibtex\n@article{blendify2024,\n  title={Blendify -- Python rendering framework for Blender},\n  author={Guzov, Vladimir and Petrov, Ilya A and Pons-Moll, Gerard},\n  journal={arXiv preprint arXiv:2410.17858},\n  year={2024}\n}\n```\n\n\n## Works that use blendify\n* V. Lazova, E. Insafutdinov, G. Pons-Moll: [360-Degree Textures of People in Clothing from a Single Image](https://virtualhumans.mpi-inf.mpg.de/360tex/)\nin 3DV'19\n* B.L. Bhatnagar, X. Xie, **I. Petrov**, C. Sminchisescu, C. Theobalt, G. Pons-Moll: \n  [BEHAVE: Dataset and Method for Tracking Human Object Interactions](https://virtualhumans.mpi-inf.mpg.de/behave/), in CVPR'22\n* X. Zhang, B.L. Bhatnagar, **V. Guzov**, S. Starke, G. Pons-Moll: \n  [COUCH: Towards Controllable Human-Chair Interactions](https://virtualhumans.mpi-inf.mpg.de/couch/), in ECCV'22\n* G. Tiwari, D. Antic, J. E. Lenssen, N. Sarafianos, T. Tung, G. Pons-Moll: [Pose-NDF: \nModeling Human Pose Manifolds with Neural Distance Fields](https://virtualhumans.mpi-inf.mpg.de/posendf/), in ECCV'22\n* **I. Petrov**, R. Marin, J. Chibane, G. Pons-Moll: [Object pop-up: Can we infer 3D objects and their poses from human interactions alone?](https://virtualhumans.mpi-inf.mpg.de/object_popup/), in CVPR'23\n\n## Contributors\nBlendify is written and maintained by [Vladimir Guzov](https://github.com/vguzov) and [Ilya Petrov](https://github.com/ptrvilya).\n\n\n## Acknowledgments\nWe thank Verica Lazova for providing her Blender rendering scripts, \n[István Sarandi](https://github.com/isarandi) for his suggestions and help in implementing new features, \nand [Riccardo Marin](https://github.com/riccardomarin) for his helpful suggestions and feedback.\nOur code for processing point clouds is mostly based on the amazing [Blender-Photogrammetry-Importer][BPI] addon.\n\n\n## License\nThe code is released under the [GNU General Public License v3][GNU GPL v3].\n\nThe Python logo is trademark of Python Software Foundation.\nThe Blender logo is a registered property of Blender Foundation.\n[Blender-Photogrammetry-Importer][BPI] is distributed under the [MIT License][BPI license]. \nBlender is released under the [GNU General Public License v3][GNU GPL v3]. \n\n[GNU GPL v3]: https://www.gnu.org/licenses/gpl-3.0.html\n[BPI]: https://github.com/SBCV/Blender-Addon-Photogrammetry-Importer\n[BPI license]: https://github.com/SBCV/Blender-Addon-Photogrammetry-Importer/blob/master/README.md\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fptrvilya%2Fblendify","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fptrvilya%2Fblendify","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fptrvilya%2Fblendify/lists"}