This repository is the official implementation of Surface-Only Dynamic Deformables using a Boundary Element Method with a few extensions.
-
Elastodynamics Convolution Quadrature BEM (CQBEM) [Schanz and Antes 1997]
The default BEM method for elastodynamics with high stability. Discussed fully in our paper.
-
Elastodynamics Dual Reciprocity BEM (DRBEM) [Agnantiaris et al. 1998]
An alternative elastodynamics BEM with no time history terms, but with more approximations and lower stability. Augmented with our new surface-only fictitious force terms similarly to CQBEM.
-
Elastostatics BEM [James and Pai 1999; Hahn and Wojtan 2016]
Elastostatics BEM with the null-space removal method [Hahn and Wojtan 2016].
-
Rigid body
Simple rigid body simulator.
The program is tested on a desktop machine running Ubuntu 20.04 with CUDA and an Apple Silicon Mac using gcc and clang compilers. Since Eigen is used with CUDA, the compilation may fail with NVCC with MS Visual Studio.
-
Eigen and libigl are included as git submodules. You can fetch them when you clone this repository by
git clone --recurse-submodules https://github.com/rsugimoto/SurfaceOnlyDeformables
-
OpenGL
-
OpenMP
-
Intel MKL
-
OpenCCL and METIS
Put the compiled OpenCCL binary and METIS binary under OpenCCL/Lib directory. You can get the complied binaries from the link above. When OpenCCL is not found, vertex reordering is disabled.
-
CUDA
CUDA is used to accelerate the precomputation process. When CUDA is not found, the program uses CPU for precomputation.
Compile this project using the standard cmake routine:
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make
You may want to change the CUDA architecture configuration in CMakeLists.txt before compilation.
We specify the options to the program using a json file. There are a few example scene configuration files in data directory, together with the required obj files. You can run the program as follows:
build/main data/bunny_friction.json
@article{Sugimoto:2022:BEM,
journal = {Computer Graphics Forum},
title = {{Surface-Only Dynamic Deformables using a Boundary Element Method}},
author = {Sugimoto, Ryusuke and Batty, Christopher and Hachisuka, Toshiya},
year = {2022},
publisher = {The Eurographics Association and John Wiley & Sons Ltd.},
ISSN = {1467-8659},
DOI = {10.1111/cgf.14625}
}