Engraved or raised: which one reads better
By Tiehl Roberto Matías · 6 min read · Updated 26 October 2026
When you only have one colour of filament, the only difference left to the code is the relief. It works, but not always, and the reason it fails is specific enough to put in one sentence: the reader does not see shapes, it sees light. This guide is about what happens to light when the code has no colours.
In this guide
The reader does not see relief, it sees light
A QR reader does one very simple thing: it turns what the camera sees into greyscale and decides, module by module, whether it is light or dark. It does not know what plastic is, it does not know there is relief and it does not care about colour. All it measures is how much light reaches it from each little square.
When the code is two colours, that difference in light is guaranteed: it comes from the material itself and it is the same at any hour and under any lamp. That is why the colours guide talks about luminance and not about pretty shades.
When the code is one colour, that difference has to be manufactured out of shadows. And a shadow is not a property of the piece: it is a consequence of where the light is. The same piece, in two different places, has completely different contrast.
From which comes the uncomfortable rule of this guide: a single-colour code does not have a contrast, it has one contrast per lighting situation. And there is one particular lighting situation in which it falls to zero.
The trouble with the torch
This is the part almost nobody mentions, and it is the one that makes pieces fail.
When somebody tries to scan in poor light, the phone turns on its torch. And a phone's torch is a centimetre from the lens, pointing exactly where the camera is looking. Light coming from the same direction you are looking from casts no visible shadow: every shadow falls directly behind whatever produces it, hidden.
The result is that the piece turns into a smooth, even surface at exactly the moment the user is trying hardest to read it. With two colours, turning the torch on helps. With relief alone, it erases it.
Check it in thirty seconds. Take any single-colour piece of yours with relief and look at it first with light from a window to one side: the code shows perfectly. Now turn on your phone's torch and look at it with that, from where you would hold the camera: the pattern almost disappears. That is the whole guide in one gesture.
And there is a second bad light, less dramatic but more common: diffuse light. An overcast day, an office ceiling with panels, a room with indirect lighting. Because it comes from everywhere at once, the shadows are very soft. The code does not disappear, but the contrast drops just enough that sometimes it reads and sometimes it does not, which is the worst situation of all because it looks like a random problem.
The good light is light from the side, raking: a window to one side, a ceiling spotlight with the piece vertical on a wall. There the relief works very well.
Engraved and raised are not symmetrical
It looks as if they should be equivalent, since one is the negative of the other. They are not, for two reasons.
The first is polarity. A reader expects dark modules on a light background. If you engrave the modules, the little squares sit sunk in shadow: dark on a light background that is the face of the piece. That is the right polarity. If you raise them, the modules are what catches the light and come out light, while the shadows fall beside them. Many readers cope anyway, because they know how to invert, but you lose margin exactly where you have none spare.
The second is dirt. A recess collects dust and grease; a relief gets dirty on its top face. Curiously, dirt in the recess improves the contrast at first, because it darkens what you already wanted dark. The problem comes later, when the recess fills completely and the code flattens out. An engraved piece living in a workshop has to be something you can brush clean.
If you are going to do it in one colour and the piece cannot be painted, engrave it.
How deep it needs to be
The shadow depends on the depth and on the width of the module. A shallow recess in a wide module is nearly flat; light reaches the bottom and darkens nothing.
The proportion that works is a depth of between a third and a half of the module width. With the usual dimensions of these pieces:
| Module | Minimum depth | Layers at 0.2 mm |
|---|---|---|
| 1.2 mm | 0.4 mm | 2 |
| 1.6 mm | 0.6 mm | 3 |
| 2.0 mm | 0.8 mm | 4 |
| 2.4 mm | 0.8 to 1.2 mm | 4 to 6 |
Going deeper does not improve the reading and does make the print worse: the deeper the recess, the more the ceiling bridging it sags, and the longer it takes. Three or four layers solves almost everything.
And a recommendation you will not see coming: when engraving it pays to raise the error correction level, because contrast by shadow is always worse than contrast by colour and you are going to need the margin. Level H, which this site uses by default, is the right one here and should not be lowered. It is explained in the levels guide.
How to get the engraved version
This site's generator makes the code raised, not engraved. That is a decision, not an oversight: it is designed for two colours, where the relief is what lets you change filament at a specific height and get real contrast of material. Engraved, you could not make that change.
If you want the engraved version, it comes out of the slicer in three steps, without touching any modelling program:
- Download the 3MF, not the STL, and put it on the plate. The 3MF carries the base and the relief as two separate parts; the STL merges them into one and there would be no way to mark only the relief. The difference between the two formats is in the formats guide.
- Mark the relief part as a negative piece. In the object list expand the piece and choose the part called «QR and text». In Bambu Studio and OrcaSlicer the option is called Negative part; in PrusaSlicer, Negative volume. The program subtracts that shape from the base instead of adding it.
- Sink that part into the base. This is the step people forget. The relief starts exactly where the base ends, with no overlap, so as it comes it subtracts nothing. Lower the negative part on the Z axis by as much depth as you want, without exceeding the thickness of the base: with the generator's 3 mm base, lowering it 1 mm leaves 1 mm deep recesses with 2 mm of floor underneath. In the sliced preview you have to be able to see the recesses.
The details for each slicer and how to load the file are in the slicers guide. Cura does not have negative parts in the same way, so there you have to model the subtraction separately.
The trick that turns the recess into real colour. If you engrave the modules and then fill the recesses with acrylic paint and wipe a cloth across the flat surface, the paint stays only inside. You end up with genuine colour contrast using a single filament, and you no longer depend on the light. It is more work than changing spools, but for a one-off piece it beats every other option.
When each one is worth it
Two colours, raised. It is the best by a distance. Real contrast, independent of the light, and any printer does it with one pause. If you can change filament mid-print, do it: the colour change guide explains it step by step.
One colour, engraved. For pieces that go vertically on a wall with light from the side, or for surfaces that have to stay smooth. Raise the module size one step above what you would use with two colours.
One colour, engraved and painted. The best one-off piece. Far better reading than any relief and it does not depend on where the lamp is.
One colour, raised, unpainted. It is what comes out by default if you do nothing, and it is the worst of the four. It works on a table in good light and fails the moment somebody turns on a torch. If it is all you can do, make the piece bigger and test it in the exact spot where it is going to live.
Whichever you choose, the check does not change: scan the finished piece with a phone that is not yours, in the place where it is going to be and at the worst-lit hour. What reads on your desk does not always read on the wall of the shop.
All of this applies just the same if the code is not the piece but engraved onto a model of your own: the negative part is marked the same way. What changes is the dimensions, because you have to provide the plain margin yourself, and that is in the guide to putting the code on another piece (in Spanish).
Start with the file
Generate the code at whatever module size you want and download the 3MF. From there, a few clicks in the slicer give you the engraved version.
Open the generatorKeep reading
- How to test the code before printing the batchFour tests in order, and the specific failure each one catches. The batch gets printed last, not first.
- Printing a batch: how many fit and how long it takesThe pieces that fit on each bed, the grams and hours of a full plate, and the condition that makes one pause enough for all of them.