Square, rounded or circular: what changes when you print
By Tiehl Roberto Matías · 6 min read · Updated 26 October 2026
Choosing between square, rounded and circular modules looks like an aesthetic decision. On a screen it is. On a printer it changes something else, something the preview does not show: how many separate pieces the relief breaks into, and how many times per layer the nozzle has to cut, travel and start again.
In this guide
The reader does not care
A code reader does not look at the shape of each module. Once it has found the three corners and laid the grid down, it looks at the centre of each cell and decides whether it is light or dark. A square, a square with rounded corners and a circle all have an equally dark centre, so to the phone they are the same code.
That does not mean shape is irrelevant on a printed piece. It matters, but for reasons that belong to the printer, not to the reader. These are the numbers, taken from the generator's engine with the same 34-character link in all three shapes:
The plastic saving is a myth
The rounded shape covers 91 % of each module and the circle 69 %. It looks like the circle saves almost a third of the material. It does save it, but off the relief, and the relief is a thin layer on a base that weighs far more:
| Piece | Square | Rounded | Circle |
|---|---|---|---|
| Keychain 40 mm | 6.1 g | 6.1 g | 6.0 g |
| Plate 90 mm | 27.6 g | 27.5 g | 27.0 g |
| Plate 150 mm | 75.3 g | 74.8 g | 73.6 g |
Between the hungriest shape and the leanest there is 2 % of the piece. On the big plate, 1.7 grams: a bit over half a metre of filament. Nobody should pick the shape for this.
What does change: the separate islands
The relief of a code is not one piece. It is an archipelago of separate chunks, and each chunk is, on every layer, somewhere the nozzle has to reach, start extruding, close the outline, cut, retract the filament and travel to the next one. The shape decides how many chunks there are:
- Square: two modules touching only at a corner can stay joined by that corner. If they all joined, the relief would come together into 18 groups; in the real file, where some of those corners truly touch and some only meet at a point, there are about 60.
- Rounded: the rounding cuts that corner off and separates them. That gives 105.
- Circle: every module ends up isolated from all its neighbours. That is 443 in theory; in the file you download, between 284 and 374 depending on the size, because some neighbouring dots end up touching.
With a 1 mm relief printed at 0.2 mm a layer, five layers, on a 150 mm plate that gives about 290 cuts with squares, 525 with rounded and 1,870 with circles. More than six times as many with the showiest shape as with the simplest.
Each cut has two costs. The first is time: every travel with a retraction is a few tenths of a second, and eighteen hundred of them show. The second is worse for a code: the stringing. When the nozzle travels from one point to another without extruding, it sometimes leaves a very fine thread of filament along the way. And here that filament is the dark one, and the path runs over the light background. A code with many dark threads crossing the light gaps loses exactly what makes it readable, which is the contrast between the two.
The shape also changes the file: the 150 mm plate has 4,464 triangles with squares, 33,072 with rounded and 50,040 with circles. It does not affect the piece, but it is why the STL goes from 220 KB to 2.5 MB. The details are in the file formats guide.
Below 1.25 mm, square
The generator's rounding uses a radius of about a third of the module. And a 0.4 nozzle does not draw sharp corners: its own corners already come out rounded with a radius of roughly 0.2 mm, because it is a circle going round.
The consequence is that, as long as the rounding you ask for is not clearly bigger than that natural rounding, you cannot tell them apart. As a rule it has to be at least double, 0.4 mm, and a third of the module only reaches 0.4 mm at modules of 1.25 mm or more. On a 40 mm keychain, with 0.92 modules, rounded and square come off the printer practically identical, but the rounded one carries 105 separate islands and the square one 57. You pay the cuts and the stringing in exchange for nothing.
The generator comes with rounded by default because on plates, which is what gets printed most, it looks good and costs little. On small pieces switch it to square. Look at the module size the generator gives you: if it is below 1.25 mm, square without hesitating.
Circles, only when large
On the 40 mm keychain the circle is simply a bad idea. Each dot is 0.86 mm, so the nozzle draws it with two passes that touch and out comes something closer to a lentil. Of the 125 chunks of relief left in that file, 87 have less than 1.2 mm² of area: islands so small they stick badly to the layer below, and the nozzle can pull them off as it passes.
On a plate of 90 mm or more, with two-millimetre modules, the dots draw cleanly and the effect shows. If you want it there, set the slicer up for what is coming:
- Tuned retraction. If your profile leaves strings on any other piece, on this one it will leave them multiplied. A retraction tower first is worth it.
- Avoid crossing perimeters, which in nearly every slicer is an option in the travel section. It makes the nozzle go around the gaps instead of across them.
- Watch the first layer of the relief. It is the one that strings most, because the nozzle travels over the light background while it is still hot. If strings appear there, stop and adjust: the layers above only make it worse.
And the corners
The generator also lets you change the shape of the three big corner squares, the position patterns. The reader does look for those by shape, but in a very specific way: it scans the image for dark, light, dark, light, dark bands in a 1:1:3:1:1 ratio. Any shape that keeps that ratio across its centre, square, soft or round, is found just the same.
When printing, the corners behave the opposite way to the modules: they are three large solid pieces, so rounding them adds no cuts and no stringing. If you want to give the code a softer look without paying anything at the printer, round the corners and leave the modules square. It is the combination that shows most for how little it costs.
If the code ends up not reading, the shape is almost never the culprit: look at the module size and the contrast first, in that order, as the guide to why it does not scan explains.
Try the shapes
The generator updates the preview as you go. Look at the module size it gives: below 1.25 mm, square; above, whichever you like best.
Open the generatorKeep reading
- How much relief to give the code: the angle calculationA tall relief hides the light modules when the phone looks at an angle. The rule: no more than 70 % of the module.
- Base thickness: how much you actually needThe base is nearly all the plastic in the piece. What you save by lowering it, what stiffness you lose, and what thickness to use on each piece.