How the simulation works
Spoolbow is a browser-only tool that turns Bambu Studio / OrcaSlicer G-code into a color map by following the segment lengths of your gradient filament. This page explains exactly how.
1. How to export the G-code
Slice first (“Slice plate”); the export commands stay greyed out until the plate is sliced.
Bambu Studio
- File → Export → Export plate sliced file (Ctrl+G / Cmd+G) saves a
.gcode.3mf; - or File → Export → Export G-code saves a plain-text
.gcode; - the small arrow next to the print button at the top right also offers Export plate sliced file (with a Bambu printer selected it has no G-code entry, so use the menu for that);
- for several plates, File → Export → Export all plate sliced file puts every plate in one
.gcode.3mf.
OrcaSlicer
- after slicing, click the Export G-code file button at the top right (its arrow also holds Print) to save a
.gcode; - or use File → Export → Export G-code / Export plate sliced file / Export all plate sliced file.
Importing into Spoolbow: both .gcode and .gcode.3mf work — click “Import G-code” or drop the file on the page. If a .gcode.3mf holds several plates you’ll be asked to pick one. A project .3mf from “Save Project” contains no G-code and won’t work.
2. Filament model: repeating segments
A gradient filament is described in the library as a list of segments: solid segments (color + length) and gradient segments (length; the color blends from the previous solid color to the next). The lengths add up to one cycle, which repeats along the spool. The built-in “Endless Summer” is yellow 7 m → gradient 5 m → orange 7 m → gradient 5 m → blue 7 m → gradient 5 m, a 36 m cycle. Colors are looked up at 1 cm resolution.
3. What is counted
- Purge line: extrusion before the first layer — counted.
- Flush: extrusion between
FLUSH_STARTandFLUSH_ENDin Bambu/Orca G-code — counted. - Filament change: extrusion between
M620andM621, including retract/unretract — counted as a net value. - Prime tower: regular printed lines — counted (and can be hidden in the preview).
- Travel moves extrude nothing and are not counted.
4. Measured comparison with the slicer’s figure
We sliced three test files in OrcaSlicer 2.4.2 and compared our totals with the ; filament used [mm] value in the G-code header:
| Test | Slot | This tool | Slicer figure | Difference |
|---|---|---|---|---|
| Single color, 3 objects | 1 | 6.71 m | 6.59 m | +1.8% |
| Two colors, prime tower | 1 / 2 | 7.27 / 4.95 m | 6.15 / 4.03 m | +18.2% / +22.9% |
| Two colors, larger model | 1 / 2 | 68.54 / 64.61 m | 60.29 / 57.78 m | +13.7% / +11.8% |
Single-color totals are close; multi-color totals are clearly higher. Most of the gap comes from flush and filament-change extrusion (about 2–3 m per slot in the two-color test), so the slicer’s header figure does not match every extrusion in the G-code. This tool follows the actual extrusion, because the color depends on the filament that really goes through the nozzle. We are still checking this difference and have not verified it by weighing prints, so treat multi-color figures as estimates.
5. Limitations
- Segment lengths are the manufacturer’s nominal values; real spools vary and error grows with use, so later color changes on long prints are less certain.
- You set the start point yourself; if you don’t know where the last print ended, positions are approximate.
- Leftover color in the hotend and color mixing are not simulated — the color is looked up by length only.
- Tested only with the G-code comment format of Bambu Studio and OrcaSlicer; other slicers may be partly recognized.