  Triangle meshes remain the most popular data representation for surface
geometry. This ubiquitous representation is essentially a hybrid one that
decouples continuous vertex locations from the discrete topological
triangulation. Unfortunately, the combinatorial nature of the triangulation
prevents taking derivatives over the space of possible meshings of any given
surface. As a result, to date, mesh processing and optimization techniques have
been unable to truly take advantage of modular gradient descent components of
modern optimization frameworks. In this work, we present a differentiable
surface triangulation that enables optimization for any per-vertex or per-face
differentiable objective function over the space of underlying surface
triangulations. Our method builds on the result that any 2D triangulation can
be achieved by a suitably perturbed weighted Delaunay triangulation. We
translate this result into a computational algorithm by proposing a soft
relaxation of the classical weighted Delaunay triangulation and optimizing over
vertex weights and vertex locations. We extend the algorithm to 3D by
decomposing shapes into developable sets and differentiably meshing each set
with suitable boundary constraints. We demonstrate the efficacy of our method
on various planar and surface meshes on a range of difficult-to-optimize
objective functions. Our code can be found online:
https://github.com/mrakotosaon/diff-surface-triangulation.
