The Guillotine Problem: Optimizing a Plywood Cut List
Every sheet of plywood is a small bin-packing problem. Here's the algorithm we built into a free browser tool — and why the math matters more than you'd think.
A 4×8 sheet of plywood costs between $40 and $120 depending on species, grade, and what the lumber yard is having for a mood that day. When you’re building a cabinet, a bookshelf, or a set of drawers, you’re typically making three to eight parts from each sheet — and how you arrange those parts on the sheet determines how much of it you throw away.
Most people do this by feel. Experienced woodworkers get good at it. They can look at a cut list and mentally arrange the pieces to minimize waste without much conscious effort. But when the cut list gets longer or the parts get more varied in size, even experienced builders start leaving money on the floor.
The Plywood Cut Optimizer runs this calculation in the browser. It’s free, requires no account, and gives you a visual layout of each sheet you’ll need with waste percentage calculated.
Why this is actually a hard problem
Optimal rectangular bin packing — placing a set of rectangles into the fewest number of fixed-size containers — is NP-hard. The exact optimal solution for a large cut list would require evaluating combinations that increase combinatorially with the number of parts. It’s not practical to brute-force.
What is practical is a heuristic that gets close to optimal for real-world cut lists. The approach the tool uses is called guillotine packing with best-fit decreasing.
Here’s how it works: parts are sorted from largest to smallest by area. Each part is placed in the best available open space — the space where it fits with the least remaining area left over. When a part is placed, it splits the remaining space into two new rectangular bins along a straight cut line (the “guillotine cut”). The process continues until all parts are placed or the sheet is exhausted, at which point a new sheet starts.
The guillotine constraint is key. In a real shop, you’re making straight cuts across the full width or length of material. You can’t make L-shaped cuts or jigsaw arbitrary shapes out of a sheet. The guillotine packing algorithm respects this physical constraint, which means its output is actually usable at the table saw.
Auto-rotation and grain direction
Plywood has a grain direction. For structural panels where appearance doesn’t matter, rotation is fine — a part that’s 24”×36” can be placed as 36”×24” if that fits better. For furniture faces or anything where the grain needs to run a particular direction, rotation changes the visual result.
The tool tries both orientations for every part and picks whichever fits better. This frequently reduces waste by a meaningful amount on varied cut lists. If grain direction matters for your project, the rotation indicator in the layout shows you when a part has been rotated so you can account for it.
What the tool gives you
The Plywood Cut Optimizer at tools.modologystudios.com/plywood-cut-optimizer takes a list of parts with dimensions and quantities, a sheet size, and a saw kerf width. It outputs:
- A visual canvas layout for each sheet required, showing exactly where each part is placed
- Waste percentage per sheet and overall
- Estimated material cost based on a price per sheet you set
- A color-coded legend linking each part label to its position on the sheet
The tool ships with preset cut lists for common projects — base cabinet, wall cabinet, tall cabinet, bookshelf, desk — so you can see a realistic layout immediately without entering your own parts.
It works in both imperial (inches) and metric, and handles the conversion if you switch units after entering data. Everything runs in the browser with no server involved, which means it works offline once the page loads.
The math that justifies the tool
A standard sheet of ¾” birch plywood runs about $70. A typical cabinet project uses four to six sheets. If the tool saves one sheet on a project by packing more efficiently, that’s $70. Over the course of a year for an active home builder, that compounds.
More precisely: the guillotine algorithm typically achieves 80–90% material utilization on varied cut lists that a manual layout would achieve 65–75% on. The gap is largest on cut lists with many small parts that can fill the leftover space from larger cuts — exactly the situation where manual layout is hardest to do well.
The tool also catches an error that’s easy to make manually: forgetting to account for kerf. A table saw blade removes material on every cut. An eighth of an inch per cut adds up across twenty cuts. The optimizer subtracts kerf from every available space, which means the layout it produces actually fits the material rather than assuming zero-thickness cuts.
Presets and the learning curve
The best way to understand what the tool does is to load one of the presets, hit optimize, and look at the layout. The base cabinet preset puts six parts on one sheet with realistic dimensions for a standard 24” cabinet. You can see immediately how the algorithm stacks the smaller parts into the spaces left by the larger ones.
From there, clearing the parts and entering your own cut list takes about two minutes. The layout updates as you go. When the arrangement looks right, the sheet count and cost estimate give you a material budget before you’ve bought anything.
That’s the goal: know the numbers before you go to the lumber yard. The algorithm isn’t magic — a skilled builder with good spatial intuition will often match it. But it doesn’t get tired, doesn’t miss the kerf, and doesn’t have to be at the shop to run the numbers.