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
Switch it on
Click the Material-specific mode toggle. It switches on and a Material column appears in the stock and parts tables.
- 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
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.