Woodshop Bench All tools
Cut & machining

Cut list optimizer

A small shop doesn't need MaxCut or a CNC nesting algorithm — it needs a quick sanity check: "if I cut these parts out of stock this big, how much waste do I have?" This uses first-fit-decreasing packing to lay rectangles into a stock rectangle and reports the utilisation ratio.

Optimizer

First-fit-decreasing, briefly

The packer works by:

  1. Sorting parts by longest dimension, descending.
  2. For each part, finding the first stock board where it fits (length-wise and width-wise, including kerf).
  3. Placing it at the first available spot in that board.
  4. If no board has room, opening a new board.

This is not the optimal packer (that would be a 2D knapsack problem, NP-hard), but it gets within 10–15% of optimal for hobbyist cut lists and runs in milliseconds.

Why this isn't a CNC nest

CNC nesting software handles curves, grain direction, edge-banding constraints, lead-ins and dozens of other variables. This is the simplest version that catches the obvious "you need more lumber" case. If you're optimising for cost on a kitchen full of cabinets, this isn't the right tool — but it will tell you within 10% whether you're buying enough.

Limitations

Frequently asked questions

Can I enter angled parts or curves?

Not yet — this is rectangular-pack only. For curves, allow an extra 1/8″ around the bounding box as a fudge factor.

What about plywood sheet goods?

It works for sheet goods too — set the stock width and length to the sheet dimensions (typically 48″ × 96″). Packing gets more efficient because there's more room to fit parts, but offcuts from a sheet are usually unusable for furniture so the calculated "leftover" is really just throwaway.

My utilisation is 35%. Am I doing it wrong?

Probably not — utilisation depends heavily on the size distribution of parts. A handful of long, thin parts on a wide board will always pack badly. The right question is "do I have enough boards?" — the optimiser answers that directly.