Layer Height Calculator (Magic Numbers)
Pick a layer height for reasons that actually change the print: how long it takes, how visible the stepping is on your slopes, whether your hotend can keep up, and whether critical heights land on a layer boundary. Magic numbers are in here too — along with an honest verdict on whether they matter for your hardware.
Choosing a layer height on the things that actually change the print
Most layer height calculators list the multiples of your motor's full step and stop. That is one input, and on a modern printer it is close to the least important one. The four that genuinely change the result are above the fold:
- How long it takes — and whether your hotend's flow limit changes that trade.
- How visible the stepping is on the sloped and curved surfaces in your model.
- Whether critical heights land on a layer boundary.
- Whether it is a full-step multiple — which usually doesn't matter, and the page says when it does.
Stair-stepping: the number that decides how it looks
Layer height alone doesn't tell you whether a surface will look stepped. The slope does. On a surface at angle θ measured from horizontal:
horizontal width of each step = layer height ÷ tan(θ)
A vertical wall (θ = 90°) has zero deviation no matter how coarse the layers — which is why a plain box looks fine at 0.3 mm. A 45° slope at 0.2 mm deviates 141 µm and steps 0.2 mm across. A 15° slope at the same 0.2 mm still deviates 193 µm but each step is now 0.75 mm wide, and that width is what makes shallow domes and gentle curves look terraced while steep surfaces look smooth.
This is why "use 0.1 mm for detail" is bad advice in the abstract. If your model is mostly vertical walls, fine layers buy you nothing but time. If it has a shallow dome on top, they buy you a lot.
Worked example
A part with a 30° slope, printed at 0.2 mm on a 0.4 mm nozzle.
- Deviation: 0.2 × cos(30°) = 173 µm — clearly visible
- Step width: 0.2 ÷ tan(30°) = 0.35 mm
- To get deviation under 50 µm: 0.05 ÷ cos(30°) = 0.058 mm or finer
That is a big jump — roughly 3.5× the print time. The usual answer is not to print the whole part that fine but to use variable layer height, letting the slicer thin the layers only where the slope demands it. The figure above tells you what to set the minimum to.
Print time, and why it isn't simply 1/height
Time is set by volumetric throughput, not by layer count alone:
bead cross-section = line width × layer height − layer height² × (1 − π/4)
If your hotend's flow limit was already capping speed at the coarser height, then dropping to a finer layer lets you run faster per layer, and the time penalty is smaller than the layer-count ratio suggests. If you were nowhere near the limit, it is close to proportional. The table applies your actual flow figure, and marks with an asterisk any row where the hotend, not your speed setting, is the constraint.
The cross-section formula is the one the Slic3r-derived slicers use — a rectangle with semicircular ends. Plain width × height overstates throughput by 5–10% at typical settings, which is enough to matter when you are near the ceiling. The volumetric speed calculator goes into this in more depth.
One thing the table deliberately doesn't model: per-layer overhead. Travel moves, layer changes and minimum-layer-time cooling all scale with layer count, so very fine layers are somewhat worse in reality than the throughput maths alone suggests.
Feature fit: why a 5 mm boss comes out 4.8 mm
A printer can only stop on a layer boundary. If a dimension that matters isn't a whole number of layers, it lands short or long by up to half a layer:
printed height = round(layers) × layer height
5 mm at 0.3 mm is 16.67 layers, so you get 16 (4.8 mm) or 17 (5.1 mm) — up to 200 µm out on a dimension you specified precisely. At 0.2 mm it is exactly 25 layers and comes out right. This bites hardest on parts that mate with hardware: bearing shoulders, standoffs, anything with a specified stack height.
The tool checks your chosen height against a dimension you give it, and lists which heights in the usable range divide it exactly. Note that this is separate from shrinkage, which shifts every dimension by a percentage; this is a quantisation error and no amount of scaling fixes it.
Magic numbers, weighted honestly
A layer height that is an exact multiple of one full motor step means every layer sits at the same point in the motor's electrical cycle, so whatever small positioning error exists is identical on every layer and therefore invisible. If it isn't a multiple, layers cycle through a few positions and the error becomes periodic — which the tool reports as a repeat period, so you can check a banding pattern you can actually see against a predicted one.
How much this matters depends on hardware, and on most current printers the answer is "not at all". Prusa's own forum describes the concept as "largely for early 3D printers with old design Stepper Drivers" and "not a big issue with Prusa Printers". TMC drivers interpolate to 256 microsteps; a loaded lead screw is held mechanically; and where bed mesh compensation is active, Z is being adjusted continuously in microsteps anyway, so the idea of a layer "landing on a full step" stops meaning anything.
It still applies on older A4988 and DRV8825 boards without interpolation, and Prusa notes a specific mechanism worth knowing: a disabled Z axis snaps to the nearest full step, which is an error of up to half a step. The verdict box takes your driver and mesh settings into account rather than giving everyone the same answer.
And the practical note that survives all of it: choosing 0.16 over 0.15 costs nothing. Don't reorganise your profiles around this, but if you're picking a number anyway, you may as well pick one that lands on a step.
How this compares to other layer height calculators
Prusa publishes one inside their RepRap calculator, and several other sites list the multiples. Those take your lead screw and motor and return the arithmetic. What this page adds:
| Typical layer height calculator | This page | |
|---|---|---|
| Full-step multiples | Yes | Yes |
| Whether they matter on your hardware | No — implies they always do | Verdict from your driver and mesh settings |
| Banding repeat period | No | Yes, so you can match a real pattern |
| Stair-stepping on your slopes | No | Cusp height and step width at any angle |
| Layer height needed for a target smoothness | No | Solved directly |
| Print time trade | No | Relative time, flow-aware |
| Hotend flow ceiling per height | No | Max speed per row, capped rows marked |
| Critical feature fit | No | Quantisation error and heights that divide exactly |
If all you want is the list of multiples, any of them will do and Prusa's is as good as this one.
Sources
- Prusa community forum, Optimal layer height for your Z axis — the origin of the concept, the disabled-axis mechanism, and the position that it is not a big issue on modern printers.
- Slic3r / PrusaSlicer extrusion geometry for the bead cross-section used in the throughput and flow columns.
- TMC driver documentation on 256-microstep interpolation.
The geometry on this page — full step size, multiples, repeat period, cusp height, step width, feature quantisation — is exact arithmetic. The flow and time figures depend on the hotend limit you enter, which is a measurement you should take yourself. The judgements about what matters are judgements, sourced above so you can disagree with them.
Frequently asked questions
What layer height should I use?
For a 0.4 mm nozzle, 0.2 mm is the sensible default and 0.12–0.28 mm the useful range. Go finer only where you can see the benefit — curved and shallow-sloped surfaces — because time rises steeply and layer adhesion gets slightly worse. Go coarser for speed and strength on functional parts. The comparison table on this page shows the trade for your specific printer rather than in the abstract.
How do I work out how visible the layer stepping will be?
It depends on the slope angle, not just the layer height. On a surface at angle θ from horizontal, the deviation from the true surface (the cusp height) is layer height × cos(θ), and the horizontal width of each step is layer height ÷ tan(θ). A 0.2 mm layer on a 45° slope steps 0.2 mm horizontally; on a 15° slope the same layer steps 0.75 mm, which is why shallow domes look terraced while steep walls look fine.
Does halving the layer height double the print time?
Roughly, but not exactly, and sometimes much less. Time is set by volumetric throughput, and if your hotend's flow limit was already capping speed at the coarser height, dropping finer lets you run faster per layer and the increase is smaller than 2×. If you were nowhere near the flow limit, it is close to 2×. The table accounts for this using your hotend's flow figure.
Why does my 5 mm tall feature come out the wrong height?
Because 5 ÷ 0.3 is 16.67 layers, so the printer makes either 16 layers (4.8 mm) or 17 (5.1 mm). Any height that doesn't divide evenly into a critical dimension lands short or long by up to half a layer. At 0.2 mm, 5 mm is exactly 25 layers and comes out right. The feature-fit section checks this for you.
Do magic layer heights actually improve print quality?
On most modern printers, no measurable amount. Prusa's own forum describes the concept as 'largely for early 3D printers with old design Stepper Drivers' and says it is 'not a big issue with Prusa Printers'. Current TMC drivers interpolate to 256 microsteps and a loaded lead screw holds position mechanically. It matters most on older A4988 or DRV8825 drivers without interpolation — and choosing one costs nothing anyway.
What is a magic layer height?
A layer height that is an exact multiple of the distance one full motor step moves the Z axis. On an 8 mm lead screw with a 1.8° motor a full step is 0.04 mm, so 0.12, 0.16, 0.20 and 0.24 are multiples and 0.15 or 0.25 are not. Heights that aren't multiples make consecutive layers land on different points in the motor's step cycle, which this page reports as a repeat period.
Last reviewed September 8, 2026. Spotted an error or want another calculator? Tell us.