complementary-dynamics-cpp
complementary-dynamics-cpp copied to clipboard
Complementary Dynamics cpp
Public c++ code release for the SIGGRAPH Asia 2020 paper Complementary Dynamics by Jiayi Eris Zhang, Seungbae Bang, David I.W. Levin and Alec Jacobson.
Dependency
Setup
Before running the code, you need to setup the following.
Compile static library libbartels with Bartels:
cd Bartles
mkdir build
cd build
cmake .. -Dbartels_USE_STATIC_LIBRARY=ON
make -j8
Compile static library libigl with libigl:
cd libigl
mkdir build
cd build
cmake .. -DLIBIGL_USE_STATIC_LIBRARY=ON
make -j8
Run
Run examples by ./complementary_dynamics ../examples/example/example.json (with example being one example in provided in examples folder). For instance, try running following command
./complementary_dynamics ../examples/sphere/sphere.json
all parameter for physical model is defined in examples\example.json. try tweaking parameter and see how it effects the result.
Here are examples running sphere in different physical model:
| ARAP | Neohookean | StVK | CoRotational |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
Here are exampels running sphere with different Young's modulus:
| YM = 5e6 | YM = 7e5 | YM = 2e5 | YM = 5e4 |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
Here are some more examples:
| frog | fish | elephant |
|---|---|---|
![]() |
![]() |
![]() |
Bibtex
@article{Zhang:CompDynamics:2020,
title = {Complementary Dynamics},
author = {Jiayi Eris Zhang and Seungbae Bang and David I.W. Levin and Alec Jacobson},
year = {2020},
journal = {ACM Transactions on Graphics},
}










