CaissonBlog

Why a higher speed setting barely shortens a 3D print

Measured on a Bambu A1, only about half of a fast print runs at the commanded feedrate. How the Arachnid slicer cut a Benchy from 19m 10s to 8m 23s by shaping paths instead.

Published
4 min
To read
Arachnid
Project

Arachnid is a slicer written in Rust for STL, OBJ and 3MF files. It started from one measurement. When a real Bambu A1 print is timed against the motion it was asked to make, instead of trusting the estimate the slicer prints at the end, only about half of the wall-clock time is spent moving at the commanded feedrate. The rest goes on cornering, ramping up and down, and travel.

That one number explains why the obvious tuning does so little. Raising the outer wall speed from 200 to 400 mm/s changes almost nothing if the head never gets to 200 in the first place. What does change the total is emitting fewer, longer and smoother moves, so the printer spends more of its time cruising. Arachnid puts its effort there.

The reference Benchy

Both slicers were given the same 3DBenchy (225,706 triangles) with the same machine limits: 0.24 mm layers, one wall, 6% infill and the Bambu A1 profile. Both output files were then scored by the same motion simulator, which reproduces Bambu Studio's own estimate for its own file to within 0.4%.

Bar chart comparing Bambu Studio 2.8 and Arachnid on the reference BenchyEstimated print time19m 10s8m 23sMoves73,00025,203Travel26.2 m12.9 mSlicing wall time4 s1.35 sBambu Studio 2.8Arachnid
The reference 3DBenchy at the same machine limits. Each pair of bars is scaled to the larger of the two values; shorter is better on every row.
Bambu Studio 2.8Arachnid
Estimated time19m 10s8m 23s
Filament6.88 g7.13 g
Moves73,00025,203
Travel26.2 m12.9 m
Time at commanded feedrate51%39%
Slicing wall time4 s1.35 s

Arachnid uses slightly more filament and spends a smaller share of its time at the commanded feedrate, and it still finishes in less than half the time. It does less work: a third of the moves and half the travel.

Why a faster number often changes nothing

Every speed in a G-code file is capped by how much plastic the hot end can melt. The ceiling is the volumetric flow limit divided by the cross section of the bead:

feed = min(commanded, max flow / (line width x layer height))

Take a hot end rated at 28 mm³/s printing a 0.48 mm line at 0.28 mm layers. The bead is 0.1344 mm² in section, so the ceiling is about 208 mm/s. Command 300, 400 or 500 mm/s and the file gets 208 every time.

Line chart: the feed that reaches the file follows the commanded speed up to 208 mm/s, then stays flat00100100200200300300400400500500Ceiling 208 mm/sWhat was asked forWhat reaches the fileCommanded speed, mm/s
A hot end rated at 28 mm³/s, a 0.48 mm line and 0.28 mm layers. Above 208 mm/s the commanded number stops mattering.

Arachnid applies that clamp to every speed it writes, so the file states what the printer will actually do. On its fastest preset the layer height already sits at the firmware ceiling of 70% of the nozzle, and acceleration sits at the M201 limit. Past that point the only levers left are about doing less: shorter travel, fewer corners and fewer passes.

How the paths are shaped

Layer 33 of the Arachnid Benchy from above, and the whole toolpath from the sideLayer 33 from aboveAll 186 layers from the side
benchy_xF.gcode, sliced by Arachnid 0.1.0, drawn from the real toolpath resampled every 0.7215 mm. Left, layer 33, 9 mm up; right, the whole file, with the dashed line at that layer. Walls and solid surfaces in ink, sparse infill in orange.

The layer above comes from the same file that builds the Benchy at the top of this page: 186 layers and 34.6 m of bead, with an estimated print time of 5m 43s on the A1 at the fastest preset.

Arc fitting
A curve written as 700 tiny segments gives the motion planner 700 junctions to slow down at. Written as one G2 move it is a single junction.
Simplification first
Paths are simplified before arc fitting, at a tolerance well under one extrusion width.
Infill along the long axis
Solid infill runs along the longest axis of the region instead of a fixed 45 degrees. A diagonal raster in a narrow pocket is all turnaround and no cruise.
Monotonic serpentine
Raster lines are ordered so each one connects end to end with the next instead of hopping.
Morphological opening
A near-vertical wall leaves a hair-thin ring of false solid when one layer is subtracted from the next. On a Benchy, rasterising that noise was two thirds of the print time.
Acceleration only where it pays
An M204 command flushes the planner. Declaring travel acceleration before a two millimetre hop cost more than it saved: 18,000 flushes on a quality Benchy.

Presets

PresetLayerWallsTop and bottomOuter speedBenchy
xspeed0.2811 and 15005m 41s
speed0.2812 and 14508m 29s
standard0.2022 and 225016m 39s
quality0.1636 and 511039m 57s
xquality0.1238 and 68057m 16s
quiet0.1636 and 56082m 27s

Layer height is in millimetres and speed in millimetres per second. xspeed is the only tier that makes no trades: everything that costs time and only buys surface finish is turned off.

Try it

Arachnid runs on 64 bit Windows. The download holds arachnid.exe, a README and the CaNa Licence 1.0 text, and jobs go to the printer over the local network by FTPS and MQTT, with no cloud account. Arachnid Studio, the graphical front end, is a fork of Cura whose engine backend is replaced and shells out to the Arachnid slicing engine.

Download the Arachnid slicer or read the Arachnid project page, which has a layer viewer for the whole file.

Written by Caisson AI. Questions or corrections go to hello@caissonai.co.