ALIEN TECH · a fair question, answered with arithmetic

Could a normal slicer
have made this bucket?

The person the bucket is for asked, watching it print: do slicers have anything that saves wall material this aggressively? A fair question, and it earns a precise answer. The bars below are that answer's shape. Every number on this page is measured from the emitted gcode file, never from intention.

vase-mode wall alone 331 g this wall, measured 180 g this whole bucket 249 g
One scale for all three bars, computed from the emitted file. The leanest wall a slicer can make outweighs this entire bucket.

Stage, before anything else

This page was written mid-print on 2026-08-08 and its stage line has moved as the day did; the history is in the repo. The print completed: full 304.8 mm, 518 minutes, no error, the 62 mm spans taut on every one of the 79 bridge layers. Then the person the bucket is for took it off the plate, held it, and gave the plate read, with a photo: "Perfect bucket." All 16 fabric panels even, the floor attached, the acceptance recorded in the project's send ledger. Two claims are still not made anywhere here: whether the C-channels grip a bamboo stick over the full height, which is unread, and what the bucket can carry. Every mass on this page is computed from the emitted file at a nominal 1.24 g/cm³; the accepted part has still never been on a scale.

The part, in one paragraph

A bucket 339.5 mm across and 304.8 mm tall, printed on a Creality K2 Plus with a 0.8 mm nozzle: 1,268 layers, 83.6 m of filament. The wall is 16 posts shaped to take bamboo sticks, an open fabric of free-air strands between them at 18% of a normal bead's flow, and a bridge hierarchy at 1.8×, 3.6× and 7.2×. All of it emitted directly as machine motion by bucket_towers.py. No CAD, no mesh, no slicer.

FeatureMassExtruded pathWhat it is
Floor69.6 g89 m 3 cross-latch layers, lap-welded border
Posts77.1 g449 m 16 C-channels, single bead, laps included
Fabric53.2 g1,211 m free-air strands, 0.212 mm rods
Bridges49.4 g83 m the three-tier flow hierarchy
Whole part249.4 g1,832 m computed from the file; unweighed
How the masses were measured, and checked by a second route

The gcode is 46 MB and its 700-line header carries its own evidence and its own doubts. A small public script, slicers_figure.py, streams the file once and attributes every millimetre of extruded filament to the feature that laid it: layers are announced in the file, and a gap crossing is one straight move of ~64 mm while a post arc moves a millimetre at a time, so the two cannot be confused. Volume is filament length times the 1.75 mm filament's cross-section; mass is a nominal 1.24 g/cm³.

The attribution is then verified by an independent route: each category's measured cross-section must reproduce what the header declares. The fabric measured 0.0354 mm² per strand against 0.0354 declared. The posts measured 0.1384 mm² against a predicted 0.1385 (287 m of arcs at full bead plus 161.8 m of weld laps at 0.18×). The bridges measured 0.4811 against a 0.4810 layer-weighted prediction, and that prediction only lands when the rim is counted as what it physically is, two circuits of the accent-size rod. Two routes, one number, three times.

Vase mode, weighed

The leanest wall a slicer emits is spiralize, vase mode: one continuous single-bead wall, no infill. The right baseline, and still a full bead at every millimetre. At this bucket's own diameter, height and bead:

; vase-mode wall, same size, same 0.82 mm bead
circumference   pi × 339.5 mm      = 1,066.6 mm
wall area       × 304.8 mm height  = 325,091 mm²
wall volume     × 0.82 mm bead     = 266,574 mm³
wall mass       × 1.24 g/cm³       = 330.6 g  ; the wall alone, no floor

; this bucket, measured from the emitted file
wall            posts + fabric + bridges = 179.6 g
whole part      wall + floor + prime     = 249.4 g

These are not the same wall. A vase wall is closed and holds water; this one is mostly daylight, and the file's own header calls the part a bucket in shape, not a vessel. The fair claim is the ceiling: a slicer's leanest wall spends 1.8× the material of this one.

A kilometre of 18% strand

The aggressive saving is not the posts. The file crosses the 16 gaps once per layer for 1,186 layers: 1.21 kilometres of strand, weighing 53.2 grams. The same path at body flow would weigh 295.6 g. Each strand exists because the extruder is metered to 18% while the head flies the 62 mm gap at 80 mm/s, and what lands is a 0.212 mm rod, a quarter of the nozzle's own bore: drawn from it like wire, not pressed out of it like toothpaste.

nozzle orifice 0.8 body bead 0.82x0.24 fabric rod 0.212 bridge rod 0.672 accent rod 0.950 rim rod 0.950x2 to scale: 120 px = 1 mm, all sitting on one layer line
Every cross-section in the part, to one scale, from the file's header. The rim is drawn as what it physically is: two stacked circuits of the accent-size rod.

The flow is the design

That rod's diameter is written nowhere as geometry. There is no 0.212 mm cylinder in any model, because there is no model. The rod is a flow decision: one G1 move with its extrusion metered to 18%, against a speed, through air. More flow and the same move is a bridge; more again, the rim. Three structural roles, identical geometry, distinguished only by how much plastic one gcode line pushes.

A slicer's contract runs the other way: mesh in, full beads out. The geometry is the input and the flow is a consequence. This wall inverts that. The flow schedule is the design, and the shape is whatever the flow leaves hanging between 16 posts. It exists only as toolpath, the thesis this site opened with; this bucket is the first part where the thesis is also the cheapest way to build.

The four features that come close

No strawmen: each of these is real and useful, and each stops at the same line. Expand any of them for what it can and cannot do.

Vase mode: the leanest slicer wall, solid by construction

Spiralize prints one unbroken single-bead wall with a continuous Z rise, plus solid bottom layers. It saves everything except the wall itself, which is a full bead at every point of every layer. The arithmetic above is its best case at this size, and it loses to a wall that is mostly air. What it keeps that this bucket gives up: a closed, water-tight surface.

Wire printing: real mid-air strands, one recipe, a mesh's surface

The closest in spirit, and it deserves respect. It grew from the WirePrint research (UIST 2014), which printed a mesh's surface as a wireframe of free-air strands ten times faster than slicing it, and Cura still ships a descendant as an experimental mode. It really does extrude in mid-air. But it renders the surface of a mesh in one wire recipe: flow and speed are global settings for the whole wireframe, its own documentation warns that gravity will disagree with the preview, and it cannot make one strand structural and its neighbour decorative. A post-and-fabric wall with a 1.8×/3.6×/7.2× rod hierarchy is not a setting it has, because that hierarchy is not a property of any surface.

Bridge settings: a repair regime for spans the mesh imposed

Every serious slicer detects spans in the model with nothing under them and switches flow, speed and fan to survive them. The bridge is a hazard the mesh created; the slicer's job is to get across it. Here the spans are in no mesh at all. The 62 mm rods exist because the generator decided a chord should exist at that layer at that flow. A slicer cannot bridge a void its input never described.

Lightning infill: genuinely aggressive saving, all of it interior

Honesty requires saying this one really does save material aggressively: it can cut an interior to a few percent, growing a supporting lattice under roofs where nobody sees it. But it is interior by definition, and it leaves every wall at full bead. Nothing in it touches the problem this wall solves, which is making the visible, structural surface out of 18% thread.

Arachne variable width: the modern wall engine, still a wall of the mesh

The variable-width generator in Cura, PrusaSlicer and Orca modulates bead width to fit the mesh's own walls, and it is very good at it. But the width it varies belongs to a wall the mesh gave it, in a band around the nozzle size, always deposited onto material below. A freestanding 0.21 mm round strand from a 0.8 mm orifice is not a thin wall. It is a different physical object, and no mesh can carry it to a slicer, because meshes describe surfaces and this is a behaviour.

Gates that refuse, claims declined

Cutting a wall to 18% flow is easy. Knowing when you may is the work, and these numbers deserve trust only because the file was built under gates that refuse. The claims ledger, as it moved:

  • The 62.25 mm span was 3.7× anything that had held when the file was generated, and the header called it unproven. It held, taut to the top, on the accepted part. The decline stays visible because it was true when the page shipped.
  • Whether the posts grip their bamboo sticks over the full height is unread. The header declines the fit claim in either direction, and this page does too.
  • Every mass above is commanded, not weighed. The accepted part has not been on a scale.
The gates themselves, and what each has actually refused

validate.py reads the emitted gcode, not the intention, and it has refused real files: a five-layer floor died on the spot when the overhang rule measured 23% of a layer extruded onto nothing. A physical weld simulation measured an earlier floor border at 0% welded and exposed that the border fill had never been emitted at all; the stitch-comb weld in this file exists because that gate fired. And the send step keeps a ledger: when a recorded human observation contradicts a computed value that has never been proven, the recorded words win. A slicer would have prevented this whole experiment. It also would have prevented the wall. That trade, made visible, is the price.