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