Skip to main content
On this page

2D Panel Cutting

2D Panel Cutting is CutOptim’s primary mode. It solves the classic rectangle bin-packing problem: given a set of large rectangular sheets and a set of smaller rectangular pieces, find the arrangement that uses the fewest sheets with the least waste.

This mode is used for sheet materials including plywood, MDF, particleboard, melamine, glass, aluminium composite panel, steel sheet, foam board, and any other material that comes in flat rectangular stock.


How 2D Optimization Works

CutOptim models your cutting job as a bin-packing problem:

  • Bins are your stock sheets — large rectangles you are cutting from
  • Items are your demand pieces — smaller rectangles you need to produce

Rather than filling in a single greedy pass, the optimizer runs several packing strategies over your whole job — different shelf and column layouts, sort orders and rotations — and keeps the best-scoring result (fewest sheets, least waste). Every strategy uses a guillotine cutting model:

  • Guillotine cutting — Every cut goes edge to edge across the sheet. This mirrors how a panel saw, table saw, or beam saw works, so the resulting cut sequence is practical for manual and semi-automatic cutting. It is CutOptim’s only cutting model today; true nested (free-form) cutting for CNC routers is on the roadmap.

CutOptim also respects kerf width — the material lost as sawdust in every cut. A 3 mm kerf on a 100-piece job can add up to losing an entire sheet. Always enter your kerf accurately. See Settings & Kerf.


Adding Stock Sheets

Stock sheets represent the raw material you have available to cut from. Each stock row defines one size and quantity of sheet.

The stock sheet table showing three rows with width, height, quantity, and price fields
Stock table with three different sheet sizes entered.
Feature Type Description
Width number Sheet width in the active unit (mm or cm). This is the horizontal dimension on the canvas.
Height number Sheet height in the active unit. This is the vertical dimension on the canvas.
Quantity integer Number of sheets of this size available. The optimizer will use as many as needed, up to this limit.
Price number Cost per sheet. Used to calculate total material cost in the results summary and quotation export. Leave blank if pricing is not needed.
Name text Optional material name for this stock size, e.g. '18mm MDF' or '2400×1200 Structural Ply'. It labels the sheet on the plan and carries into the PDF and Excel exports, so the cut sheet says which board to fetch. Loading from the Material inventory or an offcut fills it in for you.

Best practices for stock sheets:

  • Enter the actual usable dimensions of your sheet, not the nominal size. A sheet sold as 2440×1220 mm may actually be 2438×1218 mm after factory edge trimming — measure your sheets.
  • If you have a mix of full sheets and partial offcuts from a previous job, add them as separate stock rows with their actual dimensions and a quantity of 1.
  • Use the price field even for internal jobs. Seeing the cost breakdown helps identify whether a job is priced correctly.

Adding Parts

Parts are the rectangular pieces you need the optimization to produce from your stock. They go in the Parts (2D) table.

Feature Type Description
Width number Required piece width in the active unit.
Height number Required piece height in the active unit.
Quantity integer Number of identical pieces required.
Label text Descriptive name for this piece, e.g. 'Door Panel LH' or 'Shelf 600'. Printed on the cut diagram and in the CSV export.
Rot. checkbox Ticked (the default) lets the optimizer turn the piece 90° to save material. Untick it and the piece keeps the orientation you entered — use that when grain direction, print orientation, or material face must be preserved. Available on every plan.

Tips for entering parts:

  • Always enter a label for each piece. On a complex job with 50+ pieces, unlabelled rectangles on the cut diagram are impossible to identify.
  • If you have many identical pieces, enter them once with the correct quantity rather than as separate rows.
  • To add trim allowance (for pieces that need to be cut slightly oversize then trimmed to final size), add the trim amount to the width and height. For example, if you need a finished 400×800 mm piece with 5 mm trim on each face, enter 410×810.

CSV Import for Parts

If your cut list already exists in a spreadsheet, you can import it directly:

  1. Open the CSV ⌄ dropdown in the Parts section header (2D, 1D, or Wood) and choose Import CSV
  2. Choose your .csv file — columns are read by position: name, width, height, qty (an optional header row is detected and skipped)
  3. The parts are added to the Parts table straight away

Not sure of the column order? Click the Template button next to the CSV import to download a ready-made CSV with the correct columns and an example row. See Importing data for the full reference.


How CutOptim Cuts: Guillotine

CutOptim’s 2D optimizer is guillotine-only — there is no cut-type toggle in Settings. Every cut is a straight line that runs from one edge of the (remaining) sheet to the opposite edge, mirroring the physical operation of a panel saw, table saw, or beam saw.

Why guillotine:

  • The cut sequence can be handed to an operator as a straightforward cut list
  • Works on a table saw, panel saw, track saw, or beam saw — no CNC required
  • Cuts remain reproducible when material is flipped or moved between passes

Comparing against other tools: a free-nesting optimizer — one that drops pieces anywhere on the sheet — will usually report a higher yield than a guillotine optimizer on the same list. That gap is the price of cuts you can actually make on a panel saw, not a defect. Compare like with like before judging a number.

True nested (free-form) cutting — where pieces are placed anywhere on the sheet to squeeze out a few extra percent of yield on a CNC router — is on the roadmap as part of the planned Maximum-efficiency optimization mode. It is not a Settings toggle today.


Running the Optimization

Once stock and parts are entered, click Run optimizer at the bottom of the left sidebar, or press Ctrl+Enter. The optimization typically completes in under 2 seconds for jobs with fewer than 500 pieces. Larger jobs take longer, and the page stays unresponsive until the calculation finishes.

What CutOptim checks before running: exactly one thing — that the active mode has at least one stock row and at least one part row. If either table is empty, a short message appears and nothing runs, so an empty run never costs you an optimization from your quota.

There is no other pre-flight validation, and nothing blocks the Run button. In particular, a piece too large for any of your stock will not stop the run: the optimizer simply cannot place it, and tells you afterwards — in limited-stock mode the result summary names every piece that did not fit. Quantity fields accept whole numbers from 1 upward and fall back to 1 if you clear them.


Reading Your Results

After a successful run, the canvas shows the layout and the results panel updates:

Results panel showing yield 92.4%, waste 7.6%, 4 sheets used, 3 offcuts
Results summary after a 2D panel optimization.

Sheet Navigator

Use the arrow buttons or sheet tabs at the bottom of the canvas to step through each sheet used. Each sheet shows:

  • Colored rectangles for each placed piece with label and dimensions
  • Hatched grey areas for offcuts (pieces larger than minimum offcut size)
  • Solid grey areas for waste (pieces smaller than minimum offcut size)

Yield and Waste

MetricFormulaTarget
Yield %(Total demand area) / (Total used sheet area) × 100> 88%
Waste %(Unusable scrap area) / (Total used sheet area) × 100< 10%
Offcut %(Saved offcut area) / (Total used sheet area) × 100Variable

Improving a Low-Yield Result

If yield is below 80%, try these approaches in order:

  1. Check kerf width — An incorrect (too large) kerf wastes space on every cut
  2. Allow rotation — Make sure the Rot. checkbox stays ticked on pieces where grain direction does not matter
  3. Batch more pieces — Add remaining pieces from future jobs to fill the sheets now
  4. Add smaller stock — If you have offcuts from previous jobs, add them to the stock table and star them so they fill first

Stock Priority (★)

Each row in the Stock table has a star (★) icon on the left. Starring a stock row tells the optimizer to use that sheet first — before drawing from unstarred stock.

When to use it:

  • You have a partial sheet left over from a previous job and want to use it up before opening new stock
  • You have expensive or hard-to-source sheets that you want to prioritize
  • You want to clear old stock before it warps or deteriorates

How to use:

  1. Click the ★ icon on any stock row — it turns yellow/gold
  2. Run the optimization — the starred sheet is used first
  3. Click again to remove the priority

Star all your offcut stock rows before running a job. CutOptim will consume the offcuts first, only opening new full sheets when the offcuts are exhausted. This is the most effective way to keep your offcut inventory manageable.


Edge Banding Pro

Edge banding information can be recorded per piece in the EB column of the Parts table. This marks which sides of a finished panel require edge banding, and the information appears on the cutting plan and in PDF exports.

Edge banding is a metadata/reference feature — it does not affect the optimization algorithm. It simply records which sides need banding so the information is printed on the cut sheet and labels alongside the piece.

Marking edge banding:

  1. Click the button in the EB column of any demand piece row
  2. An edge banding dialog opens with four sides: Top, Right, Bottom, Left
  3. Check each side that requires edge banding
  4. A visual preview shows the selected sides as a yellow stripe around the piece outline
  5. Click OK — the EB column updates to show an abbreviation of the selected sides

EB column abbreviations:

DisplayMeaning
No edge banding
TTop only
TRTop + Right
TRBLAll four sides
BLBottom + Left

Edge banding data is saved with the project and appears in:

  • The PDF cut plan (printed on the piece label within the layout diagram)
  • The Panel Labels export (one label per piece, showing selected sides)
  • The CSV export (as an edge_banding column)

For cabinet carcasses, a common configuration is BL (Bottom + Left) or TR (Top + Right) depending on whether the panel is a side, top, or shelf. Entering this once at the demand stage avoids having to figure it out again at the bench.

FAQ

How does CutOptim cut the sheet — guillotine or nested?
CutOptim's 2D optimizer is guillotine-only: every cut runs edge-to-edge across the remaining material, exactly as a table saw, panel saw, or beam saw would cut. There is no user-selectable Nested cut type. True nested (free-form) cutting for CNC routers is on the roadmap as part of the planned Maximum-efficiency optimization mode.
Can I mix different sheet sizes in the same optimization?
Yes. Add as many stock sheet rows as you like, each with a different size. CutOptim will use the most efficient combination of sheets to fulfill your demand.
Can demand pieces be rotated?
By default, CutOptim can rotate pieces 90 degrees to improve packing. To prevent rotation on a specific piece (for example, when grain direction matters), untick the Rot. checkbox on that row of the Parts (2D) table. It is available on every plan, guests included.
My sheet shows a large offcut in the corner. Can I split it into two pieces?
Offcuts are not split automatically. The offcut is the remaining material after all demand pieces are placed. You can save it to the Offcut Inventory and use it as stock in a future job.
How many demand pieces can I add on the free plan?
The free plan allows 3 optimizations per month, with any number of demand pieces in each one. Upgrade to Pro for unlimited runs.
Does CutOptim account for edge banding or trimming allowance?
Edge banding can be marked per side on each demand piece (Pro feature) — this records which sides need banding and prints it on the cut sheet, but does not change dimensions. For trimming allowance, add the trim amount manually to your piece dimensions.
What does the star (★) next to a stock row do?
Starring a stock row marks it as priority material. The optimizer uses starred sheets first before drawing from unstarred stock. This is useful for using up offcuts or leftover sheets from previous jobs before opening new stock.
Can I mark which sides of a panel need edge banding?
Yes, with a Pro subscription. The EB column in the Parts table lets you select which sides (Top, Right, Bottom, Left) require edge banding. This information appears on the cut plan PDF and panel labels, but does not affect the optimization layout.

Last updated: July 10, 2026