PositionBasedDynamics is a library for the physically-based simulation of rigid bodies, deformable solids and fluids.
C++
2,287
189 commits
updated Sep 1, 2026
This library supports the physically-based simulation of mechanical effects. In the last years position-based simulation methods have become popular in the graphics community. In contrast to classical simulation approaches these methods compute the position changes in each simulation step directly, based on the solution of a quasi-static problem. Therefore, position-based approaches are fast, stable and controllable which make them well-suited for use in interactive environments. However, these methods are generally not as accurate as force-based methods but still provide visual plausibility. Hence, the main application areas of position-based simulation are virtual reality, computer games and special effects in movies and commercials.
The PositionBasedDynamics library allows the position-based handling of many types of constraints in a physically-based simulation. The library uses CMake, Eigen, json, pybind, glfw, hapPLY and imgui (only for the demos). All external dependencies are included.
Furthermore we use our own library:
Author: Jan Bender, License: MIT
The documentation can be found here:
On our GitHub discussions page you can ask questions, discuss about simulation topics, and share ideas.
This project is based on CMake. Simply generate project, Makefiles, etc. using CMake and compile the project with the compiler of your choice. The code was tested with the following configurations:
Note: Please use a 64-bit target on a 64-bit operating system. 32-bit builds on a 64-bit OS are not supported.
For Windows and Linux targets there exists prebuilt python wheel files which can be installed using
pip install pypbd
These are available for different Python Versions. See also here: pyPBD. If you do not meet these conditions please refer to the build instructions and to the python binding Getting started guide.
The following videos were generated using the PositionBasedDynamics library:
![]() | ![]() |
|---|
377 followers · starred Dec 2018
4,141 followers · starred Jan 2018
528 followers · starred Apr 2025
43 followers · starred Oct 2023
PositionBasedDynamics is a library for the physically-based simulation of rigid bodies, deformable solids and fluids.
C++
2,287
189 commits
updated Sep 1, 2026
This library supports the physically-based simulation of mechanical effects. In the last years position-based simulation methods have become popular in the graphics community. In contrast to classical simulation approaches these methods compute the position changes in each simulation step directly, based on the solution of a quasi-static problem. Therefore, position-based approaches are fast, stable and controllable which make them well-suited for use in interactive environments. However, these methods are generally not as accurate as force-based methods but still provide visual plausibility. Hence, the main application areas of position-based simulation are virtual reality, computer games and special effects in movies and commercials.
The PositionBasedDynamics library allows the position-based handling of many types of constraints in a physically-based simulation. The library uses CMake, Eigen, json, pybind, glfw, hapPLY and imgui (only for the demos). All external dependencies are included.
Furthermore we use our own library:
Author: Jan Bender, License: MIT
The documentation can be found here:
On our GitHub discussions page you can ask questions, discuss about simulation topics, and share ideas.
This project is based on CMake. Simply generate project, Makefiles, etc. using CMake and compile the project with the compiler of your choice. The code was tested with the following configurations:
Note: Please use a 64-bit target on a 64-bit operating system. 32-bit builds on a 64-bit OS are not supported.
For Windows and Linux targets there exists prebuilt python wheel files which can be installed using
pip install pypbd
These are available for different Python Versions. See also here: pyPBD. If you do not meet these conditions please refer to the build instructions and to the python binding Getting started guide.
The following videos were generated using the PositionBasedDynamics library:
![]() | ![]() |
|---|
377 followers · starred Dec 2018
4,141 followers · starred Jan 2018
528 followers · starred Apr 2025
43 followers · starred Oct 2023