ADR 0004 — r = 0 at an interior vertex is an error, not a mitre

Status: accepted (2026-08-21)

Context

It is tempting to let a fillet radius of zero mean “sharp mitred corner”, the way a plumbing elbow is mitred. Two independent design proposals specified it.

Decision

r = 0 at an interior vertex is an ERROR, naming the vertex. There is no G0 case in the IR; invariant SPINE-3 requires tangent continuity everywhere.

Why

Both proposals’ reviewers built the specified representation and rendered it. One produced a silent non-manifold with no assert; the other produced a 40 mm skew funnel where a straight leg should have been, because an orthonormal frame cannot place a cross-section on a bisector plane.

A working mitre needs a non-orthonormal shear matrix plus two coincident stations, which violates STATION-2 (frames are orthonormal, no scale or shear) and STATION-1 (no coincident stations). Legalising a construct the backend cannot render reintroduces exactly the silent-non-manifold class this rewrite exists to eliminate.

Consequences

A genuinely mitred joint is expressible later as a junction — two runs meeting at a declared joint — not as a path feature. That is the right layer for it anyway, because a real mitred elbow has a weld or a moulded fillet at the corner, which is junction geometry.


This site uses Just the Docs, a documentation theme for Jekyll.