Skip to content

LIHPC-Computational-Geometry/evocube

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

80 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Evocube: a Genetic Labeling Framework for Polycube-Maps

Corentin Dumery, François Protais, Sébastien Mestrallet, Christophe Bourcier, Franck Ledoux

Watch the video presentation on the project page.

alt text

Abstract

Polycube-maps are used as base-complexes in various fields of computational geometry, including the generation of regular all-hexahedral meshes free of internal singularities. However, the strict alignment constraints behind polycube-based methods make their computation challenging for CAD models used in numerical simulation via Finite Element Method (FEM). We propose a novel approach based on an evolutionary algorithm to robustly compute polycube-maps in this context.

We address the labeling problem, which aims to precompute polycube alignment by assigning one of the base axes to each boundary face on the input. Previous research has described ways to initialize and improve a labeling via greedy local fixes. However, such algorithms lack robustness and often converge to inaccurate solutions for complex geometries. Our proposed framework alleviates this issue by embedding labeling operations in an evolutionary heuristic, defining fitness, crossover, and mutations in the context of labeling optimization. We evaluate our method on a thousand smooth and CAD meshes, showing Evocube converges to valid labelings on a wide range of shapes. The limitations of our method are also discussed thoroughly.

BUILD

Download

git clone https://github.com/LIHPC-Computational-Geometry/evocube.git
git submodule update --init --recursive

Compile

mkdir build
cd build
cmake ..
make -j4 evolabel 

Run

To compute a labeling on a triangle mesh and visualize it, simply run:

./evolabel path/to/boundary.obj

Paste for a quick test: ./evolabel ../data/moai.obj

To go further, advanced tools used in our paper are showcased in init_from_folder.cpp.

Test data

Useful repositories

Citation

@article{dumery:evocube,
   title = {{Evocube: a Genetic Labeling Framework for Polycube-Maps}},
   author = {Dumery, Corentin and Protais, Fran{\c c}ois and Mestrallet, S{\'e}bastien and Bourcier, Christophe and Ledoux, Franck},
   url = {https://doi.org/10.1111/cgf.14649},
   journal = {{Computer Graphics Forum}},
   publisher = {{Wiley}},
   year = {2022},
   month = Aug,
   doi = {10.1111/cgf.14649},
   volume = {41},
   number = {6},
   pages = {467--479},
} 

License

GPL3 license (FAQ)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages