Bed mesh visualiser
Paste a bed mesh from Klipper, Marlin (bilinear or UBL), Prusa G81, or printer.cfg and see it as a heatmap and a rotatable 3D surface, with flatness statistics, tilt from a plane fit, how far to turn each levelling screw, and a before/after comparison.
Added
How to use it
-
Getting the mesh: Klipper — run
BED_MESH_OUTPUTand copy the console, or paste thepoints =block from the saved profile at the bottom ofprinter.cfg. Marlin —G29 TorM420 V(bilinear or UBL). Prusa —G81. Any plain grid of numbers works too. -
Orientation: rows with indices (Marlin) are placed by their index. For unnumbered grids, the first row is assumed to be the front (Klipper and Prusa); tick the box if yours is the back.
-
Statistics: range, mean, standard deviation, and a least-squares plane. The plane’s slope is the tilt (mm per 100 mm); what is left after removing it is the bed’s own warp or bow.
-
Screws: enter where the levelling screws are and their thread. Each screw is compared with the reference, using the plane fit (or the nearest mesh values), and the tool says how far to tighten or loosen it — as a fraction of a turn and as a clock face (
00:15= a quarter turn), like Klipper’sSCREWS_TILT_CALCULATE. On sprung beds tightening usually lowers the corner. -
Compare: paste a second mesh (after tramming, or hot vs cold) to see what changed.
-
⛶ Full screen (or
F) gives the 3-D surface the whole screen, with the exaggeration slider above it — the browser’s full screen where it is allowed, otherwise a full-window layer (iPhone); it is redrawn as the window changes, and ◫ Panels hides the mesh, bed and screw inputs beside it. Escape leaves.
Positive mesh values mean the bed is higher (closer to the nozzle) at that point.
Feedback is a gift. Something to improve, a feature to add, or a bug? Tell me.
Runs entirely in your browser; nothing you type leaves this page.