Interactive And Robust Mesh Booleans

A C++ tool to compute Boolean operations between triangular meshes with robustness guarantees, capable of operating at interactive frame rates on meshes with up to 200K triangles.

Abstract

Boolean operations are among the most used paradigms to create and edit digital shapes. Despite being conceptually simple, the computation of mesh Booleans is notoriously challenging. Main issues come from numerical approximations that make the detection and processing of intersection points inconsistent and unreliable, exposing implementations based on floating point arithmetic to many kinds of degeneracy and failure. Numerical methods based on rational numbers or exact geometric predicates have the needed robustness guarantees, that are achieved at the cost of increased computation times that, as of today, has always restricted the use of robust mesh Booleans to offline applications. We introduce an algorithm for Boolean operations with robustness guarantees that is capable of operating at interactive frame rates on meshes with up to 200K triangles. We evaluate our tool thoroughly, considering not only interactive applications but also batch processing of large collections of meshes, processing of huge meshes containing millions of elements and variadic Booleans of hundreds of shapes altogether. In all these experiments, we consistently outperform prior robust floating point methods by at least one order of magnitude.

The official project pages is available at https://github.com/gcherchi/InteractiveAndRobustMeshBooleans.

Gianmarco Cherchi
Gianmarco Cherchi
Assistant Professor

My research interests include Geometry Processing and Computer Graphics.