QR3D Craft

A code printed in resin: smaller, but all one colour

By · 7 min read · Updated 27 October 2026

Leer en español

Almost everything said about the size of 3D printed codes comes from the nozzle of a filament printer. On a resin one that rule disappears: the machine draws detail a few hundredths of a millimetre across. But two others appear, one set by the phone camera and one set by the fact that resin comes out in a single colour.

The limit is no longer the printer

On a filament printer, the smallest module you can draw is decided by the nozzle: it has to be at least twice its diameter, so 0.8 mm with the ordinary 0.4 nozzle. That is what the minimum size guide is about.

A resin printer has no nozzle. It hardens each layer by projecting an image from a screen, and the smallest detail is one pixel of that screen: between 0.02 and 0.05 mm on home machines, depending on their resolution and their size. For a module to come out with straight edges all the same width, it is enough for it to cover about five pixels, because the error from rounding to a whole pixel then stays under 20 %. That is 0.1 to 0.25 mm.

Put another way: a resin printer can draw modules smaller than a phone can read. The limit has moved somewhere else.

Where the new limit is

A code reader does not work from the full-resolution photo the camera takes, but from the video image you see on screen while you point, which is usually 1280 or 1920 pixels wide. And it needs each module to cover at least about three of those pixels to tell it apart from its neighbours reliably.

The other half of the sum is distance. A phone's main camera does not focus closer than about 10 cm, and at that distance its image covers about 13 cm across. With those numbers:

Distance1280 pixel image1920 pixel image
8 cm0.24 mm0.16 mm
10 cm0.30 mm0.20 mm
15 cm0.45 mm0.30 mm

That is the smallest module that separates properly in each case. Since you do not know which phone each person will scan it with, the prudent thing is to take the worse column: 0.3 mm per module for a code read at a hand's width. It is an estimate made with typical values, not a laboratory measurement, which is why the final test with any old phone is still compulsory.

And there is a consequence worth being clear about: a code with 0.3 mm modules only reads up close. The rule that it reads comfortably at about ten times its width, which appears in the testing guide, still holds: a 1 cm code, at 10 cm. For a piece held in the hand that is perfect; for a plate on a wall, the size is decided by the distance, not by the printer.

What fits now

Going from 0.8 to 0.3 mm per module divides the side of the code by 2.7 and the surface by seven. At correction H and measuring only the black square, without the white margin:

ContentModulesFilament (0.8)Resin (0.3)
Short domain2923.2 mm8.7 mm
Ordinary link or WhatsApp3326.4 mm9.9 mm
Minimal vCard4939.2 mm14.7 mm
Full vCard6552.0 mm19.5 mm
The same vCard printed in filament and in resinFilament, 0.4 nozzle: 52.0 millimetres a side with 0.8 millimetre modules. Resin: 19.5 millimetres a side with 0.3 millimetre modules.The same 152 character vCard, to scale, at the minimum size for each processFilament, 0.4 nozzle52.0 mm a side · module 0.8Resina19.5 mm a side · module 0.310 mm
The code has the same 65 × 65 modules in both cases. In resin it takes seven times less surface, and the limit is no longer set by the printer but by the phone camera.

The last row is the interesting one. In the business card guide the full vCard came out impossible: in the 30 mm square that fits on a card, its modules are 0.41 mm, half of what a 0.4 nozzle draws. In resin, those same 0.41 mm are above the camera's limit and cover more than ten screen pixels. The card with all your details, which cannot be done in filament, works in resin.

The colour problem

Here is the catch. A resin printer has one vat with one resin in it, so the piece comes out entirely in one colour. There is no equivalent of the pause to change filament: emptying and cleaning the vat halfway through a print is possible in theory and a disaster in practice.

And a single-colour code depends on shadow, which is exactly what you do not control. It is explained in the engraving guide: the phone's torch wipes out the relief at the very moment somebody tries to read it. With 0.3 mm modules it is worse still, because a shadow that narrow barely exists.

So in resin the contrast goes on afterwards, with ink or with paint. There are two ways, and each goes with one of the two geometries.

Print in a light, opaque resin. White, light grey or beige. The dark colour is supplied by the ink, and that way the code ends up with the right polarity: dark modules on a light background. Avoid clear or translucent resins: light gets into the piece, the background looks greyish and the contrast is lost even if the ink is black.

Relief and an ink pad

This is what comes out of the generator as it is: the modules raised above the base. The idea is that of a rubber stamp: only the top face of the relief gets inked.

  1. Keep the relief low, 0.4 or 0.6 mm. No more is needed and that way the ink does not run down the sides.
  2. Rest the piece face down on a stamp pad, without pressing, and lift it straight up. Or roll a hard rubber roller with a very thin coat of acrylic over it.
  3. Let it dry without touching it. If a module has come out without ink, repeat; if the background between modules has got dirty, the coat of ink was too thick.

It is quick and it needs no steady hand, but the ink sits on the most exposed part of the piece. On something that gets rubbed, like a keychain, it wears away at the corners. For a piece that does not get touched, like a shelf label or something inside a display case, it is the most convenient option.

Engraving and paint

The other way is to sink the modules and fill the recesses: the paint is protected inside and does not wear off with rubbing. How to get the engraved version out of the slicer, marking the relief as a negative part and sinking it into the base, is set out step by step in the engraving guide.

  1. Put black acrylic over the area of the code, enough to get into every recess.
  2. Before it dries, drag a plastic card across the surface to take off the excess.
  3. Wipe a barely damp cloth in one direction only to clean the flat face. The paint in the recesses stays because the cloth does not reach it.

Resin does this better than filament because its recesses have smooth, straight walls: the paint does not catch in the layer lines around them, which is what dirties the background on a filament piece.

With one condition: when engraving, do not go below 0.4 mm per module. Resin tends to harden a little beyond the edge of what the screen projects, especially at high exposure. On a raised piece that fattens the modules and nothing happens; on an engraving it narrows the recesses, and in a 0.3 mm one it can close them. Before a piece with recesses that fine, print your resin's exposure test.

Preparing the file

For resin you use STL, not 3MF: the colours in a 3MF are no use to a single-colour machine, and resin slicers work with STL without trouble. The difference between the two formats is in the file formats guide.

The generator does not make pieces under 35 mm, with filament in mind, but the slicer can shrink them. Do it in width and length only, without scaling the height, so the relief and the base keep their thickness. A quick sum to know how far down you can go: the generator tells you the module size of the piece, so if at 35 mm it comes out at 0.88 mm, you can shrink it to 34 %, about 12 mm, before reaching 0.3.

When shrinking, bear in mind two things that shrink too: the keychain hole, which below about 3 mm no longer takes a ring, and the text on the piece, which at those sizes stops being readable. On very small pieces, better with no text.

A warning about where the piece is going to live. Ordinary resins yellow and turn brittle in the sun, so a resin code is for indoors. And uncured resin irritates the skin: gloves for handling the piece until it has been washed and cured, including the painting part if you have not finished curing yet.

Generate the file

Choose the piece and the content, drop the relief to 0.6 mm and download the STL. The generator tells you the module size: with that you know how far you can shrink it in the slicer.

Open the generator

Keep reading