Discrete Voronoi Diagram on the Buny mesh

Purpose and context

The aim of this work is to provide a fast and efficient mesh coarsening/resampling facility for triangular meshes. It can be applied to very complex meshes (several millions of vertices). This approach is based on the clustering of the input mesh elements (vertices or triangles) within a variational framework


The proposed clustering approach generates partitions which are similar to centroidal Voronoi regions, where each region has the same size1. As a consequence, the sampling is very uniform on the surface, and the resulting triangulation has elements with good aspect ratios.

Curvature adaptivity is possible by introducing curvature measures within the clustering scheme (see figure 2). Note that this approach is also useful for remeshing applications (when the user wants the output mesh to have an arbitrary number of vertices2. This approach was extended for anisotropic meshing, to provide approximation-effective meshes 3, and to guarantee watertight output meshes 4.


The following anmation shows the clustering evolution during minimization, on the Stanford Bunny. Initial seeds have been concentrated on one side on purpose, and the result shows that our approach is robust to initialization.

Clustering evolution
Clustering evolution
Output simplification
Output simplification

Source code

ACVD Source code is available on github

This code is distributed under the CECILL-B license (BSD-compatible) © CNRS, INSA-Lyon, UCBL, INSERM.