The Catalogue
Every product is a generator: parameters in, parts out. Adding one to a design gives you its own parameter form, and its geometry is rebuilt from those parameters every time they change.
| Product | id | What it is |
|---|---|---|
| Project Box | project_box | Glued finger-jointed box with a captured bottom |
| Pinned Project Box | pinned_box | The same box, knock-down: hooked tenons drawn tight by flat pins |
| Produce Box | produce_box | The glued box with every face turned into a honeycomb grille — a ventilated crate |
| Cabinet | cabinet | A single column of openings — drawer, door, open bay or display — in a finger-jointed carcass with a captured back |
| Drawer | drawer | A lean finger-jointed box sized to a cabinet opening |
| Divider | divider | Egg-crate grid of half-lapped boards, sized to a box's interior |
| Tray | tray | A floor with border walls and per-bay half-lap dividers |
| Skadis Panel | skadis_panel | Pegboard panel cut to the IKEA Skadis hole pattern |
| Plate | plate | A bare rectangular blank for engraving — nameplate, award, label |
| Marker | marker | An engrave-only branding tile: artwork plus a line of text, nothing cut |
The id is what appears in a saved .tenon file and in the HTTP API. The
title is what the app shows.
Sizes are external
Where a product takes L, W and H, those are outside dimensions. The
interior is whatever is left after the walls, and the app reports it back to you
— a box with 310 mm outside length in 9 mm ply has a 292 mm interior, and the
readouts say so rather than making you work it out.
This is the right way round for the usual question, which is "will it fit on that shelf", not "how thick are its walls".
Parameters are validated
A product refuses parameters it cannot build — a box too short for its own handle, a lidded box too thin for the lid notch. The message says which dimension is fighting which, and what to change. That is a contract failure, not a bug: it is the product telling you the object cannot exist in that material.
Adding products
Products are discovered from the engine, not hard-coded into the UI. A new product appears in the picker with its own form the moment the engine offers it — no UI change, and no update to this guide's mechanics.