Skip to content

axiolid-heal ​

Explicit diagnosis and opt-in repair contracts for dirty geometry.

Latest release0.3.4 (2026-11-04)
crates.ioaxiolid-heal
Facadeaxiolid feature heal
Layeralgorithms (algorithm.repair)
API documentationrustdoc · docs.rs
Sourcecrates/algorithms/repair/heal/

Overview ​

Explicit diagnosis and opt-in repair of triangle meshes. diagnose reports non-manifold edges, inconsistent winding, boundary edges, duplicate vertices, degenerate triangles and exact self-intersections without touching the mesh. Repairs (weld vertices, drop degenerate elements, split T-junctions, unify orientation, orient outward) run only when a caller names them in a RepairPlan, and the RepairReport records what was applied, what was skipped and what happened to each attribute channel. There is no repair-everything mode, and no other operation heals implicitly.

Depends on ​

Changes ​

Latest release, 0.3.4 (2026-11-04):

Added ​

  • RepairAction::SplitTJunctions and split_t_junctions split triangle edges at vertices lying on them within tolerance, so a mesh closed up to T-junctions becomes a closed oriented cycle. It adds no vertex and reports the deviation it accepted and the triangles it declined to split (#416).

Fixed ​

  • self_intersections decides coplanar triangle pairs exactly at any finite coordinate scale: at about 1e154 and above an overlapping pair was reported as disjoint (and panicked in a debug build), because the orient2d it relies on overflowed. The fix is in axiolid-predicates (#404).

Full history: crates/algorithms/repair/heal/CHANGELOG.md

Released under the Mozilla Public License 2.0.