To use formulas in Mozaik, click the small calculator icon next to any value box to open the formula editor, then drive that value with a math expression built from Mozaik's system/reserved variables (like part length and part width) and your own product, insert, or job parameters. The field turns blue to confirm it's now controlled by the formula, so the part resizes and repositions itself automatically instead of staying a fixed number.
This guide follows Mozaik's official walkthrough. Watch the original video on Mozaik's channel:
You can also watch it directly as Mozaik's official video. Formulas in Mozaik are just math expressions — basic algebra — that you type into a formula input box so a part, hole, or cutout sizes and positions itself. If you've ever figured a cut list in your head ("cabinet width minus my left end minus my right end"), you already think in formulas; this is the same logic, just typed in so Mozaik can follow it.
What is a formula in Mozaik?
A formula is a mathematical expression — essentially basic algebra — that controls a value instead of you typing a fixed number. The advantage is flexibility: a value driven by a formula recalculates when the part stretches, so your products and library components stay correct at any size.
There's an important difference between typing a number into a field and driving the field with a formula. If you just type a value in the input box, it may not stay in the right spot when you stretch the part. When you instead open the formula editor (the calculator icon) and enter the value or expression there, the field turns blue — meaning Mozaik now controls it fully and won't change it on its own.
How do I open the formula editor?
Any input box with a small calculator symbol is a formula box. To open the editor:
- Select a cabinet and choose Edit.
- Go to the Parts tab and double-click a part.
- Click the calculator icon in any value field (for example, the part's width).
The formula editor has your main input at the top (the value you clicked, e.g. "what is the width of this part"), a conditions area below it (covered later), and a list of any conditions or formulas you've already added to the product.
Where's the formula help document?
Inside any open formula box there's a blue question mark — click it to open Mozaik's formula help document. It gives a solid overview of how formulas work and, near the bottom, a full list of parameters and variables you can reference. If you're getting started, a good move is to print that bottom section and keep it handy as a cheat sheet for the variable names.
What kinds of formulas are there?
The help document walks through the common types:
- Static number — e.g. a hole locked at a fixed distance from an edge. It stays put no matter how you stretch the part.
- Simple formula — combining a variable with math, e.g. part length minus a value to position a hole from the far side.
- Sizing formula — building a dimension from other dimensions, e.g. an interior height taken as the cabinet height minus the toe height, minus the bottom thickness, minus the top thickness.
- Trigonometry — positioning and sizing based on angles. This is the more advanced material and was flagged for a future session, not this introduction.
How do I write measurements (metric vs. inches)?
In Mozaik formulas, all values are entered in metric millimeters. If you'd rather work in imperial inches, follow the number with × Tomm (Tomm = the conversion 25.4). So a 3-inch value is written as 3 * Tomm.
This is also where parentheses matter. Because of order of operations (like PEMDAS from school), Mozaik solves what's inside parentheses first. If you write part length - 3 * Tomm without isolating the 3, you get the wrong result. Wrapping the inch conversion in parentheses — part length - (3 * Tomm) — keeps the math correct. Parentheses are critical any time you want one part of an expression solved before the rest.
What variables can I reference?
The bottom of the help document lists what you can plug into a formula:
- Library parameters — the same parameters you see when you open your library's parameters (reveals, etc.); reference them by their variable name.
- System parameters — things like dados, boring, and fasteners.
- Reserved parameters — used for positioning: cabinet width / height / depth, rails and stiles, scribes, part length and part width (the length/width of the current part), left-end and right-end thicknesses, and (for inserts) opening width / height / depth.
- Tomm — the millimeter conversion (25.4).
- Thicknesses — reference any part's thickness by typing its name followed by .th.
Inside the editor you can click the Reserved button under "view parameters" to browse and insert these reserved variables instead of typing them by hand.
Note on part length vs. part width: these map to specific axes. Part length is generally the left-to-right dimension; part width is the up-and-down dimension. Use the one that matches the axis you're driving — putting part length on the wrong axis won't position correctly.
How do I make my own parameters?
Formulas get powerful when you reference parameters you create yourself. There are a few scopes:
- Product (parameter tab on the part/product) — parameters specific to that one product. They do not come from your library or job parameters.
- Insert parameters — created on an insert, on its Parameters tab.
- User-added (job) parameters — added via Edit Job Parameters. You must switch to the Other category to add them; the other categories gray out the user-added area. You can also save these globally so they're available in future jobs.
A few habits the webinar stressed:
- Use short acronyms for your parameter names, and make them unique — don't reuse a name that already exists in Mozaik.
-
Always write a description. Months later you'll forget what
LGWmeans; the description reminds you. - Each parameter has a type: a number, a yes/no option (a switch), an options list (pick from several), or a quantity. Choose the type that fits.
Worked example: a parametric light panel with a groove
This shows the whole flow — strip the product down, add parameters, then drive an operation with formulas.
- Bring in a wall cabinet and Edit it. Set the height to 3/4″ and turn off height stretching so it's locked.
- Give it a unique name (e.g. "light panel with groove") and clear the description.
- Face tab: clear it so there are no door parts. Interior tab: clear it too.
- Parts to build: turn off everything except the bottom.
- The part won't size right yet because it's compensating for the ends. On the Shape tab, set the left end and the other end to nothing (no components on those edges). The part now follows the cabinet size.
- (If you use dados) add an override so blind dados don't come in — lock the relevant dado-into-ends value to zero.
- Double-click the part, name it, and to make it follow the door material, change its type from Bottom to Panelized End so it reads from the door material template.
Now make it parametric. On the product's Parameter tab, add three parameters and give each a description and a default:
- LGW — light groove width (default 3/4″)
- LGD — light groove depth (default 1/4″)
- Light groove recess from front (default 3″) — give it your own short acronym.
Open the part editor (double-click the preview), use the Flip button so you're drawing on the bottom face, and on the Operations tab add a groove (a dado — simpler to make flexible than a tool path, whose width is the tool diameter). Remember a dado's zero origin (the blue X) works from its center. Then drive each coordinate with a formula:
- X = 0 (entered through the formula box so it locks to the left side — the field turns blue).
- Length = part L (runs the full length of the part).
- Width = light groove width (your LGW).
- Depth = light groove depth (your LGD).
-
Y position = (part width) − (light groove recess) − (light groove width / 2). Because the dado works from center, you subtract half the groove width so the front clearance equals your recess value. The
/ 2must be wrapped in parentheses or Mozaik divides the whole expression by two. Use the Test button to confirm the result before committing.
Now changing any parameter (recess, width, depth) updates the groove automatically. Save the product to your library and reuse it on any job.
Worked example: a light panel with puck holes
Copy the groove panel and swap the approach from a dado to bore holes:
- Rename/repurpose the three parameters (e.g. puck light width PLW, puck light depth, puck light recess) and update their descriptions.
- On Operations, delete the dado and add a bore hole (comes in at 5 mm).
- Drive it: diameter = PLW, depth = puck light depth, Y = (part width) − (puck light recess) to set it back from the front.
- To space two pucks evenly across three sections, set the first hole's X = (part length) / 3, then copy/paste the hole and set its X = (part length / 3) * 2 — wrapping
part length / 3in parentheses so it doesn't affect the rest. That gives two pucks equally spaced from the sides and from each other.
How do I use formulas in an insert?
Inserts go into a single opening and can reference that opening's size. To build a parametric puck-light insert:
- Libraries > Inserts, choose a library (e.g. Lighting), and Add a new insert.
- On its Parameters tab, add your puck light width, depth, and recess parameters (set the type to Number).
- On Operations, add the operation, choose the type (bore hole, dado, or line bore), pick the side (e.g. the top), and set the reference (front or rear of the cabinet).
- Drive it with your parameters (depth, diameter, inset), and for spacing use the opening reserved variables — open width / open height / open depth — which are available only for inserts and refer to the inside cavity of whatever cabinet you drop it into. For example distance to side = open width / 3, then copy the hole and set the second to
(open width / 3) * 2.
Drop the insert into a cabinet's interior, and edit its parameters per-cabinet so each job matches the actual hardware.
How do I shape a part with formula-driven points?
You can also reshape a part by placing points and driving them with formulas — for example notching a drawer back for an undermount track:
- Select the drawer back; on the Shape tab, click a line and add a point.
- Select the point and drive its X with a variable like the drawer side thickness, so the notch follows the material — change to 5/8″ material and the point moves to match.
- Add more points, roughly drag them into place (the shape editor snaps to 90°), then make each parametric by driving X and Y. For example the far side uses part length − drawer side thickness, and the notch depth (here a 1/2″ bottom recess) is entered as
0.5 * Tomm. - Test by stretching the part to confirm the nodes hold their positions at any size.
You can anchor points to a corner, but formulas override anchors — driving points with formulas is the more reliable approach.
How do I add a cutout across many cabinets with a part template?
When you want the same operation (like a top cutout) on many cabinets without drawing it on each part, use a part template under Libraries > Hardware > Fasteners (part templates).
- First add the user-added parameters you'll reference (e.g. top cutout side inset, front inset, back inset, and a yes/no on-off) under Edit Job Parameters > Other.
- Libraries > Hardware > Part Templates > New, name it, pick the part to act on (e.g. the top), and Edit.
- Add a closed tool path, place its points, and drive each X/Y from your inset parameters (e.g.
part length − top cutout side inset,part width − top cutout back inset).
What are conditions (if-statements) and hide options?
Two condition tools make templates robust:
-
If-statements — change a value when a condition is met. Example fail-safe: if the width of the product is less than
12 * Tomm, then size the rail inset down so points don't collide. (Watch the units — the12also needs* Tomm.) -
Hide option — show or hide an operation. The rule is 0 = show, 1 = hide, and for a yes/no parameter 0 = no, 1 = yes. To tie a cutout to your on/off parameter, set the operation's hide value with a formula so it hides when the parameter says no. You can use the same idea to auto-hide an operation when the cabinet gets too small (e.g. hide when width is under
12 * Tomm).
What's the best way to get good at formulas?
The presenters' advice: practice and experiment. Once it clicks, you start spotting places to make your library more parametric and flexible — which cuts clicks and one-off customization on every job. Build something small, test it by stretching, and grow from there.
Related guides
- Custom Mullion Door - Intermediate Formula Secrets
- Elliptical Vent Holes in MDF Doors (parametric)
- FULL BACK POCKET - MDF DOORS WITH MOZAIK SOFTWARE
- How to Edit Cabinets in Mozaik
- How to Set CNC Toolpath Properties in Mozaik
- Island Method 1 - Full Boxes - Parameters Edit
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 setup can help — phillanton.com.
Full disclosure: this guide is published by Phill Anton Consulting.
FAQ
Do I have to write formulas in millimeters?
Yes — all values are entered in metric millimeters. If you prefer inches, write the number followed by * Tomm (Tomm = 25.4) to convert, and wrap that conversion in parentheses when it's part of a larger expression.
Why does my field turn blue, and does that matter?
A blue field means the value is fully controlled by your formula and Mozaik won't change it on its own. That's the goal — if you just type a number into the input box (instead of into the formula editor) it may not hold position when the part stretches.
When should I use a product parameter vs. an insert vs. a part template?
Use a product parameter when the control belongs to one specific product. Use an insert when the operation should reference an opening's inside dimensions (open width/height/depth) and you place it per opening. Use a part template when you want the same operation (like a top cutout or outlet hole) applied across many cabinets without drawing it on each one — then load it only into the cabinets that need it.
Why are parentheses so important in Mozaik formulas?
Mozaik follows order of operations and solves what's inside parentheses first. Without them, math like a divide-by-two or an inch conversion can apply to the whole expression instead of just the piece you intended, giving the wrong size or position. Use the Test button to verify before saving.
How do I turn an operation on or off?
Use the operation's hide option with a formula. Remember 0 = show and 1 = hide (and for a yes/no parameter, 0 = no, 1 = yes), so you can drive visibility from an on/off parameter or from a size condition.