This tool is being developed for a seminar paper on isosurface mesh extraction algorithms. The aim of the paper is to go over some of the most popular and novel algorithms and benchmark them on a large dataset. The tool allows for automated running of the datasets through the selected extraction techniques and measuring performance, accuracy and quality of the extracted meshes.
Inspired by NVIDIAs Flexicubes paper
At the time of writing this, the paper is not finished yet, however it already contains an overview of the benchmarking process, including descriptions of datasets and performance, quality and accuracy metrics used. All content of this draft is subject to change by I am attching it here for a more detailed description of the current approach.
CG_Seminar_Jakub_Nawrocki_Isosurface_Mesh_Extraction.pdf
Note about implementations: Currently none of the implementations are my own. Each of the selected techniques is benchmarked using an open source implementation. More details about the sources of these implementations can be found in the paper draft.
- Marching Cubes
- Reach For The Spheres
- Flexicubes
- Dual Neural Contouring
- Deep Marching Tetrahedra
The tool is not yet ready for distribution. I will update this section once it is.
pytorch 2.0.1
cuda 1.18
kaolin 0.15.0
pip install git+https://github.com/NVlabs/nvdiffrast/
torch_scatter
trimesh rtree
cython
h5py
scikit-learn
in extern/NDC:
python setup.py build_ext --inplace
torch_extensions expects pythonXY.lib in build/libs
torch_extensions requires msvc17-19