Skip to content

Vertical Fine Artifacts (VFA): Why Fine Vertical Stripes Show Up on Print Walls

Vertical fine artifacts are 10 to 40 micron ridges that repeat at the same point on every layer, visible only as a reflection on glossy prints. Here is how to tell them apart from Z-banding and ringing, and what belt tension, slicer cooling logic and stepper drivers each contribute.

Close-up of a black 3D printed part, the kind of glossy dark surface where vertical fine artifacts show up under angled light

Pick up a black PETG print, turn it slowly under a lamp, and at one particular angle the wall stops looking smooth. Faint vertical stripes appear, running up the part, evenly spaced. Tilt it back and they vanish. Your fingers feel nothing. Calipers say nothing.

Those are vertical fine artifacts, usually shortened to VFAs. They are the most annoying category of print defect, because they are almost entirely optical and almost entirely unavoidable, and once you know how to spot them you will find them on prints you were perfectly happy with last week.

What a VFA actually is

Prusa spent two months in 2025 investigating VFAs on the CORE One after enough owners complained, and their write-up is the clearest public description of the problem. Their definition: microscopic imperfections in the extrusion that repeat at the same point on every layer, stacking up into a vertical line on the model.

The scale matters. Prusa says VFAs become visible at around 10 microns, and the worst examples they measured were about 40 microns from peak to valley. That is small enough that a lot of metrology equipment will not reliably pick it up, and far too small to feel by hand. What makes them visible is reflection. A glossy filament bounces light off those tiny ridges, and your eye is extremely good at spotting a repeating pattern in a highlight.

Which leads to the uncomfortable part of Prusa’s conclusion: VFAs exist on nearly every 3D printer on the market. Not a Prusa problem, not a Bambu problem, not a cheap-printer problem. Rotate any glossy print at the right angle and they are there.

Make sure that is what you are looking at

Three defects get confused with each other constantly, and the fix for each is different.

VFAs run vertically, straight up the part, and they repeat around the perimeter at a consistent spacing. They show on flat walls, away from corners. If your stripes run horizontally instead, repeating at a fixed height, you are looking at Z-banding, which comes from the Z axis rather than the XY motion system. If the ripples appear right after a corner and fade out along the wall, that is ringing, and the ghosting guide is the one you want.

The other detail worth measuring before you start changing things is the spacing. VFAs from different sources have different pitches, and pitch is the only real evidence you have about which source is yours. Prusa ruled out the motors as a cause on the CORE One precisely this way: the artifact spacing they measured did not match the pitch their motors would produce. If you skip this step you will spend a weekend swapping parts based on a guess.

Belt tension is the first thing to check

When Prusa analyzed affected printers from the community, the evidence pointed overwhelmingly at improper belt tension. Not worn belts, not the wrong belts, just tension that was off. They ended up designing a new tuning device and shipping a reworked procedure through the Prusa App, which uses your phone microphone to read the frequency of a strummed belt.

Two pieces of their advice generalize well beyond Prusa hardware. First, on a CoreXY machine the two belts meet at the extruder, so they are mechanically coupled. If you adjust only the left screw to tension the top belt, you skew the gantry. Always turn both screws by the same amount, even when you are only trying to change one belt. Second, some phones apply noise suppression to the microphone input, which wrecks any frequency reading. If your numbers look nonsensical, try a different browser or a different phone before you conclude the belt is wrong.

On Klipper machines you can compare belt tension between the two motors without any app at all. The Klipper documentation describes running TEST_RESONANCES AXIS=1,1 OUTPUT=raw_data and TEST_RESONANCES AXIS=1,-1 OUTPUT=raw_data on a CoreXY printer, then processing both files with graph_accelerometer.py to overlay the resonances. The two curves should look alike. If one belt is looser than the other, the graphs separate. Our belt tension guide covers the mechanical side of adjusting them once you know something is off.

The slicer causes more of this than people expect

This is the part of Prusa’s investigation I did not see coming, and it turned out to be the bigger win.

Every slicer descended from Slic3r handles thin layers the same way. When a layer has a small cross-section, the plastic needs time to cool before the next one lands on top, so the slicer slows the whole layer down. That works. It also changes how the filament looks, because printing a glossy material at a different speed changes its reflectivity, which is where those horizontal glossy and matte bands on mechanical parts come from.

Worse for our purposes: the slowdown can drop the printer onto a speed that excites a resonance in the frame. Those vibrations go straight into the surface. So a cooling decision made by the slicer produces a mechanical artifact on the wall.

PrusaSlicer’s answer, introduced in the 2.9.3 beta, is a cooling strategy called Consistent Surface. Instead of slowing everything, it slows infill first, touches perimeters only when it has to, and keeps the original speed for the last segment of the loop. You can switch back to the old behavior under Filament settings, Cooling, Cooling slowdown logic. Prusa also credits OrcaSlicer’s “Don’t Slow Down Outer Walls” option, contributed by igiannakas, as an earlier attempt at the same problem by a different route. If you use OrcaSlicer rather than PrusaSlicer, that setting is the closest equivalent available today.

The same PrusaSlicer release added a second, narrower fix: it applies a lower acceleration to the very short travel moves between perimeters. Those hops are almost instantaneous, often perpendicular to the wall, and at full acceleration they jolt the whole machine. Normal travels stay fast.

Perimeter speed, and an honest tradeoff

Prusa identified specific perimeter speeds at which VFAs appear on the CORE One and edited their profiles to avoid them. For most profiles this cost nothing measurable in print time.

The Structural profiles were the exception, and Prusa’s handling of it is worth repeating because most vendors would have quietly buried it. Moving the perimeter speeds far enough to kill VFAs on those profiles would have changed the mechanical properties of the parts. They decided strength wins, made only minor adjustments, and stated plainly that Structural profiles will still show VFAs, especially with PETG. They introduced a new BALANCED profile family instead for people who want surface finish and speed together.

If you are on a machine with a tunable profile, the transferable lesson is that your outer wall speed is a variable worth testing. Print the same part at a few perimeter speeds and look at them under a lamp. One of them will be noticeably cleaner, and it will not necessarily be the slowest.

Stepper drivers: real, but do not start here

The community has long blamed stepper drivers for fine vertical banding, sometimes under the name salmon skin. There is a real mechanism behind it, and Klipper’s documentation quantifies it, though the docs never use either term, so treat what follows as the underlying physics rather than a diagnosis.

Klipper puts TMC drivers in spreadCycle mode by default. stealthChop is quieter but less accurate: tests showed positional lag of roughly 75 percent of a full step during constant velocity moves. On an axis with a 40 mm rotation distance and 200 steps per rotation, that works out to about 0.150 mm of deviation.

The driver’s interpolate setting has a smaller effect. It quiets the motor at the cost of a systemic error of nearly half a microstep, precisely half a microstep distance minus a 512th of a full step. For a 40 mm rotation distance, 200 steps per rotation and 16 microsteps, that is around 0.006 mm. If you want maximum positional accuracy, Klipper’s recommendation is spreadCycle with interpolate: False, then raise the microstep setting to 64 or 128 to recover the quiet running without the error. And if you are already in stealthChop, tuning interpolation is pointless, because its error is dwarfed by stealthChop’s own.

Note what those numbers say. Six microns from interpolation sits right at the bottom edge of what Prusa says is visible. It is a plausible contributor, not usually the main one. Prusa’s own analysis cleared the motors on their machine. Measure your artifact spacing before you rewrite your driver config.

Hiding them, which is a legitimate answer

Since VFAs are an optical effect, anything that changes how the surface reflects light works. Matte filament makes them essentially disappear. Prusa’s own before-and-after comparison on matte PLA is barely distinguishable, while the black PETG pair is dramatic. Lower extrusion temperatures also help, because temperature changes PETG’s optical properties.

If the part is going to be sanded, painted or primed, none of this matters at all. A coat of filler primer erases a 40 micron ridge without any effort.

Knowing when to stop

Josef Prusa closed his article with a warning I think about a lot. If you go looking for a test object designed to force VFAs on a specific machine, you will find one or design one. There is no tuning that survives a synthetic test built to defeat it.

So the honest target is not zero. Tune your belts, update your slicer, find a perimeter speed your frame likes, and print your glossy parts in something matte when the finish actually matters. Then stop rotating your prints under the lamp.

Sources

Sources checked August 10, 2026.

Your next print can be better

Describe the symptom. Start with the most likely fix.

The troubleshooting hub narrows the library by print stage, material and the action you are comfortable taking.