Unreason3D

Unreason's Lineage

Nothing comes from nowhere, especially Unreason. This code is bespoke. The maths are half a century old, well published, and nothing Claude and I worked out on our own.

The book

A hardback copy of The NURBS Book by Les Piegl and Wayne Tiller, held up outdoors against foliage.
Piegl & Tiller, The NURBS Book. Springer.

Almost everything the curve and surface kernel does comes out of this one book — basis functions, knots, degree elevation, interpolation, point inversion, the surface derivatives.

I am not a mathematician. I cannot read a derivation and tell you whether it is right. What I can do, what I did do, is insist that every function Claude wrote into the code names its source.

A bibliography

The main sources. Individual modules name others beside the function they belong to.

Curves and surfaces

Surface-surface intersection — the part P&T does not cover

Solids, topology and booleans

Subdivision

Flattening

The clean-room line

The mathematics is derived from published research. No part of this kernel has been reverse-engineered from a commercial product, transcribed, or adapted from anyone else's source code.

LNLib is a very good open-source NURBS kernel working from the same Piegl & Tiller, and reading it would obviously help. It has never been read. The algorithms are not secret — they are in a textbook. A clean-room claim stops being true the moment our implementation takes its shape from someone else's. Same rule for Rhino.

Manners

Peers, including the better ones

truck is the other from-scratch modern NURBS B-rep kernel in active development — Apache-2.0, Rust, compiles to wasm.

Where truck is ahead: STEP import and export, assemblies, a kernel that is genuinely a library rather than one living inside an app, and more mature booleans.

What this kernel has that truck does not: subdivision as a real modeling representation, sitting alongside NURBS in the same kernel, over the same document, with the same history.

Both of us refuse in places. truck's booleans are transversal-only; ours close on two solids and fail on a chained third.

Checkin' before wreckin'

Differential validation means building the same geometry here and in a reference implementation and comparing the numbers, never looking at how the other side computed them. It is also the only form of checking available to someone who cannot audit the derivation.

A shaded torus open in Rhino 8, showing its isocurves. Rhino 8 — example_torus.3dm
The same torus imported into UnReason, control net shown, with its degree and control-point count in the Properties panel. The same file, imported here
A torus Rhino 8 wrote, opened here, and still live.