Skip to content

axiolid-tetrahedralize ​

Exact 3D Delaunay tetrahedralization with symbolic perturbation.

Latest release0.1.0 (2026-10-02)
crates.ioaxiolid-tetrahedralize
Layeralgorithms (algorithm.discrete)
API documentationrustdoc · docs.rs
Sourcecrates/algorithms/discrete/tetrahedralize/

Overview ​

Exact 3D Delaunay tetrahedralization. Delaunay3 inserts points one at a time (Bowyer-Watson, located by a visibility walk) and keeps the convex hull with an infinite vertex. Every orientation and in-sphere decision is an exact sign from axiolid-predicates, and ties -- cospherical points, points in the plane of a hull face -- are broken by a symbolic perturbation that depends only on the coordinates, so a point set has one result whatever the insertion order. Duplicates are merged; inputs spanning fewer than three dimensions are refused. Constraints (input segments and faces) are not recovered.

Depends on ​

Changes ​

Latest release, 0.1.0 (2026-10-02):

Added ​

  • Delaunay3 (#126): exact incremental 3D Delaunay tetrahedralization. Bowyer-Watson insertion in Hilbert-curve order, located by a stochastic visibility walk, with an infinite vertex for the convex hull. from_points, insert, tetrahedra (positively oriented, with adjacency), hull_triangles (outward), vertex_of, dimension. orient3d and insphere decide every step exactly; cospherical points, points in the plane of a hull face (decided by in_diametral_sphere) and other ties are broken by a symbolic perturbation of the lifted points, so the result is unique for a point set whatever the insertion order. Exact duplicates are merged (Insertion::Duplicate). Refused by name (Delaunay3Error): fewer than three dimensions, non-finite coordinates, and non-zero coordinates outside [2^-100, 2^100].

Full history: crates/algorithms/discrete/tetrahedralize/CHANGELOG.md

Released under the Mozilla Public License 2.0.