Skip to content

axiolid-mesh-boolean-boolmesh ​

boolmesh-backed MeshBoolean provider.

Latest release0.3.2 (2026-09-28)
crates.ioaxiolid-mesh-boolean-boolmesh
Facadeaxiolid feature portable-provider
Layerproviders (provider.mesh)
API documentationrustdoc · docs.rs
Sourcecrates/providers/mesh/boolmesh/

Overview ​

A MeshBoolean provider for closed, outward-oriented triangle meshes: union, intersection, difference, and symmetric difference composed from those. The algorithm is absorbed from the boolmesh crate into a private module (ADR 0014, ADR 0047); this crate adds the conversion, an orientation gate on every input, result checks, and batch overrides (subtract_many fuses disjoint cutters, union_many reduces as a balanced tree). It also offers subtract_boxes_analytic, an opt-in closed-form path for axis-aligned box cutters in an axis-aligned box. Register it with axiolid-dispatch or call it directly.

Design notes ​

  • Results carry attribute channels but no normals; derive normals from the topology you want.
  • The general path is Determinism::Topological. Use the analytic box path when you need byte-identical output across processes.
  • The parallel feature threads inside one solve and is off by default; parallel-batch runs independent union_many pairs concurrently with output identical to the sequential path.

Features ​

Default: none.

FeatureEnables
parallelrayon
parallel-batchrayon

Depends on ​

Changes ​

Latest release, 0.3.2 (2026-09-28):

Changed ​

  • Behaviour change: a refusal inside the solve (an odd edge-point count in pair_up, #101) is reported as GeomError::BackendContractViolation naming boolmesh, not Degenerate. The operands passed every input gate, so the failure is this provider's defect and no longer reads as the caller's. tests/solve_failure.rs pins it on a grid union that still reaches the refusal (#203).
  • The crates.io page is this crate's own README.md, with links to its API documentation, its reference page and the source (ADR 0078).

Full history: crates/providers/mesh/boolmesh/CHANGELOG.md

Released under the Mozilla Public License 2.0.