ADMM ⊇ Projective Dynamics: Fast Simulation of Hyperelastic Models with Dynamic Constraints
Matthew Overby, George E. Brown,
Jie Li and Rahul Narain
University of Minnesota
This paper is an extended journal submission of the original SCA paper. The new content improves the handling of contraints, primarily for contact and collision. The full code is not up yet, but materials from the TVCG paper will be added incrementally (samples/constraints/etc...)
If you'd like to see examples from our original SCA paper (that haven't been implemented in this repo yet), take a look at the other github repository.
This project contains submodules:
and has the dependences:
Todo:
We apply the alternating direction method of multipliers (ADMM) optimization algorithm to implicit time integration of elastic bodies, and show that the resulting method closely relates to the recently proposed projective dynamics algorithm. However, as ADMM is a general purpose optimization algorithm applicable to a broad range of objective functions, it permits the use of nonlinear constitutive models and hard constraints while retaining the speed, parallelizability, and robustness of projective dynamics. We further extend the algorithm to improve the handling of dynamically changing constraints such as sliding and contact, while maintaining the benefits of a constant, prefactored system matrix. We demonstrate the benefits of our algorithm on several examples that include cloth, collisions, and volumetric deformable bodies with nonlinear elasticity and skin sliding effects.
BibTex:
@article{overby2017admmpd,
author={Overby, Matthew and Brown, George E. and Li, Jie and Narain, Rahul},
journal={IEEE Transactions on Visualization and Computer Graphics},
title={ADMM $\supseteq$ Projective Dynamics: Fast Simulation of Hyperelastic Models with Dynamic Constraints},
year={2017},
volume={23},
number={10},
pages={2222-2234},
doi={10.1109/TVCG.2017.2730875},
ISSN={1077-2626},
month={Oct},
}
git submodule init
git submodule update
mkdir build
cd build
cmake ..
make -j
./samples/sca2016/beams
[press spacebar to start simulation]