ToolHuts

Practical tools for measured work

Linear Cut List Optimizer

Optimize cutting a list of lengths from stock bars/boards, minimizing offcuts and stock used.

Calculate the layout, check the diagram, then print the result for the shop or jobsite.

mm
mm
Cut list
mm
mm
mm
Stock pieces3
Total offcut2182mm
Cuts9

Stock 1: 900 + 900 + 350 mm | Stock 2: 600 + 600 + 600 + 350 mm | Stock 3: 350 + 350 mm

How it works

How to use it: enter your stock length and saw kerf, then add as many cut-length rows as your list needs - each with its own length and quantity. Use Add cut length for another length and the button to remove a row (at least one row must remain). The stock-by-stock cutting sequence, pieces required and total offcut update immediately.

Algorithm. Every requested cut (every row, every quantity) is combined into one list and sorted longest first. Each cut, in that order, is placed into the first stock piece already opened that still has enough length left for it - plus one kerf, if that piece already has a cut in it - and a new stock piece is opened only when the cut doesn't fit in any piece opened so far. This is a first-fit-decreasing heuristic: fast and generally efficient, but it doesn't search every possible arrangement.

Worked example. With the default three-row list (2400 mm stock, 3 mm kerf, two 900 mm cuts, three 600 mm cuts, four 350 mm cuts - 9 cuts total): sorted longest first, the two 900s go into stock 1 (900 + 3 + 900 = 1803 mm used). The first 600 doesn't fit stock 1 (1803 + 3 + 600 = 2406 > 2400), so it opens stock 2 (600 mm used); the next two 600s also fit stock 2 (up to 600+3+600+3+600 = 1806 mm). The first 350 fits back in stock 1 (1803 + 3 + 350 = 2156 mm); the second 350 fits stock 2 (1806 + 3 + 350 = 2159 mm); the third 350 fits in neither (2156+353=2509 and 2159+353=2512, both over 2400), so it opens stock 3 (350 mm used); the fourth 350 fits stock 3 (350 + 3 + 350 = 703 mm). Final layout: stock 1 = 900 + 900 + 350 (2156 mm used), stock 2 = 600 + 600 + 600 + 350 (2159 mm used), stock 3 = 350 + 350 (703 mm used) - 3 stock pieces, and total offcut = 3×2400 − (2156+2159+703) = 7200 − 5018 = 2182 mm. Adding a fourth row (for example five 200 mm offcuts) simply adds those cuts to the same sorted list and placement pass - no separate run needed.

Limitations

It uses a first-fit-decreasing heuristic, not an exhaustive search - it's fast and usually close to optimal, but for some cut lists a different arrangement will use fewer stock pieces. Always check the printed sequence before cutting.

Kerf is only counted between cuts within the same stock piece, not before the first cut or as an end-trim allowance. If a cut length is longer than the stock length, no result is returned - shorten the cut or use longer stock. The cut list is capped at 16 rows in this interface to keep the page responsive.

Frequently asked questions

How many different cut lengths can I enter?

Up to 16 rows, each with its own length and quantity - add or remove rows with the buttons above the cut list. All rows are placed in the same optimization pass.

Is the stock-piece count the true minimum possible?

Usually close, but not guaranteed. The tool uses a first-fit-decreasing heuristic rather than trying every combination, so occasionally a manual rearrangement of the cutting sequence can save a stock piece, especially with many similar-length cuts.

What happens if I enter a cut longer than my stock length?

The calculator returns no result rather than a wrong answer - check that every cut length is less than or equal to your stock length, and that stock length and kerf are both positive.