Using variable layer heights for 3D printing with PrusaSlicer

The Prusa development team has added an unexpected automatic variable layer height feature to PrusaSlicer. While manual variable layer height adjustment has been present for some time, it is now possible to get consistent and repeatable results with a few mouse clicks. I now have one less reason to slice with anything but PrusaSlicer.


These notes are based on my experiences with the Prusa i3 Mk3 and Artillery/Evnovo Sidewinder X1 printers. If you are using a different printer, please verify the hardware details are similar.

Variable layer heights are certainly not new. Cura and KISSlicer have implemented them for over a year now. KISSlicer was particularly impressive with its ability to use different layer heights for different parts on the build plate, optimizing heights where needed without slowing down the entire print. Much to my surprise (and delight), Prusa has incorporated this ability into their first release.

Variable (also called adaptive) layer heights allow each layer within a single model to be printed at different layer heights. You don’t have to select a layer height for your entire print and choose between on good vertical print resolution and print times. We can use a high setting for simple vertical surfaces to maximize speed, then switch to a finer height for rounded or curved surfaces to get a finer level of detail where needed.


The Variable Layer Height (VLH) feature in PrusaSlicer has been under heavy development recently. This document has been updated to reflect use in PrusaSlicer v2.3.0.

Applying Variable Layer Heights

Here’s a quick example printing a 60mm sphere. I’ve selected a 0.15mm layer height to give a good balance between quality and print times.

Basic slicer settings with fixed layer heights

Fig. 120 Basic slicer setttings with fixed layer heights

After slicing, the results show a 3h42m print time. All layers are printed at the selected 0.15mm layer height.

Basic slicer results with fixed layer heights

Fig. 121 Basic slicer results with fixed layer heights

Now let’s apply automatic variable layer heights to optimize each layer.

Applying variable layer heights

Fig. 122 Applying variable layer heights

  1. Select your part in the 3D Editor view on the Plater tab. You can also select the part from the parts list on the right.

  2. With your part selected, click on the Variable layer height button at the top of the screen.

  3. Adjust the VLH settings and apply one of the VLH options:
    • Adaptive will select a layer height based on the layers immediately above and below. If layers are mostly the same, a larger layer height will be used. If layers vary significantly, a lower layer height will be selected. The Quality/Speed slicer can be used to adjust for coarser (higher) steps by sliding to the left or finer (higher) steps by sliding to the right

    • Smooth transitions layer heights gradually between values. The Radius slider can be adjusted to specify a range of adjacent layers to evaluate. This option adjusts layers gradually over several layers to provide a smoother transition in the printed part.

  4. After applying automatic VLH, the layer height indicator on the right of the Plater display will be updated with different colors representing different layer heights. If you hover your mouse over this bar, you can see what layer heights correspond to which color.

  5. Try adjusting the Adaptive Quality/Speed slider and re-applying the Adaptive option to see the impact this setting has on layer heights.

Impact of variable layer heights on print time & quality

Although VLH is commonly applied to improve print quality, it can also have a dramatic effect on print times. This is particularly noticeable when you apply VLH to a part that would normally be printed with low layer heights for detail, and VLH determines that there are layers that can be printed at higher – and thus faster printing – heights.

Using the default Adaptive setting, the print time for our 60mm sphere has dropped to 2h49m, saving nearly an hour of printing time. Select the Height view option in the box at bottom-left of the Preview display to see the layer heights used throughout the print.

Slicer results with variable layer heights

Fig. 123 Slicer results with variable layer heights

Applying variable layer heights to different parts

We’re also not limited to applying variable layer heights across all parts in a single print. PrusaSlicer allows us to apply different settings for each part on the bed. This example shows the results of applying VLH to different parts.

Automatic variable layer heights in |PS|

Fig. 124 Automatic variable layer heights in PrusaSlicer

The same settings will be applied to all instances of the same part. If you add instances or set more than one instance of a part, all will use the same VLH settings. Insert another copy of the same part (STL) to apply different VLH settings to otherwise-identical parts.

Setting minimum & maximum layer heights

Finally, you may be wondering where the minimum and maximum layer heights are pulled from. This isn’t immediately obvious, but you can specify minimum and maximum layer height ranges in your Printer Settings profile.

Minimum & maximum layer height settings in Printer Profile

Fig. 125 Minimum & maximum layer height settings in Printer Profile

Contact and feedback

You can find me on the Prusa support forums or Reddit where I lurk in many of the 3D printing-related subreddits. I occasionally drop into the Official Prusa 3D discord server where I can be reached as bobstro (bobstro#9830). You can email me directly at

Last edited on Apr 04, 2021. Last build on Apr 03, 2021.