100% local processing — your files never leave your computer

G-code Viewer

Open a G-code file and inspect its statistics — layers, tools, movement counts, bounds and time estimates — directly in your browser.

Your G-code file stays on this device. MeshWrench reads and renders it locally in your browser — it never connects to a printer.

Up to 400 MB. Targets common FDM slicer output (Marlin/Klipper-style) from Cura, PrusaSlicer, OrcaSlicer and Bambu Studio.

Waiting for a file

Interactive toolpath preview. Drag to rotate, scroll to zoom.

Show
File size
Decoded lines
Detected slicer
Layers
Layer detection
Tools
Linear moves
Arc moves
Rendered segments
Unknown commands
Malformed lines
Checksums
Model width
Model depth
Model height

Current command
Position (X/Y/Z)
Extrusion (E)
Feed rate
Elapsed (feed-rate-only estimate)

Movement

Extrusion moves
Travel moves
Retracts
Extrusion distance
Travel distance
Total Z travel
Feed rate range

Time estimates

Slicer-provided estimate
Feed-rate-only estimate

The feed-rate-only estimate divides path distance by commanded feed rate — it never models acceleration, jerk, pressure advance or firmware queues, and is never the same as actual print time.

Tools and temperatures

Tools used
Bed temperature setpoints
Fan state changes

Things to know about this file

    How to view a G-code file

    1. Select a G-code file using the picker above.
    2. MeshWrench parses it locally, in a background worker — nothing leaves your device.
    3. Once parsing finishes, drag to rotate, scroll to zoom, and use the panels below to inspect statistics, filter by layer, or play back the toolpath.

    What this tool is — and isn't

    This is a static viewer, visualizer and visual simulator for a G-code file that already exists. It is never a slicer, never a firmware emulator, and never a machine controller — it doesn't use WebSerial, doesn't connect to any printer, and never executes a single command. Playback is a visual reconstruction of the parsed toolpath, not a claim that it exactly reproduces physical printer motion.

    Supported G-code scope

    MeshWrench targets a documented semantic subset of G-code aimed at common FDM slicer output for Marlin- and Klipper-style printers, including typical patterns from Cura, PrusaSlicer, OrcaSlicer and Bambu Studio. This is not universal G-code support — unknown or unsupported commands are counted and disclosed, and parsing continues around them rather than failing the whole file.

    What the model info panel shows

    File size, decoded line count, detected slicer (when a file declares one), layer count and detection method (explicit markers vs. inferred from height changes), tool count, linear and arc move counts, rendered segment count, unknown-command and malformed-line counts, checksum status, and the model's own bounds.

    Time estimates, kept honest

    When a file declares its own slicer-estimated print time, that number is shown separately from MeshWrench's own feed-rate-only estimate — path distance divided by commanded feed rate. The feed-rate-only estimate never models acceleration, jerk, pressure advance, or firmware queues, so it's never presented as actual print time.

    Is the file uploaded?

    No. There is no server-side file-processing route in MeshWrench at all. Your browser reads the file with the standard File API, hands its bytes to a Web Worker running on your device, and renders the result with WebGL — also on your device.

    Frequently asked questions

    Is my G-code file uploaded?

    No. It's read and parsed entirely in your browser, inside a background Web Worker. Nothing is sent to a server — check your browser's network tab while a file loads to confirm this yourself.

    Does this connect to my printer?

    No, never. This tool never uses WebSerial, never connects to any device, and never executes a G-code command. It only reads a file and draws what it describes.

    Which slicers are supported?

    A documented subset of common FDM output aimed at Marlin- and Klipper-style printers, covering typical output patterns from Cura, PrusaSlicer, OrcaSlicer and Bambu Studio. Unknown or unsupported commands are counted and disclosed, never silently ignored or faked.

    Is the time estimate accurate?

    The feed-rate-only estimate divides path distance by commanded feed rate. It never models acceleration, jerk, pressure advance or firmware queues, so it's never the same as your slicer's own estimate or actual print time — both are always shown as separate, clearly labelled numbers when available.

    Can this convert an STL to G-code?

    No. Slicing is outside this tool's scope — this is a viewer for G-code that already exists, not a slicer.