How the Bed Mesh Visualizer Works
When your printer probes the bed, it stores a grid of heights. Each number is how far the bed is above (+) or below (−) the reference height at that point. Positive means the bed is higher there, closer to the nozzle. This tool reads that grid, works out which corner is which, and shows it as a surface you can turn round and as a coloured map with the values.
It then fits a flat, tilted plane to the points. The tilt is what your bed screws can fix. What is left once the tilt is removed is the real shape of the plate (a bow, a dip or a twist), which only the mesh, a new plate or a straighter frame can fix.
Which Corner Is Front-Left in Each Format
Firmware prints its grids in different orders, and getting this wrong turns your screw advice back to front. The tool places each format as shown, assuming the usual printer layout with X = 0 at the left and Y = 0 at the front. Use the rotate and flip controls if your printer is homed differently (for example Y = 0 at the back).
| Output | First line printed | Front-left point |
|---|---|---|
Marlin bilinear G29 T / M420 V ("Bilinear Leveling Grid") and Marlin mesh bed leveling | Row 0 = front (Y ascending) | Row 0, column 0: top-left of the text |
Marlin UBL G29 T / M420 V ("Bed Topography Report") | Highest row number = back (Y descending) | Row 0, column 0: bottom-left of the text |
Marlin UBL G29 T1 (CSV) | Back row | First value of the last line |
Klipper BED_MESH_OUTPUT "Probed Z positions" | Front row (Y ascending) | First value of the first line |
Klipper [bed_mesh default] points = | Front row (Y ascending) | First value of the first line |
| Klipper "Measured points" (interpolated) | Back row (Y descending) | First value of the last line |
Prusa G81 | Back row (Y descending) | First value of the last line |
| Plain CSV or space grid | You choose (default: back, as seen from above) | First value of the last line (default) |
Marlin and the UBL map label each row with its Y index, and the tool uses those labels. The UBL point shown in [brackets] is the nozzle's current position, not a fault. Empty points (UBL "." or Marlin "=====") are left out of the numbers.
The Formulas
SCREWS_TILT_CALCULATE.Worked Example
- Lowest point −0.112 mm (front-left), highest +0.146 mm (back-right), so the range is 0.258 mm: marginal by the rule of thumb. Mean +0.029 mm, standard deviation 0.063 mm.
- The plane fit gives b = 0.000616 and c = 0.000635 mm per mm. Across the 200 mm mesh the bed rises 0.123 mm left to right and 0.127 mm front to back. That is tilt.
- With the tilt removed the range drops to 0.037 mm. The plate itself is flat; the screws just need setting.
- With the front-left screw at (30, 30) as the reference: front-right (205, 30) is 0.000616 × 175 = 0.108 mm high, so 0.108 ÷ 0.5 = 0.215 turns, 00:13, tightened (clockwise seen from below). Back-right is 0.219 mm high: 0.438 turns, 00:26. Back-left is 0.111 mm high: 00:13.
Tips for a Flatter First Layer
- Heat soak first. Probe with the bed at printing temperature and give it 5 to 10 minutes. A cold mesh can differ from a hot one by 0.05 mm or more.
- Fix the tilt with screws, the shape with the mesh. If the tilt-removed range is small but the raw range is large, level the screws. If the tilt-removed range is large, the plate is bowed or the gantry is twisted; check that the X gantry is square and both Z sides are at the same height.
- Pick the lowest corner as the reference if your springs are already near fully compressed, so you only loosen; pick the highest if the springs are loose.
- Check the corners. If the mesh area is set wrong, the slopes and turns are wrong too. Use the real first and last probe positions.
- Printing fixtures? A flat first layer matters for accurate holes. See hole compensation, heat-set insert hole sizes and the clearance hole chart. If ringing spoils your walls, use the input shaper explainer.
Frequently Asked Questions
The flatness bands are rules of thumb and the preset screw positions are approximate. Turn the screws in small steps and re-probe; the mesh is only as good as your probe's repeatability.
Published October 30, 2026.