Intake bridge
Turn photos of fronts into a cut list
Have photos or sketches of your cabinet door & drawer fronts with their finished sizes? This builds an AI handoff prompt that points at your image files. Paste it into Claude, Claude reads the photos and hands back an importable parts file, and you load it straight into the Cut List Optimizer.
Point at your images
Point at a folder (or list image paths) and set the units + a fallback grain. Material & banding are set later in the optimizer.
Generate & paste the prompt
Copy the generated prompt into a Claude chat. It reads the photos and returns a JSON parts package.
Import & cut
Paste the result back here and open it in the Cut List Optimizer to nest & get cut sizes.
Your spec images
Easiest: point at a folder of photos and the AI reads them all. Or list individual files. They’re read directly — never uploaded by this page.
.heic with sips first (macOS), so HEIC paths are fine. Make sure the files actually exist at these paths on the machine running Claude.Defaults & context
These fill in anything the photos don’t spell out, and tell the AI how to label the result.
Handoff prompt
Copy this whole block into a Claude chat that can read local files. It includes your image paths, your defaults, the exact output schema, and the OCR rules.
Bring the result back
Paste the JSON the AI returns (or open the saved .json file and paste its contents). Then send it to the optimizer.
The import contract (clo-import-1) & example
This is the schema the generated prompt asks the AI to produce, and exactly what the Cut List Optimizer imports.
| Field | Meaning |
|---|---|
format | Always "clo-import-1". |
project | Project name to create/target in the optimizer. |
units | "in" or "mm" — how to read the dimension strings. |
parts[] | Each front: label, type (door/drawer/panel), w, h, qty, grain (h/w/none), and edges (top/bottom/left/right → true if banded, false if not). Dimensions are strings; fractions like "14 3/4" are fine. |
No material, thickness or banding lists — those are assigned in the optimizer after import, so you don't re-enter what's already in your stock. | |