Methodology

What I check before a joint is published, what this site will not state, and how both rules are enforced by tests rather than by good intentions.

How the geometry is checked

Every joint is a TypeScript function that returns members, waste solids, layout lines and an assembly description. Before a joint ships, it has to survive five checks. I verify profile winding, so every closed outline runs the same way round and no extrusion comes out inside-out. I check prism stacks for watertightness: the solids a member is built from have to meet face to face with no sliver between them. I check waste volume for sanity; the material removed plus the material left has to add back up to the stock, within a tolerance that catches a mis-signed offset. I check interference boxes against the assembly's own insertion axis, so a bind the viewer draws is a bind the geometry actually has. And I build every joint again at both ends of every parameter's declared range, because the values that break a model are almost never the defaults.

Why there are no strength figures

A published joint-strength number comes from one species at one moisture content, cut to one set of tolerances, glued with one adhesive, and loaded in one direction by one rig. Change any of those and the number changes. Printing such a figure next to a 3D model implies it describes the joint rather than the test, and a reader who chooses a joint on that basis has been told something I can't stand behind.

So the rule is absolute: no forces, no pressures, no masses, no rankings. It is a build check, not a style guide. scripts/check-content.ts reads every joint's prose, every frontmatter string, every component source file, the shared roadmap data, and the copy the 3D engine itself speaks (phase descriptions, label text and every value a parameter's description can produce), and fails the build on a number carrying a force, pressure or mass unit, or on a ranking phrase it knows by shape: strongest or best directly in front of joint orjoints, and the "of all joints" form. It matches those spellings, not the intent behind them. What the site says instead is directional: this joint resists being pulled apart along this axis because of this shape; this one relies on glue across this surface; this one does nothing about racking on its own.

How sources are used

Fairham's Woodwork Joints (1920, public domain via Project Gutenberg) is the backbone for classification, terminology and layout convention. I use Wikipedia for aliases, regional spellings and the list of variant names; the construction claims on a page rest on the other sources it lists. Fine Woodworking and Canadian Woodworking supply proportion conventions: the slopes, ratios and thicknesses woodworkers actually use. Every source is cited and none is pasted. I write the prose from the geometry it describes, and where a convention comes from a source, the source is named on the page that uses it.

How the stills are made

The images on this site are not photographs or illustrations; they are screenshots of the same scene the viewer runs. A script drives a pinned Playwright Chromium with software ANGLE (SwiftShader, rather than whatever graphics card the machine has) at a fixed viewport, device pixel ratio and timeline position, and waits for the web fonts and three drawn frames before it takes the shot. The renderer string is asserted before the run and recorded in each joint's manifest. The results are committed to the repository, so a production build never runs a browser, and the same files are the reference images a visual-regression suite diffs every new render against.

How the design system is verified

The colour system is a document and a stylesheet, checked against each other. A unit test parses the shipped token file, recomputes the contrast ratio of every documented colour pair, and fails if any drops below its requirement or drifts from the figure the design document states. Three combinations are recorded as banned rather than fixed, and the same test asserts that they still fail, so a rule that exists for a measured reason cannot outlive the measurement. Browser tests then check the four paper planes, the joint plate, the label pill boundaries and every control surface the viewer uses, in both themes.

How this page changes

Corrections are dated. Every joint page carries a revision history at its foot, and a change that alters what a page claims gets a line there rather than a silent edit. If a model changes, I regenerate its stills and reference images in the same commit, so the pictures and the geometry cannot disagree. If this methodology changes, the change is described here.

Sources