How to use it
- Drop a .gcode, .bgcode or .gcode.3mf file, or open the sample cube. For multi-plate files, pick a plate.
- Step through layers with the slider, or click a bar in the layer-time chart.
- Switch the color mode: feature type, speed, flow, line width, temperature, fan or height.
- Play back the current layer and watch the nozzle's path.
- Read the print time, filament, dimensions and temperatures.
What a G-code viewer is good for
G-code is your printer's language: line by line it says where the head should move, how fast, and how much filament to push while doing it. Your slicer writes this file, and it's what you send to the printer.
A G-code viewer turns the file back into visible toolpaths. It's useful when you want to:
- check a G-code file you downloaded or were sent before you start it;
- track down a failed print and see which layer did something unusual;
- see where supports, bridges, ironing or thin walls will be;
- read print time and filament use without a slicer, even on your phone.
Everything happens in your browser; the file is never uploaded. Parsing runs in a background thread, so even files with hundreds of thousands of lines don't freeze the page. Output from PrusaSlicer, OrcaSlicer, Bambu Studio, Cura, SuperSlicer and Simplify3D is supported, for both Marlin and Klipper printers.
Supported files: .gcode, .bgcode and .gcode.3mf
| File | Comes from | What the viewer does |
|---|---|---|
| .gcode | any of the slicers above | reads it as plain text |
| .bgcode | PrusaSlicer, newer Prusa printers | decodes it in the browser, including the embedded thumbnail |
| .gcode.3mf | Bambu Studio and OrcaSlicer sliced exports | unpacks it; with several plates you choose one |
Why does .bgcode exist? Plain-text G-code is verbose: every line spells out the command and its numbers. Binary G-code stores the same thing compressed (G-code blocks use MeatPack encoding and Heatshrink compression), so files are much smaller, transfer faster over the network and are easier for the printer to handle. Metadata (printer, time, material) and the thumbnail sit in separate blocks. A text editor can't read it, so you need a decoder, and the viewer is one.
A .gcode.3mf isn't a model; it's a ZIP package with finished G-code and a preview image for each plate. If you want to see the model rather than the toolpath, open the plain project 3MF in the 3MF viewer.
Color modes: what each view tells you
- Feature type: outer and inner walls, sparse infill, solid infill, support, skirt and brim, bridges, overhang walls, ironing, gap fill and wipe tower. Click legend items to hide a type, for example infill, so you can see the walls. This relies on the comments the listed slicers write into the file.
- Speed (mm/s): shows where the slicer slows down (outer walls, small layers, overhangs) and where it runs flat out.
- Flow (mm³/s): volumetric flow, meaning how much plastic must be melted per second.
- Line width (mm): calculated from layer height and the amount extruded.
- Temperature and fan (%): handy for temperature towers, or when cooling looks suspicious on a layer.
- Height: a simple blue-to-red gradient for hunting Z-related problems.
You can also show travel moves. Lots of long travels across the model can point to stringing. Current layer only lets you inspect a single layer with no clutter behind it.
Tracking down under-extrusion: flow and line width
A hotend can only melt so much plastic per second. Volumetric flow is roughly:
flow (mm³/s) ≈ line width × layer height × speed
Example: a 0.45 mm line, 0.2 mm layers, 200 mm/s: 0.45 × 0.2 × 200 = 18 mm³/s. The viewer works it out more precisely from the G-code: filament cross-section, filament pushed per millimeter, and speed.
How to read the colors:
- If peaks exceed your hotend's limit, expect under-extrusion there: thin, gappy infill and weak layer bonding. As the viewer's legend notes, for PLA that limit is typically 12–25 mm³/s, depending on the machine.
- If line width jumps noticeably thicker or thinner on some moves, you may have over- or under-extrusion, for example from a wrong flow setting or a bad profile.
- If a layer's speed is unusually low, the slicer probably slowed down to meet the minimum layer time.
Measure your own machine's limit with the flow rate calculator.
Layers, layer time and playback
The layer slider steps from the first layer to the top; the current layer is bright and the ones below are faded. For each layer you see the Z height, layer height, layer time, temperature and fan speed.
The layer-time chart shows how long each layer takes as a bar graph. Click a bar to jump to that layer. Very short layer times (the top of a narrow tower, say) can mean poor cooling and drooping details. An unusually long layer is often a large solid surface or a support interface.
Playback draws the current layer's path in motion at 1× to 500× speed. A marker shows the nozzle position, and a slider scrubs back and forth within the layer. It's a clear way to see where the seam starts, in what order walls are printed and how bridges are laid down.
You can save the current view as a PNG, for example for a bug report or a forum post.
Print time and filament: two estimates side by side
Slicers write their own estimate into the file as a comment. When it's there, the viewer shows it, along with its own estimate, which models acceleration and cornering instead of simply dividing distance by speed. On our own test files it came within a few percent of the slicer's number. If the file has no slicer estimate, this is the figure you'll see.
You also get:
- filament length in meters and weight in grams (the slicer's value, or estimated from the filament diameter);
- size X × Y × Z in mm and where the print sits on the bed;
- number of layers and layer height;
- highest nozzle and bed temperatures;
- number of tool changes for multicolor or multi-material prints;
- the printer, slicer, nozzle and filament names, if the comments include them;
- the slicer's thumbnail, if the file has one.
Plug the time and weight into the 3D print cost calculator. The viewer only displays: it doesn't edit G-code or send it to your printer.
Frequently asked questions
How can I view G-code without a slicer?
Drop the file on this page. Your browser draws the toolpaths layer by layer and shows the print time and filament use.
Can it open .bgcode files?
Yes. Prusa's binary G-code is decoded in your browser, embedded thumbnail included.
Can it open Bambu Studio .gcode.3mf files?
Yes, sliced 3MF files from both Bambu Studio and OrcaSlicer. If there are several plates, you choose which one to view.
Why is the print time different from my printer's?
Heat-up, bed leveling and your printer's own acceleration settings all add variation. That's why the viewer shows both the slicer's estimate and its own acceleration-aware one.
How can I spot under-extrusion?
Switch to flow coloring. Where peaks exceed your hotend's limit, the printer probably can't keep up with the requested flow.
Can I edit the G-code or send it to my printer?
No, the viewer only displays and analyzes. Send the file from your slicer or your printer's own interface.
Is my G-code uploaded?
No, the file stays in your browser and is processed there.
Last updated: November 13, 2026