https://github.com/q-minh/position-based-dynamics
eXtended Position based dynamics implementation with soft body virtual cutting
https://github.com/q-minh/position-based-dynamics
cloth cutting-methods dynamics eigen fem libigl pbd position-based-dynamics simulation soft-bodies xpbd
Last synced: 5 months ago
JSON representation
eXtended Position based dynamics implementation with soft body virtual cutting
- Host: GitHub
- URL: https://github.com/q-minh/position-based-dynamics
- Owner: Q-Minh
- License: bsl-1.0
- Created: 2021-02-14T18:08:24.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2022-11-02T16:29:36.000Z (about 3 years ago)
- Last Synced: 2025-06-08T08:07:11.997Z (7 months ago)
- Topics: cloth, cutting-methods, dynamics, eigen, fem, libigl, pbd, position-based-dynamics, simulation, soft-bodies, xpbd
- Language: C++
- Homepage:
- Size: 72.1 MB
- Stars: 74
- Watchers: 2
- Forks: 12
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Soft Body Simulation using eXtended Position Based Dynamics
## Overview
Academic prototyping project for soft body simulation using XPBD.
Different constraint types will be implemented
using [Eigen](https://eigen.tuxfamily.org/index.php?title=Main_Page) for matrix computations and [libigl](https://libigl.github.io/) for visualization and
user interaction.
### Short term roadmap
#### Constraint types
- edge length
- tetrahedral volume
- fem based



## Dependencies
- C++17 compiler
- [libigl](https://libigl.github.io/)
[libigl](https://libigl.github.io/) is included in the project using CMake's FetchContent and pulls in [Eigen](https://eigen.tuxfamily.org/index.php?title=Main_Page), [glfw](https://www.glfw.org/), [Dear ImGui](https://github.com/ocornut/imgui) and [TetGen](http://wias-berlin.de/software/index.jsp?id=TetGen&lang=1) with it.
## Building
```
# Download repository
$ git clone https://github.com/Q-Minh/position-based-dynamics
$ cd position-based-dynamics
# Configure and build project
$ cmake -S . -B build
$ cmake --build build --target pbd --config Release
# Run the program
$ ./build/Release/pbd.exe
```