Home

Awesome

elasty

macOS Ubuntu License

A research-oriented elastic body simulator

Algorithms

Frameworks

Update Schemes for PBD/XPBD

Constraints for PBD/XPBD

Continuum Materials for FEM Simulation

Additional Features

Dependencies

Core Library

Demos

Tests

Prerequisites

macOS

brew install eigen imath

Ubuntu 20.04

apt install libeigen3-dev

and manually install Imath 3.0.2+.

Windows

(not tested yet)

Build

git clone https://github.com/yuki-koyama/elasty.git --recursive
mkdir build
cd build
cmake ../elasty
make

Gallery

PBD vs. XPBD

The constraint stiffnesses in PBD [Müller+07] are dependent on the number of iterations for constraint solving. As the number of iterations increases, the constraints become infinitely stiff regardless of the stiffness parameters. This issue makes the parameter tuning difficult.

XPBD [Macklin+16] resolves this issue. As the number of iterations increases, the constraint stiffnesses converge to some (non-infinitely-stiff) states in accordance with the compliance parameters. This property makes the parameter tuning easier and more consistent.

These simulated results were generated by examples/pbd-xpbd-comparison/main.cpp.

Wind Effects for Cloth Simulation

This library supports wind effects for cloth simulation. This library calculates aerodynamic "drag" and "lift" forces based on the model used in Disney's Frozen [Wilson+14].

This simulated result was generated by examples/aerodynamics/main.cpp.

Finite Element Methods

This library offers some utility functions to implement the finite element method (FEM) and simple examples of such implementations.

These simulated results were generated by examples/variational-implicit-2d/main.cpp and examples/variational-implicit-3d/main.cpp, respectively, which use the variational implicit Euler method [Martin+11] and the co-rotational model.

License

MIT License

Contributing

Issue reports and pull requests are highly welcomed.

References