axiolid-model
Format-neutral geometry item tree. The currency between a format reader and a kernel.
| Latest release | 0.3.19 (2026-11-13) |
| crates.io | axiolid-model |
| Facade | axiolid feature model |
| Layer | representations (representation.graph) |
| API documentation | rustdoc · docs.rs |
| Source | crates/representations/modeling/graph/ |
Overview
The format-neutral geometry graph that source adapters lower into and kernels consume: an immutable, append-only DAG of typed nodes preserving exact curves, surfaces, profiles, primitives, topology, curve and surface relations, CSG instructions and instancing, alongside source meshes. Handles are branded per graph and references must point to earlier nodes of the right family, so cycles, dangling references and cross-graph handles cannot be built. It evaluates, tessellates and compiles nothing, and keeps source identifiers outside the graph.
The optional serde feature (off by default) adds the graph's versioned wire format (ADR 0085): GeometryGraph::to_json, from_json, to_cbor and from_cbor, and the wire module. Every payload names its format and MAJOR.MINOR version; additions are minor versions and anything else is major. A reader refuses by name a version it does not read, a kind, variant or field it does not know, a non-finite number and a graph that fails the builder's validation, and never returns part of a payload.
Features
Default: none.
| Feature | Enables |
|---|---|
serde | serde, serde_json, ciborium, axiolid-core/serde, axiolid-mesh/serde, axiolid-profile/serde, axiolid-primitive/serde, axiolid-curve/serde, axiolid-surface/serde, axiolid-topology/serde |
Depends on
axiolid-coreaxiolid-curveaxiolid-meshaxiolid-primitiveaxiolid-profileaxiolid-surfaceaxiolid-topology
Changes
Latest release, 0.3.19 (2026-11-13):
Changed
SurfaceRelation::RevolutionandLinearExtrusiondocument their parameterisation: a revolution isO + R_a(u) (c(v) - O)withuthe right-handed angle about the normalised axis andvthe swept curve's own parameter, an extrusion isc(u) + v dwithvin units of the direction's length (#411, ADR 0103).
Full history: crates/representations/modeling/graph/CHANGELOG.md