QR3D Craft

Square, rounded or circular: what changes when you print

By · 6 min read · Updated 26 October 2026

Leer en español

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.

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:

Square, rounded and circular modulesSquare: the relief comes to 18 to 63 separate islands and covers 100 per cent of each module. Rounded: 105 separate islands, covering 91 per cent of each module. Circle: 443 separate islands, covering 69 per cent of each module.The same part of the code in the generator's three shapesSquare18 to 63 islands100 % of the areaRounded105 islands91 % of the areaCircle443 islands69 % of the area
Counted on a 33 × 33 code. The square joins modules that meet at a corner, wholly or in part; the rounded shape cuts that corner off and separates them; the circle leaves every module on its own. Each separate island is one start and one cut of the nozzle on every layer.

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:

PieceSquareRoundedCircle
Keychain 40 mm6.1 g6.1 g6.0 g
Plate 90 mm27.6 g27.5 g27.0 g
Plate 150 mm75.3 g74.8 g73.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:

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:

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 generator

Keep reading