CutPlan
Turn a parts list into a measured plan. Arrange sheet panels and linear cuts, keep grain and kerf in view, and put useful offcuts back on the shelf.
Plan the material, then verify the work
For rectangular panels, straight stock, workshop cut lists and reusable remnants.
A practical workflow
- Add required parts and available stock, or import the exact CSV templates. Each row states material, thickness, width, length, quantity and grain.
- Set kerf from a measured test cut. Allow for edge cleanup and verify the real stock dimensions, rather than trusting nominal sizes.
- Declare grain on the original part and stock axes. Rotation is allowed only when the part permits it and grain remains aligned.
- Plan, review unplaced pieces and inspect each numbered diagram. Prepare the trimmed blank first. Cut tables mark the start of each kerf in source coordinates, give the distance from the current region edge, and follow a validated parent-before-child guillotine sequence.
- Print the packet, check its measurements and labels, then explicitly commit offcuts when the inventory should change. Save a project for later.
Try the workshop example
The example combines birch-plywood side panels, shelves and backs with linear oak rails. Two saved offcuts are available. It shows separate material groups, grain-constrained panels, freely rotatable shelves, straight cuts and offcut reuse.
Run it again before committing: inventory and quantities stay the same. Commit once to consume the used offcuts and create unchecked remnants. Undo restores the consumed quantities and removes those new remnants. A new production job deliberately allows another transaction.
Reading the diagrams
Width is X; length is Y on sheets. Linear diagrams display the model’s length axis horizontally; section height is exaggerated to keep labels readable. Red marks cut width, gray marks trim, and pale green marks reusable offcuts. Piece IDs connect diagrams, labels and CSV rows. R labels identify reusable remnants within each B-numbered stock diagram; the packet includes their dimensions.
Precision & grouping
Internal lengths are integer 0.001 mm units. An inch is exactly 25.4 mm; decimals and inch fractions are converted with half-up rounding. A rounding notice appears when an entry cannot be represented exactly. Display units never rescale stored dimensions.
Material names group case-insensitively after Unicode normalization; thicknesses must match exactly. Linear section widths must also match exactly. Separate projects are appropriate when materials need different blades, kerfs or edge allowances.
Declared part grain requires matching declared stock grain. “None” on a part removes that constraint. Rotation never overrides grain. Offcuts retain their parent stock’s axes; update dimensions and grain deliberately if reorienting real inventory.
Bounds & unsupported scope
Up to 120 part rows / 600 individual pieces, 120 new-stock rows, 600 inventory rows / 2,000 offcut pieces, and 200 enabled matching stock pieces per plan. Dimensions are capped at 50 m; thickness at 1 m. CSV: 1 MiB. Project JSON: 8 MiB. History: 30 transactions.
The search uses 1, 4 or 8 deterministic passes, at most 2,000,000 candidate checks, and a four-minute job timeout. It can leave pieces unplaced even when another arrangement exists. Smaller batches make review easier.
Rectangles and straight lengths only. No irregular nesting, CNC toolpaths, machine settings, stock defects, structural checks, cost optimization or guaranteed optimal layout. Full kerf is required for any positive remainder; partial blade overhang is not modeled.
Print & inventory checks
Diagrams are schematic, never full-size cutting templates. Print labels/reference at 100% or Actual size without Fit to page; measure the 25.4 mm reference bar. Paper size, browser margins and printer scaling affect physical output.
A cut sequence describes geometry, not safe operation of a saw or other machine. Verify clamping, support, tool capability and a suitable safe process independently. Tiny parts and remnants may not be practical to handle.
Inventory commits require a fully placed plan and unchanged inputs. Undo checks that created remnants are still present and descriptors match. Editing, deleting or consuming them can block undo; undo newer transactions first. Save before starting another production job.
Privacy & troubleshooting
This file contains its code, styles, documentation and logo. Parsing, planning and downloads run in this tab. It uses no backend, analytics, external fonts, network dependencies or persistent browser storage. The content security policy blocks outgoing connections; offline browser tests check for requests.
Nothing fits? Check material, thickness, section width, grain, rotation and trims. A part plus its necessary kerf must fit a free region.
Import rejected? Use UTF-8 comma-separated text with the exact template headers. IDs are unique across lists. Boolean values are true/false, units mm/in, kind sheet/linear, and grain none/length/width. Fix the whole batch before retrying.
Need exact recovery? Save a project: it contains inputs, current inventory, transaction history and the last validated plan. Protected CSV may add apostrophes to risky text and does not carry inventory history. Closing/reloading clears unsaved work.