Skip to main content
On this page

Material-specific mode

Most cutting jobs use more than one material at once — 18 mm MDF and 12 mm ply, oak and pine, treated and untreated timber. Left to itself the optimizer packs by shape only, so a 12 mm part can end up planned onto an 18 mm sheet in the same run. Material-specific mode stops that: turn it on, tag each row with its material, and the optimizer only ever cuts a part from stock of the same material — in a single run, across all three modes.

Material-specific mode is available on every plan, including Free. It is the built-in alternative to the old workaround of running one optimization per material.

A material is a hard constraint that changes the layout, not a cosmetic label. Tagging a part “oak” means it can only be cut from stock tagged “oak” — it is not the same as naming or colouring a piece, which only affects how it reads on the diagram and exports.


Turning it on

The Material-specific mode toggle sits in the Settings strip at the top of the sidebar, next to the unit switch and the Edge Banding toggle.

  1. 1

    Switch it on

    Click the Material-specific mode toggle. It switches on and a Material column appears in the stock and parts tables.

  2. 2

    Tag every row

    Give each stock and part row a material using the Material column's picker. While the mode is on, a row with no material is shown red — every row in the active mode must be tagged, or the run is blocked.

  3. 3

    Run the optimizer

    The plan is partitioned by material: each material's parts are packed only against that material's stock. The summary, waste list and exports are grouped by material.

Switching the mode off returns the optimizer to shape-only packing — the layout is identical to a job that never had materials, so you can toggle it without losing anything.


Tagging rows with a material

There are three ways to put a material on a row, from most to least manual:

  • The Material column picker. Every stock and part row has a Material cell. Click it and choose a material you have already defined, or + New material… to define one on the spot.
  • The material chips. When the mode is on, a row of one-click material chips appears above the parts and stock boxes. Each chip is one of your saved materials, in its own colour. Click a chip to add a new row already tagged with that material — and, for stock, pre-filled with its size. This is the fastest way to build a job “material first”.
  • The Material inventory. Materials you use often are saved in the Material inventory, which now holds sheet, bar and wood materials, each with a type, dimensions and colour. Loading one tags the row for you.

A material carries an identity — its type, cross-section or dimensions, and colour — not a length. For wood especially, that means you define “50×50 oak” once and set the length per job when you use it.


How the partition works

When Material-specific mode is on, the optimizer runs one packing pass per material and reports the results together:

  • 2D Panel — oak parts are packed only onto oak sheets, 18 mm only onto 18 mm, and so on. Each material gets its own sheet count and yield in the summary.
  • 1D Linear — each material’s parts are cut only from that material’s bars.
  • Wood — material composes with the cross-section. Wood mode already separates by cross-section (a 90×45 part is never cut from a 140×45 stick); with material on, an oak 50×50 and a pine 50×50 become two separate sections too, so same-size sticks of different species never mix.

Because each material is packed independently, mixing several materials in one run gives exactly the plan you would get from separate per-material runs — but in one place, with one combined summary and one set of exports.


When a material has no matching stock

If a part is tagged with a material you have no stock for, the optimizer does not fall back to cutting it from another board. Instead the plan shows a “⚠ No matching material” report naming those parts, with the hint to add stock of this material, or change the part material. This is the safeguard that makes the tag trustworthy: a material you did not buy can never quietly consume a board of something else.


Colour and the wood cross-section lock

Each material has a colour, used to tint its group on the cut plan, its offcuts, and its chips — so an oak group and a pine group are told apart at a glance. Colours only appear while Material-specific mode is on. You can set a material’s colour when you create it and change it later from the material’s ⚙ settings in the Material inventory.

For wood materials there is also a cross-section lock: once a wood stock or part row is tagged with a material, its two cross-section fields (width and depth) become read-only and are taken from the material’s identity. The length stays editable — length is not part of a material’s identity, so you still set it per job. Clearing the material releases the lock.

The lock exists so a tagged row cannot drift away from its material’s real cross-section. If you could edit the width after tagging “50×50 oak”, the run would no longer match what the material means. Length is different — the same oak profile is bought in many lengths.


Material-specific mode in the Engine API

The same partitioning is available on the Engine API. All three endpoints — 2d, 1d and wood — accept an optional material string on each part and each stock item (a free string; no library is involved on the API). Stock may also carry a priority flag. When any material is tagged, the response gains a per-material rollup (materials[]) and a report of demand whose material has no stock (unmatchedMaterials[]); wood carries the material per cross-section section. A request with no material tags returns exactly the same response as before. See the Engine API reference for the exact request and response fields.

FAQ

Is Material-specific mode free?
Yes. Material-specific mode is available on every plan, including Free — exactly like the Material inventory and Edge Banding. The free tier includes 3 optimizations per month.
Which modes support Material-specific mode?
All three: 2D Panel, 1D Linear, and Wood Cutting. In every mode the stock and parts tables gain a Material column, and the optimizer partitions the job so a part is only cut from stock of the same material.
What happens if a part's material has no matching stock?
The plan shows a '⚠ No matching material' report listing those parts, instead of silently cutting them from the wrong board. Add stock of that material, or change the part's material, and run again.
Do I have to tag every row?
Yes. When Material-specific mode is on, every stock and part row in the active mode must carry a material or the run is blocked — an unset row shows red until you pick one. Demo runs are exempt because the sample data has no materials.
How is a material different from a part name or a label?
A material is a hard packing constraint that changes the layout — it splits the job so material X parts only use material X stock. A name or colour label is cosmetic: it identifies pieces on the diagram and exports but never changes which board a part is cut from.
Can the Engine API do material-aware optimization too?
Yes. All three endpoints (2d, 1d, wood) accept an optional material string on parts and stock, and return per-material rollups. A request with no material tags is unaffected. See the Engine API reference for the exact fields.

Last updated: August 25, 2026