3D-Printed QR Codes: Sizes, Relief and Materials

A QR code printed in plastic can survive rain, sun, dishwashers and years of handling — things no paper label survives. But a 3D-printed QR only works if you get three numbers right: plate size, module size and relief height. This guide gives you all three, plus the material choices and the mistakes that make printed codes unscannable.

Why printed QR codes fail (and how to prevent it)

Phone cameras read QR codes by looking for contrast: dark squares on a light background (or the reverse). When a printed QR fails, it is almost always one of these five reasons:

  1. Modules too small. Each square needs to be at least 0.4 mm wide for a modern phone at close range. Below that, the printer's own line width blurs the pattern.
  2. Not enough relief. If the raised squares are nearly flush with the plate, there is no shadow contrast under angled lighting.
  3. No quiet zone. The QR standard requires a clear margin of 4 modules on all sides. Chop it off and scanners hesitate or fail.
  4. Low contrast materials. White text on grey filament, or translucent plastic with light passing through, destroys the pattern the camera needs.
  5. Layer lines over the modules. Thick layer heights leave ridges that scatter light. Fine layers on top fix it.

The three numbers that matter

ParameterRuleWhy
Module width≥ 0.4 mm, ideally 0.8–1 mmBelow 0.4 mm the nozzle width itself distorts the squares
Plate size40–60 mm for hand-held scanning; 4× the scanning distance for wall signsA phone needs the QR to cover roughly 10% of the camera view
Relief height0.8–1.2 mm close range; up to 2.5 mm for long distanceShadows between raised and flat areas give the camera contrast under real lighting

Practical example: a table menu QR scanned from 25 cm works great at 50 mm plate size with 1 mm relief. A sign on a wall scanned from 2 m needs to be around 200 mm wide — scale everything up proportionally.

Longer text = denser QR = harder printing

A QR code for https://cafe.luna/menu has far fewer squares than one for a 300-character URL with tracking parameters. Every extra module makes each square smaller at the same plate size — and eventually below the printable limit.

Rule of thumb: if your QR has more than 45×45 modules, a small plate will not work. Go bigger or encode less.

Materials: what works and what does not

MaterialVerdictNotes
PLA (white + black)Best for most usesCheap, prints sharp, rigid. Warps in hot cars; not for outdoors year-round.
PETG (white + black)Best for outdoorsUV- and water-resistant, slightly glossier. Glossy top surfaces can reflect light — matte PETG is better.
ASA / ABSOutdoor, long-termVery durable, but needs an enclosed printer and ventilation.
Resin (SLA)Small, detailed platesSharpest edges possible; great for keychains. Black resin on white resin in two prints, or paint after curing.
Wood-filled, metal-filled, glow filamentAvoidSpeckled or translucent — the camera cannot find clean contrast.

One color or two?

The simplest reliable approach: print the whole plate in white (or another light color), then either

Multi-material systems (AMS, MMU, dual-extruder) make two-color trivial, but they are not required. Many working plates are single-color: the geometry is the code.

Slicer settings that matter

Step-by-step: from this page to a finished plate

  1. Generate the QR on the PIXAROX home page with a short link.
  2. Choose error correction M or Q — printed plates get dirty and worn, and correction compensates.
  3. Set plate size and relief using the table above. 60 mm × 1.2 mm relief is a great default.
  4. Download the STL and drop it into your slicer.
  5. Lay it flat, add a brim if your bed adhesion is temperamental, slice with fine layers.
  6. Test-scan the printed plate from the real distance it will be used at, before making ten more.

Real uses worth printing today