# Kerfwise Cabinet Builder > Parametric cabinet → every part with cut sizes, edge banding, drilling and hardware. Give a cabinet type (base, wall, tall, drawer bank, blind corner, diagonal corner base or wall cabinet, L-shaped corner, angled end, quarter-round end shelf, open shelf, wardrobe, bookshelf, desk, table, bed frame) with its size, back panel, doors, drawers, shelves and joinery, and get the complete parts list with finished and cut sizes, grain direction, edge banding per edge, hinge and shelf-pin drilling, hardware and a front view. The same engine powers the Kerfwise app. Part of usefulweb.app (https://usefulweb.app/). Results are deterministic calculations from the inputs and the listed assumptions; the API returns exactly what the web page shows. ## Use it - Human interface: https://kerfwisecabinetbuilder.usefulweb.app/ (interactive tool at https://kerfwisecabinetbuilder.usefulweb.app/tool) - JSON API: POST https://kerfwisecabinetbuilder.usefulweb.app/api/v1/calculate with a JSON object of inputs (schema: https://kerfwisecabinetbuilder.usefulweb.app/api/v1/tool) - OpenAPI: https://kerfwisecabinetbuilder.usefulweb.app/openapi.json - MCP (Streamable HTTP): https://kerfwisecabinetbuilder.usefulweb.app/mcp - tool `kerfwise_cabinet_builder` ## Inputs - type (select): Cabinet type - width (number, required): Width - Outer width (table/desk: top length). - height (number): Height - Outer height incl. plinth, without worktop. Empty = type default. - depth (number): Depth - Outer depth. Empty = type default. - materialId (select): Carcass material - frontMaterialId (select): Front material - backType (select): Back panel - grooveDepth (number): Groove depth - topType (select): Top - plinthType (select): Plinth / toe kick - plinthHeight (number): Plinth height - doorCount (integer): Doors - Empty = type default. - doorStyle (select): Door style - drawerCount (integer): Drawers - Empty = type default. With doors, drawers go on top (150 mm each). - slideType (select): Drawer slides - shelfCount (integer): Shelves - Empty = type default. - adjustableShelves (boolean): Adjustable shelves (32 mm system holes) - faceFrame (boolean): Face frame - carcassJoint (select): Carcass joinery - frameJoint (select): Frame / apron joinery - drawerJoint (select): Drawer box joinery - handle (select): Handles - returnWidth (number): Corner: second leg length - Diagonal and L-shaped corner cabinets: length along the adjoining wall. Empty = same as the width. - cornerDoors (select): L-shaped corner doors - endAngle (number): Angled end: angle to the wall - bandingDeduct (boolean): Deduct edge-banding thickness from cut sizes ## Method - Carcass: sides run full height, so side height = cabinet height − plinth height; top, bottom and fixed shelves sit between the sides (length = inner width = width − 2 × panel thickness), plus 2 × dado depth (T/3) for dado joints or 2 × rabbet depth (T/2) for rabbets. - Back panels: grooved = (inner width + 2 × groove depth) × (inner height + 2 × groove depth) and the shelves lose groove set-back + back thickness of depth; inset = inner width × inner height; nailed = outer size − 2 mm, and the carcass depth includes the back. - Doors: full overlay = width / n − gap by carcass height − gap (gap 3 mm = 1.5 mm reveal per edge); inset = (opening − (n + 1) × gap) / n. Hinges per door by height: ≤ 900 mm → 2, ≤ 1600 → 3, ≤ 2000 → 4, else 5, placed 100 mm from the ends; Ø35 × 13 mm cup 22.5 mm from the edge with two Ø8 dowel holes 45 mm apart, mounting plates on the side 37 mm from the front. - Drawers: slide length = largest standard length ≤ inner depth − 10 mm; box length = nominal slide length; box width = opening − 25.4 mm (side-mount, 12.7 mm per side) or opening − 42 mm + 2 × side thickness (undermount); box height = front height − 40 mm (side) / − 47 mm (undermount). Front/back length: butt or dowel = box width − 2t, dado = + t, dovetail = full box width. - Adjustable shelves: inner width − 2 mm, 20 mm set back, on Ø5 holes at 32 mm pitch in two rows (37 mm from the front, rear row on the 32 mm grid). Fasteners: 50 mm from each end, ≤ 150 mm apart (dowels, confirmat, screws, pocket screws), cams 2–3 per joint. - Cut size = finished size − edge-banding thickness on each banded edge (L1/L2 run along the length and reduce the width; W1/W2 reduce the length) when deduction is on. - Shaped cabinets (diagonal corner, L-shaped corner, angled end, quarter-round end): the plan footprint is a polygon. End panels run through at the corners, wall-side backs (carcass material) butt against them; panel ends that meet a front at an angle are bevelled (angle and long point in the notes). Bottom, top and shelves are the footprint inset by the panel thickness (+1 mm and −20 mm front set-back for adjustable shelves) and get a cut outline for CNC nesting. Diagonal doors use +45° angled hinges; the L-shaped corner uses a bi-fold connector or two doors with a corner post. ## Limits - Dimensions follow common European frameless practice and the stated rules. Always check hardware manufacturers’ planning data for the exact hinges and slides you buy, and verify critical sizes before cutting expensive material.