The idea of the algorithm goes back to the work by Persson and Streng, 2004, who suggested to consider triangle or tet mesh as elastic network where each Delaunay edge is the elastic strut which resist compression but does not resists dilation. As a result of vertex repulsion and Delaunay edge reconnection 3d mesh expands and fills the implicit domain very similar to construction foam. In original paper by Persson and Streng mesh generator is just one page of the Matlab code. In 2008 in the paper by Belousova (Kudryavtseva) and Garanzha it was suggested to control this elastic network via special sharpening force which was suggested for visualization of implicit surface by A. Belyaev in 2002. Using this ideas, A.I. Belokrys-Fedotov developed C++ code which simultaneously recovers the shape of domain, constructs surface mesh with sharp edges and builds 3d Delaunay mesh without slivers.

The current version of the algorithm is the research one. It is much less efficient compared to well known tet meshing algorithms, say implemented in CGAL. However, to our knowledge, its unique feature is the possibility to construct 3d Delaunay meshes directly using analytically defined implicit domains with sharp edge recovery without prior prescription of sharp boundary edges.

Algorithm behaviour is illustrated using test case from the paper by A.Belayev with co-authors, 2002. Initial mesh is shown which does not fill the domain. Intermediate stage with a few unrecovered edge fragment is shown. Next figure is fully recovered domain boundary but 3d tet mesh contain slivers. The last figure shows that sliver elimination does not destroy sharp boundary edges. Note that output is precisely the Delaunay mesh.

It is shown how adding forces responsible for reducing tetrahedral shape distortion eliminates flat tetrahedra. Sharp features are kept intact and resulting mesh is still Delaunay one.

Animation shows how sharp edges eventually appear on the boundary during elastic network self-organization.

Resulting tetrahedral mesh quality is high enough. It can be used to construct approximately dual polyhedral mesh. Note the the body is defined analitically as a boolean combination of primitives.

Объединяя призматический генератор с тераэдральным, получаем генератор гибридных сеток.

На основе такой сетки строится гибридная сетка из полиэдров со слоем полигональных призм около тела.