Build joinery
joineryGenerate parametric cabinets, slats, countertops, coves, shadow gaps, and sofas with computed parts, hardware, and notes. Validate or place builds in a room; rules advise but never refuse.
Instructions
Parametric joinery and interiors; the server computes every board, clearance and rule and replies {id,name,size,parts,hardware,notes}. What a workshop would say — a board nobody stocks, a shelf that will sag, a drawer front too short to grip, a niche shallower than the cooktop standard wants — comes back in notes and is built anyway: the rules advise, they never refuse. Only what has no geometry at all fails, and says why. kind + p: cabinet {w,h,d cm; t 15|18|25 mm; back mm; door hinged|sliding|drawers|none; doors; shelves; drawers; dividers; plinth; cooktop; top_cutout [x,y,w,d] cm from cabinet left-back; color; front finish} · slats {w,h cm; slat, thickness, gap mm; orientation vertical|horizontal; backing; finish} · countertop {length,depth,height,thickness cm; material; support none|legs|brackets; cutouts [{kind sink|cooktop|grommet, x, w?, d?}]} · cove {room or pts; type open|closed|inverted; ceiling, width, drop, slot cm; led} · shadow_gap {room or pts; ceiling, gap, depth cm; led} · sofa {length,depth,seat,back cm; arms straight|rounded|none; modules; color}. Place with at|wall(+along), angle, elev. Change a build: id + p with only new values (e.g. {"shelves":3}); a new size keeps its back where it was (anchor back|front|left|right|bottom|top|+x|-x|+y|-y|center). dry=true validates only.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| p | No | Parameters (flat; everything has a default), see the tool description | |
| at | No | Center on the plan (default: 0,0), or `wall` (+`along` cm) to back it onto a wall | |
| id | No | Or an existing build's group id: `p` holds only what changes | |
| dry | No | Only check and report, create nothing | |
| elev | No | Bottom above the floor, cm (wall cabinets) | |
| kind | No | New build: `cabinet`, `slats`, `countertop`, `cove`, `shadow_gap` or `sofa` | |
| room | No | `cove`/`shadow_gap`: room id whose outline to follow | |
| wall | No | Wall to back it onto, instead of `at` | |
| along | No | With `wall`: center along it, cm from its start (default: the middle) | |
| angle | No | Clockwise degrees | |
| anchor | No | Changing a build's size: the face that stays where it is — `back` (default: joinery stands against a wall), `front`, `left`, `right`, `bottom`, `top` or a plan side `+x` `-x` `+y` `-y`; `center` grows around the middle |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The build's group id (empty when dry) | |
| name | Yes | Its name | |
| size | Yes | [w, d, h] cm | |
| notes | Yes | What a workshop would say about it | |
| parts | Yes | Parts it is made of | |
| hardware | Yes | Hardware it needs |