To use dynamic materials in Mozaik, embed the [texture] and [texAbbr] variables in a material's cut-list name and abbreviation, lock the textures you never want to change, then switch textures per room. A single set of dynamic templates can then drive many colors and finishes across a whole job — the material name (and its price, grain, and optimization) updates automatically as you change the texture, so you maintain one template instead of a separate one for every option.
This guide follows Mozaik's official walkthrough. Watch the original on Mozaik's channel:
What “dynamic materials” actually do for you
A dynamic material is a material whose cut-list name contains a variable instead of a hard-coded color. When the cut-list name carries the texture variable, the material name updates automatically as you change the texture — so the same template can become “18mm Alpine White” in one room and “18mm Auburn Carini Walnut” in another. The payoff: fewer material templates to maintain, fewer setup mistakes, and faster, more consistent jobs — and it carries all the way through from design into pricing and the optimizer.
The walkthrough below follows the example used in the video: a duplex with two mirrored kitchens, where one kitchen is built in a solid satin Alpine White and the other in a grained semi-gloss Auburn Carini Walnut.
Step 1: Open your materials in Settings
Go to the Settings tab and open the Materials category. This is where your existing material templates and textures live (in the example, the main materials — including the edge banding — are set to a melamine white). The goal of the whole exercise is to be able to change those materials and textures together, driven by the texture name.
Step 2: Lock the textures you never change
Open Libraries > Materials to get into the material library.
For any material you always use in the same color, lock its texture so a global texture change can't touch it. In the example, the 3/4″ white melamine is the main interior material and is always white, so it gets locked. On the right side of the material library there's a “texture locked” option; turning that on locks the texture for every part that material is assigned to. Locked textures later show up grayed out in the material templates, which is your visual confirmation they're protected.
Step 3: Set up texture groups for your color options
The materials you DO want to swap (here, the Edgar panel and edge banding) need their color options available as textures.
The material library has texture groups available on the right. A default texture group ships with Mozaik; you can also import additional texture groups (in the example, an Edgar texture group was imported, giving access to many colors — the video mentions roughly a hundred). Within that group you pick the specific textures you need — in this case Alpine White (a solid satin color, no grain) and Auburn Carini Walnut (a semi-gloss grained texture).
If a texture carries a premium, you can build that price in. The walnut had a $1-per-square-foot upcharge, set via the “price by finished area” field entered as $1.
Step 4: Add the texture variables to the panel material
This is the core trick. Select the panel material you want to make dynamic (the 18mm Edgar panel stock in the example) and edit its name fields.
-
Cut-list name is the name that shows up in the cut-list optimizer and on printouts. Hover over the field and Mozaik pops a tooltip explaining it. To make the material dynamic, embed the texture variable in this name — for example, change
18mm Edgarto18mm_[texture]. Now the name updates automatically whenever the texture changes. -
Abbreviation field: add the texture-abbreviation variable,
[texAbbr], so you get a short form you can use on labels.
The variables must be typed exactly. In the example the panel was a two-sided material priced per sheet; the dynamic variable in the cut-list name plus the abbreviation are what make it switch.
Step 5: Make the edge banding dynamic too
Switch to your edge banding material (a 1mm Edgar band in the example) and add the same variables — the [texture] variable plus [texAbbr] — so the banding also flows through dynamically and shows up correctly in the pricing tab. Spelling has to match exactly. Select OK when done.
Step 6: Build the material templates that use the dynamic materials
Now go to Libraries > Material Templates and create the templates that pull in your new dynamic materials.
- Door material template: Choose New, name it clearly (e.g. “18mm Edgar doors”), select all the materials (click the first, hold Shift, select the rest), and assign the dynamic 18mm Edgar material.
- Cabinet material template: Create a new one, name it for the materials it uses (e.g. “3/4 white melamine - 18mm Edgar”) so it's self-documenting. The locked white melamine parts appear locked; for the parts you want dynamic, bring in the dynamic Edgar material. In the example, the bottom of the wall cabinet, finished ends, and frameless rail were set dynamic, and the toe skin used a pre-built dynamic “toe kick skin Edgar” material so it pulls from the same source.
- Banding material template: Create a new banding template (e.g. “1mm white PVC - 1mm Edgar PVC”) and swap the relevant edge-band designations (here, edge banding #1 and #3) over to the dynamic edge banding. Mozaik supports several edge-band designation numbers, and you can assign labels to them.
Step 7: Bring the templates into the job and save them
Select OK on the templates, then load them into the job: pick the dynamic door template, the dynamic cabinet template, your existing drawer template, and the dynamic banding template. To reuse them on future jobs, open the menu (the three bars, upper right), highlight the template set, and save it.
Step 8: Switch textures per room
With everything dynamic, changing a room's look is now a single action. Click the texture (the JPEG thumbnail), or use the drop-down, or the editing pencil — any of them work — and pick the texture for that room (e.g. Alpine White for the first kitchen). A “reset” option appears so you can revert to the original/default texture if needed. Do this for the cabinet and the banding.
Step 9: Fix banding that pulls the wrong texture group
Watch out for one gotcha shown in the video: when you change the banding texture, it may pull from the default texture group instead of your imported (Edgar) group. Two fixes:
- Use the editing pencil, highlight the two materials, and change the texture manually, OR
- In Libraries > Materials, open the edge banding material template, select the 1mm PVC, turn on “texture locked,” and select OK. After that the banding follows your intended (Edgar) texture group and you can bring in the right color.
Once corrected, the cut list confirms it: the locked 3/4 white melamine stays white, while the dynamic parts read the chosen texture (e.g. “18mm Alpine White” and “18mm Alpine White toe skin”).
Step 10: Duplicate and mirror the second room
For the duplex's second kitchen, go to Job > Edit, copy the room, and rename it (e.g. “Kitchen B”); rename the original “Kitchen A.” You can set the cabinet numbering for the second room (in the example, it starts at 2011 for room two, cabinet one). Because it's a reverse floor plan, go to Tools > Reverse Plan to mirror it.
Then in Settings, with room two active, change the textures for Kitchen B to the second material (Auburn Carini Walnut) on the cabinet template and the edge banding template. The cut lists for the two rooms now show different textures automatically — Alpine White in Kitchen A, Auburn Carini Walnut (including toe skin) in Kitchen B.
Step 11: Optimize — and let grain follow the texture
Send the job to the Optimizer, then run Batch Optimize to process everything. Because grain is tied to the texture, the optimizer respects it: the solid Alpine White has no grain, so door orientation doesn't matter, while the grained Auburn Carini Walnut nests with the grain running correctly across doors and parts. Setting grain correctly on the texture means dynamic materials also optimize correctly.
Step 12: Price it with a dynamic pricing template
In Settings, confirm your material-estimate options (in the example, “amount and waste” on the whole-sheet count, and “hide all zero lines” for a cleaner read).
Open the pricing template editor (the three bars, then the green plus) and create a new template (e.g. “V14 Dynamic Materials”). Bring in materials, the texture variable, banding, and a “room subtotal” line, then save. Loading this template breaks pricing out per room because of the room-subtotal variable: Kitchen A prices in Alpine White (main material, toe skin, and Edgar edge banding with waste), and Kitchen B prices in Auburn Carini Walnut, including the texture upgrade (the $1/sq-ft premium) and the matching edge banding footage. Note that two rooms can share the same square footage and edge-band footage while carrying different textures and prices.
Step 13: Confirm in 3D
Finally, check Products > 3D and orbit each room. Both finishes render correctly — Auburn Carini Walnut in one kitchen, Alpine White in the other — proving the dynamic setup carried cleanly from design through pricing and into production.
The bottom line
A little upfront setup — variables in the cut-list name and abbreviation, smart texture locking, and templates that point at the dynamic materials — lets one template set drive many color and finish combinations across rooms and jobs. You eliminate a pile of redundant material templates, keep things organized, and the same logic flows through pricing and the optimizer. This is especially powerful with TFL product lines that come in many colors.
Related guides
- How to Update Your Materials Library in Mozaik
- How to Nest Parts on Sheets in Mozaik
- How to Set Up Pricing in Mozaik
- How to Use Formulas in Mozaik
- How to Set Up Labels in Mozaik
Get it done-for-you
You can set this up yourself using the steps above. If you'd rather skip the setup, PAC's Mozaik training and done-for-you services can help — phillanton.com.
Full disclosure: this guide is published by Phill Anton Consulting.
FAQ
What's the difference between the texture variable and the texture-abbreviation variable?
The texture variable ([texture]) goes in the cut-list name and makes the full material name update automatically with the chosen texture (so it appears correctly in the optimizer and on printouts). The texture-abbreviation variable ([texAbbr]) produces a short form you can use on labels. Both must be typed exactly as Mozaik specifies.
Why would I lock a texture instead of just leaving it alone?
Locking protects materials you never want to change — like an interior white melamine — so a global texture swap can't accidentally recolor them. Locked materials show up grayed out in your templates, giving you a clear visual confirmation they're safe.
My edge banding changed to the wrong color when I switched textures — why?
The banding can pull from the default texture group instead of your imported group. Fix it by either manually changing those materials with the editing pencil, or by locking the texture on the edge banding material in the material library so it follows the texture group you intend.
Will dynamic materials optimize correctly when a texture has grain?
Yes — as long as grain is set correctly on the texture. Solid, no-grain colors can nest in any orientation, while grained textures will optimize with the grain running consistently across doors and parts.