VOLMAP: a Large Scale Benchmark for Volume Mappings to Simple Base Domains

VOLMAP teaser

VOLMAP is a large-scale benchmark aimed to support ongoing research in volume mapping algorithms. The dataset contains 4.7K tetrahedral meshes, whose boundary vertices are mapped to a variety of simple domains, either convex or star-shaped. This data constitutes the input for candidate algorithms, which are then required to position interior vertices in the domain to obtain a volume map. Overall, this yields more than 22K alternative test cases. VOLMAP also comprises tools to process this data, analyze the resulting maps, and extend the dataset with new meshes, boundary maps and base domains.

Dataset and tools are described in details in the article:

VOLMAP: a Large Scale Benchmark for Volume Mappings to Simple Base Domains
Computer Graphics Forum (SGP 2023)
Gianmarco Cherchi, Marco Livesu

New: VOLMAP now also contains results obtained with some state-of-the-art volume mapping algorithms and new utilities to manage meshes with rational numbers. Check the "Results" tab!

The table below summmarizes the structure of the dataset, which consists of approximately 10 Gigabytes of compressed files.

Group Meshes Cube Tet Pyramid Octa Star Sphere Polycube Test pairs
G1 25 25 24 25 24 25 - - 123
G2 67 67 66 66 67 67 - - 333
G3 1942 1932 1919 1926 1934 1924 - - 9635
G4 2633 2607 2366 2460 2477 2611 - - 12521
G5 26 - - - - - 26 - 26
G6 4 - - - - - - 4 4
TOT 4697 4631 4375 4477 4502 4627 26 4 22642

To simplify download operations we have split the dataset into separated chunks, grouped w.r.t. the origin of the input models and the domain onto which the surface was mapped. Check Section 3 in the paper for more details about mesh sources, folder organization and file structures.

Download links:

[G1.zip] [G1_cube.zip] [G1_tet.zip] [G1_pyr.zip] [G1_octa.zip] [G1_star.zip]

[G2.zip] [G2_cube.zip] [G2_tet.zip] [G2_pyr.zip] [G2_octa.zip] [G2_star.zip]

[G3.zip] [G3_cube.zip] [G3_tet.zip] [G3_pyr.zip] [G3_octa.zip] [G3_star.zip]

[G4.zip] [G4_cube.zip] [G4_tet.zip] [G4_pyr.zip] [G4_octa.zip] [G4_star.zip]

[G5.zip] [G5_sphere.zip]

[G6.zip] [G6_pc.zip]

We tested a subset of the VOLMAP dataset with two of the most recent state-of-the-art algorithms: Expansion Cones (EC) and Galaxy Maps (GM). All experiments have been executed by considering the reference implementation released by the authors, which we tested on alternative input data that was not considered in the original articles. For more details refer to our new article:

To What Extent Are Existing Volume Mapping Algorithms Practically Useful?
Proceedings of Smart Tools and Applications in Graphics (STAG 2024)
Federico Meloni, Gianmarco Cherchi, Riccardo Scateni and Marco Livesu

To simplify download operations we have split the dataset into separated chunks, grouped w.r.t. the algoritm we used to compute maps. Check Section 3 in the paper for more details about the folder organization and file structures.

Download links:

[G1_EC.zip] [G1_GM.zip]

[G2_EC.zip] [G2_GM.zip]

[G5_EC.zip] [G5_GM.zip]

[G6_EC.zip] [G6_GM.zip]

Auxiliary code

VOLMAP includes a variety of facilities to ease the processing of the dataset, help assessing the quality of its results and also extending it with additional models, maps and base domains (see Section 5.1 in the paper for more details). Each tool described below has its own CMakeLists.txt file, and only depends on Cinolib. Compiling each tool (unless otherwise described) simply consists of opening a terminal inside the tool folder and typing:

mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -Dcinolib_DIR=<absolute-path-to-cinolib>
make

Tetmesh checks

This tool ensures that a tetrahedral mesh model.mesh satisfies the VOLMAP requirements to compute the surface mapping: single connected component, genus zero, well structured surface (i.e., manifold, closed and self-intersections free). The tool also checks the mesh tetrahedra according to the VOLMAP convention (see Section 5.1 in the paper). If the input mesh follows an opposite convention, this tool flips all its elements, saving a new file called model_inv.mesh. The syntax for using it is:

./tetmesh_checks <filename.mesh>

For batch processing, check results can be appended to .csv log file instead of printing them on screen. In this case the syntax becomes:

./tetmesh_checks <filename.mesh> <log_file.csv>

Surface mapping

This tool implements the graph embedding strategy described in Section 5 in the paper, mapping an input tetrahedral mesh onto one of the VOLMAP base domains. The syntax for using it is:

./surface_mapping_check <domain> <filename.mesh> <srf_mapping.txt>

where the <domain> param can be CUBE, PYRAMID, TETRAHEDRON, OCTAHEDRON or STAR. The computed per-vertex boundary conditions are stored in the <srf_mapping.txt> file, with the structure described in paragraph "File Formats" in Section 3 in the paper. After using this tool, use the Surface mapping check tool to verify that the generated mapping fulfills all the correctness requirements described in the paper.

The tool can also be used to map on simple custom domains not included in VOLMAP. To do so, users can provide an input file describing the abstract graph and its embedding. Here you can find the instructions about how to construct this file.

Surface mapping check (only with floating point numbers)

This tool takes as input the original tetmesh and its boundary mapping computed with the previous tool and checks if it fulfills all the correctness requirements described in the paper (see "Sanity check" paragraph at the end of Section 5 for more details). The syntax for using it is:

./surface_mapping_check <filename.mesh> <srf_mapping.txt>

[NEW!] Volume mapping check (with floating point and rational numbers)

This tool allows you to check if a volume mapping is valid, which means there are not non-valid elements and the volume sign of each element is preserved. The models are stored in .MESH format, while the rationals coordinates (if available) are stored in .TXT format, where each line is a rational number and the coordinates of each vertex are represented by 3 lines, respectively for x, y and z.
The standard syntax checks the volume mapping with rationals coordinates:

./volume_mapping_check <input.mesh> <output.mesh> <input.txt> <output.txt>

If you do not have the input.txt file, which contains the input rationals coordinates, you can check the validity of the map between input floating point and output rational numbers:

./volume_mapping_check <input.mesh> <output.mesh>

The tool can also be used to check the volume mapping with floating point coordinates:

./volume_mapping_check <input.mesh> <output.mesh>

Metrics

This tool inputs the original tetmesh and its volume mapping computed with a candidate algorithm, and returns information regarding its validity and geometric distortion as described in the paper (see "Metrics" paragraph in Section 5 for more details). The syntax for using it is:

./metrics <tetmesh.mesh> <vol_mapping.mesh>

Since some of the distortion metrics are unbounded and may tend to infinite in case of quasi degenerate elements, imposing an upper bound on the maximum value may be required. By default, we set the max value to 100, but you can change it with the following syntax:

./metrics <tetmesh.mesh> <vol_mapping.mesh> <upper_bound>

Finally, it is possible to specify a .csv log file in which to append the measured values. In this case, the syntax becomes:

./metrics <tetmesh.mesh> <vol_mapping.mesh> <upper_bound> <log_file.csv>

Map visualization

This tool can be used to visually inspect a volume mapping, plotting its inverted elements and color-coding tetrahdera according to some geometric distortion. All metrics described in the paper are supported and can be selected through the user interface (see "Map visualization" paragraph in Section 5 for more details). The syntax for using it is:

./map_visualization <tetmesh.mesh> <vol_mapping.mesh>

Tetmeshing

This tool takes as input a surface mesh in .OBJ format and turn it into a tetrahedral mesh in .MESH format using Tetgen. After using this tool, use the Tetmesh check tool to verify that the generated mesh satisfies the VOLMAP requirements. The syntax for using it is:

./tetmesh_generation <srf_mesh.obj>

Mesh format converter

This tool allows you to convert a model from .MESH format to .VTK format and vice versa. Before compiling it, you need to install the VTK library. The syntax for using it is one of the following:

./mesh_convertes <filename.mesh> //OR
./mesh_convertes <filename.vtk>

[NEW!] Load and save maps with rational numbers

This tool allows you to load and save maps with rationals numbers. The model is stored in .MESH format, while the rationals coordinates are stored in .TXT format, where each line is a rational number and the coordinates of each vertex are represented by 3 lines, respectively for x, y and z. The tool is intended to be used as template for other tools that need to manage maps with rational numbers.
The syntax for using it is:

./rationals_io <model.mesh> <rationals.txt>

Python scripts

In this folder, you can find several Python scripts to execute the aforementioned tools on large collections of shapes or to launch experiments with a given volume mapping algorithm. The description of each script is given as a comment at the top of each file.

External contributors

Practitioners in volume mesh processing may extend the VOLMAP dataset either by providing additional meshes and their associated surface mappings, computed using our software tools, or can also provide additional mappings to alternative base domains. In this page we explain how to exploit our software tools to define mappings to alternative base domains currently not included in VOLMAP. Alternatively, users can define their own mappings with other facilities and then share their results with us and the rest of the community. Furthermore, you can add the volume maps computed with your own algorithm!

To submit an extension, please send an email to g.cherchi[at]unica.it or marco.livesu[at]gmail.com, describing in detail the type of extension and providing links to the data to download. We always suggest to verify the correctness of a given surface/volume map with our tools. Nevertheless, we will always double-check he correctness of the new data prior to officially include it in VOLMAP.

Cite us

If you use our data or code to develop and test your volume mapping algorithms, please consider citing our paper using the following BibTeX entry:

@article{Volmap2023,
title = {VOLMAP: a Large Scale Benchmark for Volume Mappings to Simple Base Domains},
author = {Cherchi, Gianmarco and Livesu, Marco},
journal = {Computer Graphics Forum},
year = {2023},
volume = {42},
number = {5},
issn = {1467-8659},
doi = {10.1111/cgf.14915}
}

Furthermore, if you use the results in VOLMAP to make comparisons in your papers, or if you use our utilities for rational numbers, please consider citing our paper using the following BibTeX entry:

@inproceedings{MCSL2024,
title = {To What Extent Are Existing Volume Mapping Algorithms Practically Useful?},
author = {Meloni, Federico and Cherchi, Gianmarco and Scateni, Riccardo and Livesu, Marco},
booktitle = {Smart Tools and Applications in Graphics},
year = {2024},
publisher = {The Eurographics Association},
issn = {},
doi = {}
}