Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
README.md 16.02 KiB

kDet Tetrahedron Animation Benchmarks

This repository contains different animations of colliding tetrahedron meshes in varying resolutions. Each benchmark contains the tetrahedron data for each model once (since the topologies do not change) and the vertex data for each frame. The benchmarks were used to test the runtime of kDet for tetrahedral meshes.

Table of Contents

Animations

This repository contains the following animations:

Description Topology Changes? Recording Provided?
Bunny & Planck a stiff model of Max Planck's head falling onto a deformable Stanford bunny
Buddha & Armadillo a deformarble armadillo falling onto a non-deforming buddha model
Armadillos two deformable armadillo models moving towards and colliding with each other
Giraffes same as buddha & armadillo, but with two lower resolution giraffes; great for debugging & testing
Pass Through Armadillos an armadillo passing through another stationary armadillo along the x-axis (both armadillos are model resolution 2); great for debugging & testing

The animations were created with SOFA framework, using their FEM solver (for the scene files s. Scene Files).

Most animations are provided in varying resolutions, which are all included in the .zip-archives under animations/. After unzipping, the resolution is indicated with the final digit of the directory names (s. Model Resolutions). Furthermore, same-titled animations use the same scene configuration (s. Scene Files), but always turn out (slightly) different due to the solving process & different parameters for the FEM models.

The following chart shows the number of frames per animation as well as the selected young modulus (YM) & poisson ratio (PR) for each model:

#frames Model A Model B
YM PR YM PR
Bunny & Planck - 1 140 100,000 0.2 5,000 0.3
Bunny & Planck - 2 130 100,000 0.2 5,000 0.3
Bunny & Planck - 3 140 100,000 0.2 12,000 0.3
Bunny & Planck - 4 120 100,000 0.2 24,000 0.3
Buddha & Armadillo - 1 160 - - 10,000 0.3
Buddha & Armadillo - 2 160 - - 10,000 0.3
Buddha & Armadillo - 3 160 - - 10,000 0.3
Buddha & Armadillo - 4 160 - - 10,000 0.3
Armadillos - 1 130 300,000 0.2 300,000 0.2
Armadillos - 2 140 350,000 0.2 300,000 0.2
Armadillos - 3 210 400,000 0.2 400,000 0.2
Armadillos - 4 260 450,000 0.2 450,000 0.2
Giraffes 170 - - 20,000 0.4
Pass Through Armadillos 160 - - - -

Also .mp4 screen recordings of the animations are provided, though only in one model resolution (usually 3 or 4). Each scene is provided once with solid surface rendering and once with vertex only rendering. Check the media directory for the mp4-files.

Solid Surface Rendering Vertex Only Rendering

Models

The 3d models used for the animations can be found in models. The files are provided in tetgen-format (.node\.ele) and sometimes also in PLY-format (.ply), though only the former were used for the animations.

Most triangle models were taken from https://github.com/alecjacobson/common-3d-test-models which itself sourced the models from various sites. The following models were used in the animations:

Most models were rescaled, retriangulated, and finally meshed with tetgen with the p and q options (see p. 33 tetgen manual):

-p Tetrahedralizes a piecewise linear complex (PLC)
-q Refines mesh (to improve mesh quality)

Model Resolutions

Most models are provided in 4 resolutions, indicated by the final digit of the file name. The resolutions are as follows:

digit in filename #tetrahedra
1 ~10k
2 ~20-30k
3 ~44-57k
4 ~85-100k

Exact #tetrahedra

filename \ resolution 1 2 3 4
Armadillo 10,121 20,052 49,218 83,804
Happy Buddha 10,433 28,584 49,616 87,158
Max Planck 10,093 21,240 43,648 92,387
Stanford Bunny 10,308 29,274 56,924 99,201
filename resolution
Giraffe 1,904

Exact #vertices

filename \ resolution 1 2 3 4
Armadillo 3,051 5,912 15,233 25,159
Happy Buddha 3,380 8,647 15,046 26,450
Max Planck 3,079 6,290 12,673 26,507
Stanford Bunny 3,272 8,969 17,205 29,536
filename resolution
Giraffe 693

Scene Files

Animations featuring deformable objects were made with SOFA framework. Scene files for the animations can be found in sofa-scenes. If you like to run the animations, make sure the referenced model files are in a location that can be accessed and set the path in the scene files accordingly.

Notable Issue

Due to choice of parameters and scenes not checking for self collisions of the models (we could not get it to work) some of the frames turned out undesirable. For example, frame 109 of Armadillos-4.scn has the snout of the armadillos overly deform and penetrate through their own ear, before correcting back the next frame.

We tried to adjust parameters to minimize such occurences, but they still exist here and there.

kDet Benchmark Data

The benchmarks for tetrahedral kDet were run on a 64-Bit Windows 10 system with an Intel(R) Core(TM) i7-7800X with six cores and 3.50 GHz, 64 GB of RAM, and an NVIDIA GForce RTX 3080 with 10 GB of GPU memory. Frame times & further data can be found in kdet-benchmark-data/ in .csv-format (s. Included Data for each Method). The folder structure looks something like this:

kdet-benchmark-data
├── ...
├── <animation folder>
│   ├── ...
│   └── <benchmarking configuration>
│       ├── averaged.csv
│       └── raw
│           ├── 1.csv
│           ├── ...
│           └── 10.csv
└── ...

Each benchmarked animation has its own folder, e.g. armadillos-3, which then contains folders for each benchmarking configuration. Those contain the data for each run and as well as the averaged data for each frame.

The directory name for benchmarking configurations is built the following way:

<cd method>_<block size>_<overlap test>_<hash method>_<self cols?>_<#runs>.csv