Drop in a sliced file to see the actual toolpath the printer will follow, layer by layer, plus filament length, material used and estimated print time. The file never leaves your computer.
| Layers | — |
| Extrusion length | — |
| Filament volume | — |
| Filament used (PLA) | — |
| Estimated print time | — |
| Build area used | — |
Slicers turn a 3D model into a long list of movement instructions the printer executes line by line. That list is the G-code, and it is the last point at which you can check what is actually going to happen before plastic starts flowing. This viewer reads the file, separates the moves that push plastic out from the moves that simply travel, and draws them.
Green segments are extruding moves — the nozzle is depositing material. Grey segments are travel moves, where the nozzle lifts or moves across without extruding. Colour shifts through the layer range so you can see the structure build upward.
A viewer catches a specific class of expensive mistakes that a model preview cannot, because it shows the sliced result rather than the intended shape:
| Command | Meaning |
|---|---|
G0 / G1 | Coordinated move. With an E value it extrudes while moving. |
G28 | Home — move to the endstops to establish position. |
G90 / G91 | Absolute or relative positioning for XYZ. |
M82 / M83 | Absolute or relative extrusion for the E axis. |
G92 | Set the current position without moving. Often used to reset E. |
M104 / M109 | Set / set-and-wait for hotend temperature. |
M140 / M190 | Set / set-and-wait for bed temperature. |
Extrusion length is the sum of every move that carries an increasing E value. Filament volume converts that length into a cylinder using your filament diameter:
volume (mm³) = extrusion length × π × (diameter ÷ 2)² mass (g) = volume (cm³) × material density
Estimated print time sums each move's length divided by its feedrate, converted from millimetres per minute to millimetres per second. Moves without an explicit feedrate inherit the last one, which is how real firmware behaves.
The estimate will usually come out slightly shorter than wall-clock time, because it does not model acceleration, and it excludes bed heating. Treat it as a lower bound.
No. The file is read with the browser's own file API and parsed entirely in memory on your device. Nothing is transmitted, and nothing is stored. You can verify this by loading the page and then disconnecting from the internet — it still works.
Three common causes. The file may be an object file rather than sliced G-code. It may use relative extrusion with M83 and a slicer-specific format this parser does not recognise. Or the E values may never increase, which happens with some laser or pen plotter G-code.
It depends on your device rather than on a limit here. Files of a few tens of megabytes are fine in a desktop browser. Very large files with millions of moves will take a few seconds to parse and may be slower to redraw when you change layers.
Close, but usually a little shorter. Your slicer models acceleration and deceleration; this viewer sums move length over feedrate and skips heating time. If the two disagree by more than about twenty percent, the file probably contains many very short moves where acceleration dominates.