What kaicad is
kaicad compiles a furniture definition written as YAML into the things you need to actually build the piece: a 3D assembly you can spin, shop drawings, a cut list, a bill of materials, and a validation report that says whether the design will survive contact with timber.
All of it runs in your browser. There is no server, no account, and nothing is uploaded — the CAD kernel is a WebAssembly module that loads once and is then cached.
There is no AI in the product
Section titled “There is no AI in the product”That is the part people find surprising. kaicad does not draw your furniture for you, and it does not wrap a model in a chat window.
Instead, the model you already use writes the YAML — these docs are what it writes against — and kaicad compiles and checks what it wrote. When a check fails you copy the report back into the same chat and it repairs the file.
The reason is not modesty about what models can do. Text-to-CAD fails in a cascade: executable code, then valid geometry, then a design that a person could actually build. Most of the first loss is invented API calls. Asking for data against a published schema rather than code deletes that failure class outright — a wrong fixture ID is caught in milliseconds by a validator, not discovered after a kernel call throws.
The validator is the product
Section titled “The validator is the product”Anyone can arrange boxes in space. What is missing from every open woodworking tool is the layer that knows:
- whether two parts occupy the same cubic millimetre, and by how much
- whether a screw has enough thread engagement, and whether it is too near an edge
- whether a 900 mm shelf in 18 mm pine will sag under books
- whether a frame-and-panel top will split when the timber moves 4 mm across the grain in winter
- whether the slat gap under a mattress meets the standard
- whether the parts can be cut from stock anyone actually sells
Every one of those produces a stable code, a JSON Pointer into your document, and a
computed suggestion — “use fixtures.wood_screw.4x50, which gives 30 mm engagement”,
not “insufficient engagement”.
What it does not do, yet
Section titled “What it does not do, yet”v1 is beds, tables, benches, shelving and open case goods, plus cable management. Doors, hinges, drawers and runners are v2. Metric only. Parts are placed by anchors — named points and faces on other parts — and never by absolute coordinates.
Where to go next
Section titled “Where to go next”- The loop, end to end — the round trip, in detail
- Your first design — from nothing to a compiled bed
- How checks run — what the validator actually does
- For your LLM — the Markdown twins,
llms.txtand the rest