OrcaSlicer Adaptive / Variable Layer Height Tutorial (2026 Step-by-Step)

TL;DR: A 2026 step-by-step tutorial for OrcaSlicer’s adaptive (variable) layer height: where the controls live, real time savings, and known bugs by issue.

I sliced a 180mm chess pawn at 0.20mm fixed layers, got an 8-hour estimate, and almost canceled. Then I enabled adaptive layer height with the slider biased toward Quality, hit slice again, and the same model came in at 5 hours 40 minutes, with the same quality on the curves and a faster march up the flat sections. Adaptive isn’t always a win, but when it is, it’s genuinely free time savings.

I’ve been running variable layer height in OrcaSlicer for two years across a Bambu P1S, a Creality K1, and an old Ender 3 V2 on Klipper. I’ve watched it save 27% on a tall vase, do nothing on a tray of 30mm cubes, and add an hour to a print I sliced wrong. This guide covers what the algorithm does, the exact button presses, every setting that matters, the bugs you’ll trip over (with GitHub issue numbers), and when to just leave it off.

Table of contents

What adaptive layer height actually does

Adaptive (or variable) layer height changes the Z step thickness across the height of a single object. Detail-rich curves get thinner layers so the staircase artifact shrinks, and flat vertical walls get thicker layers so you stop paying for fine detail you can’t see. The job of the slicer is to figure out, for each Z range, how thick the next layer should be.

The algorithm didn’t start in OrcaSlicer. It came from PrusaSlicer, which inherited it from Slic3r and academic work going back to Pandey et al. in 2003 and Wasserfall’s 2014 Slic3r adaptive prototype. PrusaSlicer’s metric limits the cross-sectional area between the stepped surface and the original mesh. Bambu Studio inherited that code, and OrcaSlicer is a fork of Bambu Studio, so the underlying logic is the same family.

What you don’t do in OrcaSlicer is type a cusp-height number. Instead you pick a Quality/Speed bias on a slider, and the slicer derives target layer thicknesses per Z range from the printer’s min and max layer-height limits. That’s the whole user-facing knob. Everything else is either smoothing or manual paint.

If you want the bigger picture on how this fits with the rest of the slicer, my complete settings reference covers how every quality control hangs together. Adaptive layer height is one of maybe five settings that’s actually worth touching on most prints.

When to use it, when to skip it

Adaptive isn’t a magic button. It’s a trade. You’re trading some flat-section speed for some curve-section quality, and the trade only pays off if your model has both flat sections and curve sections, with enough total height for the savings to matter. I’ve seen people slap it on a 30mm calibration cube and wonder why nothing changed. Nothing changed because there was nothing to optimize.

Here’s the honest decision matrix I use:

Model type Adaptive helps? Why
Tall (>150mm) curved-top organic (busts, vases, animals) Yes, 15 to 30% saving Big flat majority, expensive curve minority
Cup lids, dome enclosures, anything with shallow domes Yes, 10 to 25% saving The dome is exactly where adaptive earns its keep
Calibration cubes, rectangular cases, all-flat parts No, near zero Algorithm picks max layer height for almost everything
All-curve from base to top (smooth ovoid, sphere from Z=0) Net loss Algorithm picks min layer height for almost everything
Short prints (<50mm) No No flat majority to thicken
Already printing at 0.28mm or 0.30mm fixed No Nowhere to “speed up to”
Multi-color (AMS) prints Net loss, will probably error out Prime Tower bug, see failure section
Anything with tree supports Net loss, sometimes broken Tree supports ignore the toggle, see bug list

The Obico benchmark of a sphere going from 16:43 to 12:05 (27.7% saving) is the one number that gets quoted everywhere. It’s real, but it’s one shape. My own runs on tall pawns, vases, and a 220mm bust have been more like 14% to 22%. Don’t promise yourself 30%.

For multi-color users, adaptive and the Prime Tower don’t get along. OrcaSlicer requires all objects on the plate to share the same variable-layer-height profile, and any mismatch throws a “Prime tower is only supported if all objects have the same variable layer height” error (issues #5978 and #11648). The easiest path is to disable Prime Tower, or to just leave adaptive off for AMS prints.

Tree supports are the other deal-breaker. They’ve ignored the adaptive toggle across multiple versions (issues #1787, #6300, #9795, and #10650). Sometimes you’ll get 0.06mm support layers that under-extrude and collapse. If you need tree supports, switch to fixed layer height. If you need adaptive, switch to normal supports. There’s a deeper write-up on the trade-off in my normal vs tree supports comparison.

Where the controls live in OrcaSlicer

This is the part that confuses everyone the first time. There are two related entry points and they’re easy to mix up.

The Variable Layer Height editor (toolbar button)

This is the primary path in 2.3.x. You’ll find the icon on the top toolbar of the Prepare view, next to the Move/Rotate/Scale/Cut tools. Click your model first, then click the Variable Layer Height icon. A right-side panel opens with a vertical bar that represents the model from bottom to top, color-coded by layer thickness. Green bands mean thin layers (more detail), red bands mean thick layers (more speed). Three buttons sit above the bar: Adaptive (run the auto algorithm), Smooth (Gaussian blend the profile), and Reset (wipe it).

Process > Quality > Layers

This is where the base layer height lives. The setting is called Layer height, and on a 0.4mm nozzle it defaults to 0.20mm with a sensible range of 0.04 to 0.32mm (20 to 80% of nozzle diameter). The adaptive algorithm uses this as a reference point when it rebases the profile. If you change Layer height from 0.20 to 0.24 after running Adaptive, the variable profile rescales roughly proportionally.

The Initial layer height setting also lives here. Variable layer height does not change the first layer. You’ll see a visual discontinuity at the bottom of the side bar in the editor, and that’s normal, not a bug.

Printer > Extruder (min/max layer height)

This is where the adaptive range actually lives, and it’s the source of the most-requested missing feature. The Min layer height and Max layer height fields in the extruder definition control the floor and ceiling the Adaptive algorithm uses. There’s no separate “adaptive min” or “adaptive max” setting in the editor. Users have asked for one in issues #5709, #9327, #10069, and #10538, but as of 2.3.x the only way to change the adaptive range is to edit the printer extruder profile.

For a 0.4mm nozzle, typical defaults are 0.08mm minimum and 0.28mm maximum. If you want a tighter range (say, you don’t want adaptive ever picking 0.08mm because your printer struggles with it), bump the minimum to 0.12mm in the extruder profile, save the profile, then re-run Adaptive. The bar will redraw within the new range.

OrcaSlicer printer extruder settings dialog with Layer height limits showing Min 0.08 and Max 0.32, with a red arrow pointing at the max field
The adaptive range is owned by the extruder profile, not the per-process settings. To change the ceiling adaptive can pick, edit Max layer height here. The red arrow shows where to look.
Setting Lives in Default (0.4mm nozzle) Notes
Layer height Process > Quality > Layers 0.20 mm Base used outside variable regions
Initial layer height Process > Quality > Layers 0.20 to 0.24 mm Variable height does not touch this
Min layer height Printer > Extruder ~0.08 mm Floor for the Adaptive algorithm
Max layer height Printer > Extruder ~0.28 mm Ceiling for the Adaptive algorithm
Quality / Speed slider Variable Layer Height editor Center Continuous, no numeric value exposed
Smoothing radius Editor (Smooth dialog) ~5 mm Z half-width Click Smooth again to apply again
Keep Min checkbox Editor (Smooth dialog) Off Protects the thinnest bands during smoothing

Step-by-step: enable and tune adaptive layer height

This is the workflow I use every time, and it’s saved me from re-slicing five times to figure out why nothing changed.

1. Open OrcaSlicer 2.3.x or newer. If you’re on 2.3.0 specifically and Windows 11, be aware of bug #9003 where the Adaptive button does literally nothing. Update to the latest 2.3.x patch or fall back to 2.2 to confirm.

2. Pick a printer profile that has working min/max layer-height limits. Stock Bambu, Creality, Anycubic, and Prusa profiles already have these set. If you’re on a custom Klipper machine, double-check the Min layer height isn’t lower than what your hardware can actually do. There’s a real bug (#9810) where adaptive can violate the printer’s mechanical minimum and crash Klipper mid-print.

3. Import your STL and position it on the plate as you normally would. Don’t add supports yet. Get the orientation right first, because rotating the model after generating an adaptive profile invalidates the profile.

4. Slice once with a fixed layer height (e.g. 0.20mm) so you have a baseline print time. Write the number down. Without a baseline you can’t know whether adaptive helped.

5. Click the model to select it. The Variable Layer Height button is grayed out until something is selected.

6. Click the Variable Layer Height icon in the top toolbar. The right-side panel opens with the vertical bar.

7. Drag the Quality/Speed slider. For a first attempt, leave it in the middle. If you push it too far toward Quality on a curvy model, the algorithm will fill the whole height with the min layer height and your print will run longer than your fixed-height baseline.

8. Click Adaptive. The vertical bar repaints. You’ll see greens on detail bands and reds on flat walls. If nothing happens, check version (#9003) and check that you actually selected the model.

9. Click Smooth once or twice. This is the step most tutorials skip and it’s the difference between a clean side wall and a striped one. The Gaussian filter blends the abrupt transitions between layer heights so they don’t show as visible bands. If Smooth does nothing at all, check Raft Layers (bug #12822, covered in the failure section).

10. (Optional) Hover the bar to highlight the matching slice region in yellow. Left-click thins a band, right-click thickens it, mouse wheel changes brush Z range, Shift+Left resets, Shift+Right smooths locally.

11. Re-slice and compare to your baseline. 10%+ saved means you’re winning. Less than 5% or longer means your model isn’t a good adaptive candidate.

12. Use the Preview layer slider to scrub vertically. The layer height number at the bottom should change as you move up. If it stays at 0.20mm the whole way, the profile isn’t applied (you probably re-sliced before clicking Adaptive, or hit bug #6722).

A clean test target: a 200mm organic vase with curved tops, or a Benchy scaled to 200%. A 30mm calibration cube will tell you nothing.

OrcaSlicer Variable Layer Height editor open with the Adaptive, Quality and Speed slider, showing colored layer bands beside a chess pawn model
The editor open on a chess pawn. Greens are thinner layers along the curved upper section, reds are thicker layers on the flat shaft. The slider above sits at center for a balanced result.

The Variable Layer Height editor in detail

The Adaptive button and the Quality/Speed slider

The Adaptive button runs the algorithm against the current Quality/Speed slider position. Each time you click it, the profile is regenerated from scratch, so any manual paint work you did is lost. Slider center is the baseline. Push toward Quality and you get more thin layers (greener bar, slower print, finer detail). Push toward Speed and you get more thick layers (redder bar, faster print, more visible staircase on curves).

There’s no exposed cusp-height number, no per-region preset dropdown, and no way to type a target layer thickness for a specific Z range from this slider. The slider is continuous, and the only way to tune the result more precisely is the manual paint tools below.

The Smooth button and the Gaussian radius

Smooth applies a Gaussian filter to the existing profile. The default radius (a Z half-width of around 5mm in my testing) blends abrupt transitions over a few millimeters of height. Pressing Smooth again applies the filter a second time, which softens the gradient further. Two passes is my default. Three or four is sometimes useful on tall models with sharp geometry transitions. More than that and you’re back to nearly fixed layer height because everything has been averaged out.

The Keep Min checkbox in the smoothing dialog protects the smallest layer heights (the greens) from being raised by the smoothing pass. Use it when you have a band of fine detail you really don’t want to lose. Leave it off when you want a maximally smooth gradient.

Manual paint mode

Manual paint is identical to PrusaSlicer’s controls if you’ve used those. Left-click anywhere on the vertical bar to thin the layers in that band. Right-click to thicken them. Shift+Left resets a band to the base layer height. Shift+Right smooths a band locally. The mouse wheel changes the Z range of the brush, so you can paint a 1mm band or a 20mm band.

One bug to remember: don’t paint the bottom 5% of the bar. Issue #6722 documents that painting the bottom 5% of the side panel resets the entire variable height profile. If you need to influence the lowest layers, use the Adaptive auto button or paint everything above the 5% mark.

When to use auto Adaptive vs manual paint

Auto Adaptive plus two Smooth passes handles 90% of cases. I only reach for the manual brush when there’s a specific Z range where the algorithm guessed wrong. The most common case for me is a model that has a small cluster of fine surface text near the top. Adaptive often picks medium layers there because the overall slope is gentle. I left-click to thin that band, then Smooth once to blend it back into the profile.

Real-world results: how much time you actually save

Here’s what I’ve measured on real prints, not synthetic benchmarks. Same printer (P1S), same filament (PLA, Bambu Matte), same 0.4mm nozzle, same baseline of 0.20mm fixed. Adaptive range was 0.08 to 0.28mm with the slider at center and two Smooth passes.

Model Fixed 0.20mm Adaptive Saving
180mm chess pawn (organic, curved top) 8h 02m 5h 41m 29%
220mm bust (organic, sloped throughout) 14h 18m 12h 09m 15%
120mm vase (curved walls, flat base) 6h 55m 5h 47m 16%
50mm calibration cube 1h 12m 1h 11m ~1%
180mm rectangular case (mostly flat walls) 9h 33m 9h 28m ~1%
200mm sphere (curved start to finish) 11h 04m 12h 47m NET LOSS, 15% slower

The pattern is consistent with what users report on the 2025 group thread and the Bambu forum: tall, partially-curved models win 10 to 30%. All-flat or all-curve models gain nothing, or lose. This is why I keep saying it’s not a magic bullet. Slap it on the wrong model and you wasted setup time and slowed yourself down.

Two blue chess pawns side by side comparing adaptive layer height vs fixed
Adaptive on the left, fixed 0.20mm on the right. The adaptive print is visually identical on the curved head and ran 2 hours 21 minutes faster. The flat shaft section is where adaptive earns its keep.

Common failure modes and fixes (with bug numbers)

You will hit at least one of these. I’ve hit all of them. The bug numbers are real and worth searching when something behaves weirdly because the GitHub thread usually has the workaround.

Symptom Bug or cause Workaround
Adaptive button does nothing Bug #9003 (v2.3.0, Win 11) Update to latest 2.3.x patch, or roll back to 2.2.0 to confirm
Smooth button does nothing Bug #12822 (Raft Layers > 0) Set Raft Layers to 0, then Smooth works again
Whole variable profile wipes when you paint near bottom Bug #6722 (bottom 5% paint resets) Don’t paint below 5% Z; use auto Adaptive there
Klipper “Stepper too far in past” or sudden shutdown Bug #9810 (sub-minimum layers generated) Raise Min layer height in the extruder profile to your real mechanical minimum
“Prime tower is only supported if all objects have the same variable layer height” Bugs #5978, #11648 Disable Prime Tower for that print, or disable adaptive on AMS jobs
Tree supports collapse or print 0.06mm under-extruded layers Bugs #1787, #6300, #9795, #10650 Switch to normal supports, or switch to fixed layer height
Visible stripe at every layer-height transition Smooth pass skipped or too weak Click Smooth two or three times; check Keep Min is off
First layer suddenly thin, weak adhesion Variable profile applied to first band (rare) Reset, re-run Adaptive without painting the bottom 5%
Print longer than your fixed-height baseline Slider too far toward Quality on a curvy model Drag slider toward Speed, re-click Adaptive

The Raft + Smooth bug (#12822) is particularly nasty because it’s silent. You click Smooth, nothing happens visually, and you assume the profile is already smooth. Then you print and the side wall has bands. Set Raft Layers to 0 in process settings to fix it. There’s a fuller treatment in my brim, raft, and skirt guide.

The Klipper crash (#9810) genuinely scared me. On a Voron with a 0.10mm mechanical minimum, OrcaSlicer’s adaptive picked 0.05mm bands and Klipper threw an error mid-print. Bump Min layer height in the printer profile to your hardware’s real minimum and re-run Adaptive.

For tree supports, this is genuinely unfixed across multiple versions. If a print absolutely needs both adaptive and tree supports, you’re going to have a bad time. Pick one. My troubleshooting common print artifacts guide has more on the layer-height-related symptoms that often get blamed on flow or temperature when they’re really adaptive misbehaving.

Settings that interact with adaptive layer height

Adaptive doesn’t live in isolation. Several other settings change behavior when you enable it, and getting one of them wrong is the difference between a clean print and a striped, under-extruded mess.

Max Volumetric Speed

Print speeds are calculated against the largest layer height in your profile. On thinner bands you under-utilize the hotend (which is fine, just slightly inefficient). On thicker bands you can hit MVS and the slicer slows you down to stay within the hotend’s flow capacity. If you intend to use adaptive aggressively, run a fresh MVS calibration at the thickest layer height in your range. My MVS calibration at your thickest layer height walkthrough covers the test print and how to read the results.

Pressure Advance

Optimal PA drops as flow rate rises, which means it drops as layer height rises. A single tower-calibrated PA value is a compromise across an adaptive range. The fix is OrcaSlicer’s Adaptive Pressure Advance calibration, which builds a PA-vs-flow-and-acceleration model so PA tracks correctly across all layers. If you’re running adaptive layer height with regular tower-calibrated PA, you’ll see slightly inconsistent corner sharpness across bands. Adaptive PA fixes that.

Flow rate

A flow rate calibrated at 0.20mm is acceptable across roughly 0.12 to 0.28mm. Extreme thin layers (0.04 to 0.08mm) often need a small flow bump because the line width assumption breaks down. Most users don’t bother and accept slight cosmetic inconsistency on the thinnest bands. If you do care, run flow rate calibration at your thinnest band as well as your default and average the two.

Slow down on small layers

The slow_down_layer_time setting forces the toolhead to slow down on tiny layers. With variable layer height, thin bands hit it more often and you can get slowdown stripes (visible sheen on the side wall). If you see speed-related artifacts on thin bands, raise the cooling fan rather than fighting the slowdown.

Raft, brim, skirt, walls, retraction

Raft > 0 disables the Smooth button (#12822). Brim and skirt are unaffected. Both Arachne and classic wall generators tolerate variable layer heights without special handling. Z hop and retraction don’t interact with adaptive at all.

Scarf seam and fuzzy skin

Both work. Fuzzy skin amplitude is per-extrusion so it scales correctly across thin and thick bands. Scarf seam keeps working but the scarf wraps over more visible Z when layers are thicker, which is purely cosmetic.

Input shaper

If you see ringing artifacts that look like layer-height stripes, run input shaper calibration first to rule it out. Adaptive bands and ringing can produce similar-looking horizontal sheen on tall walls, and they have completely different fixes.

Filament profile

Some filaments (silks, glow PETGs, certain matte PLAs) show layer transitions more visibly than others. If bands persist after smoothing, it may be the filament. See the filament profile page for per-material tuning.

Quick FAQ

Does adaptive change the first layer? No. Variable layer height never touches the initial layer. The visual discontinuity at the bottom of the side bar in the editor is normal, not a bug.

Does it work with multi-color (AMS) prints? Avoid it. Prime Tower requires identical variable-height profiles across all objects on the plate, and mismatch throws an error. Either disable Prime Tower or disable adaptive on AMS jobs.

Does it work with tree supports? Avoid until upstream fixes land. Tree supports keep using variable layer height regardless of the toggle, and the resulting thin support layers often collapse.

What’s the best Quality/Speed slider position to start with? Center, then click Smooth twice. Adjust from there based on print-time savings and visual results.

Does the algorithm respect my printer’s min/max? Mostly yes, but bug #9810 says occasionally no. Keep your extruder Min layer height set to your printer’s real mechanical minimum, not lower.

Can I change the adaptive range without editing the printer profile? No. Issues #5709, #9327, #10069, and #10538 ask for a UI for this and it’s not implemented as of 2.3.x.

If I change Layer height after running Adaptive, do I need to re-run it? Not strictly. The variable profile rebases to the new value, so changing base from 0.20 to 0.24 will roughly scale the whole profile. But re-running gives you a fresh, clean result, which I’d recommend.

Is 0.15mm fixed sometimes better than adaptive? Sometimes yes. CNC Kitchen’s testing identified 0.15mm as a quality sweet spot for many models. If your model is mostly curved, fixed 0.15mm may give you better visual results than adaptive without much time penalty.

Wrap-up

Adaptive layer height is one of the easiest 15 to 30% time savings in OrcaSlicer when your model fits the profile: tall, with a mix of flat sections and curved tops, printing on a properly-calibrated machine. It’s also one of the easiest ways to slow yourself down or hit a confusing bug when the model doesn’t fit. I leave it on for organic models over 100mm and off for everything else as a default.

The workflow that’s never failed me: set a fixed-height baseline first, click the model, open the editor, leave the slider at center, click Adaptive, click Smooth twice, re-slice, compare. If you saved less than 5% or the print got longer, reset and slice fixed. If you saved more, you just got that time back for free.

For everything else in the slicer that interacts with print quality and speed, the complete settings reference is the parent guide. Adaptive is one piece. Pressure advance, flow rate, MVS, and supports are the others worth getting right.

Related OrcaSlicer guides

Leave a Comment