Is there a tool for 3D Delaunay and Voronoi tessellations?

question
proposal

#1

I am currently migrating all my research software to Julia, and so far I am very pleased with the experience and the relative easiness in transporting code.
I have, however, reached a bottleneck cause I can’t seem to be able to find any tool to perform a simple non-constrained Delaunay triangulation in three dimensions. As I would really like not to write a ball-pivot algorithm function myself, I was wondering how is everyone doing this, as Delaunay is one of the most standard geometrical transformations used in 3-d modelling?


#2

There is a package for 2D Delaunay:

and JuliaPolyhedra has serveral packages for convex hull:

Currently I use marching cubes for meshing 3D pointclouds.


#3

Worst case, you can always ccall Qhull or use PyCall.jl with scipy.spatial.Voronoi (which then calls Qhull).


#4

There is already a Julia package wrapping Qhull:

(It works via Python; might be nice to eventually have a direct wrapper.)


#5

Qhull.jl only wraps the convex hull part of Qhull though.


#6

There’s a 4-year-old issue with a suggested implementation: https://github.com/JuliaGeometry/VoronoiDelaunay.jl/issues/8


#7

so currently the solution is to use TetGen.jl?


#8

Tetgen should work reasonably well, but we still haven’t added nice julia API.
We started to add stuff like parsing the tetgen generated files:


But it’s still incomplete. Any help / revival of the issues would be appreciated


#9

Please count me in, as this would be something I will need to implement anyways.


#10

As far as I understand, Qhull only evaluates the convex hull. Couldn’t find any reference to the Delaunay and/or Voronoi tessellations.