Skip to content

Architecture decisions

These records capture durable choices that preserve Axiolid’s format-neutral, pure-Rust, feature-tiered design. A decision record explains its context, boundary, alternatives, consequences, and follow-up risks; it is not a changelog.

Package names and paths in older accepted records describe the tree at the time of the decision. Status and amendment notes govern conflicts; ADR 0035 and the implemented crate map are authoritative for current ownership.

ADRDecision
0001IFC split and kernel contract
0002Hardware abstraction and backend selection
0003Pure-Rust mesh Boolean direction
0004Package layout and backend features
0009Layered geometry DAG and operation providers
0011Native accelerator backends out of tree
0012Scalar reference ownership
0013Deferred performance techniques
0014Adopt Boolmesh as mesh Boolean provider
0015Adopt Earcut for polygon triangulation
0016Predicate ownership and adopted implementations
0017Solid boolean semantics defined before implementation
0018Curve evaluation belongs to the scalar reference
0019Validate and refine NURBS on the scalar read path
0020Exact B-rep is the kernel model; tessellation is an output
0021Capability seams live in axiolid-kernel; retire axiolid-sweep — superseded by 0023
0022General NURBS algorithms are a kernel capability
0023Solid generation is an L2 crate, not part of the compiler
0024Exact B-rep results own analytic supports and trims
0025Certified NURBS queries use outward-rounded subdivision
0026Planar NURBS roots require interval existence proofs
0027Curve/surface roots require bounded transverse existence proofs
0028Affine surface/surface traces compose exact identities and certified boundary roots
0029Certified finite traces become split faces plus embedded curves
0030Surface closest-point certificates require bounded global branch-and-bound
0031Periodic curve behavior is an opt-in verified view
0032Periodic B-spline surfaces use an explicit cyclic schema
0033Mesh plane sections are an explicit approximation tier
0034Authored open profiles are graph declarations, not areas
0035Physical layout follows ownership; contracts remain provider-neutral
0036Minimal dependency closures are packages and machine-checked promises

Released under the Mozilla Public License 2.0.