What Size Should a 3D Printed QR Code Be?
Two limits decide the size of a 3D printed QR code: how far away people will be when they scan it, and how small a square your printer can draw cleanly. Here's how to balance both.
On paper, you can shrink a QR code until it's barely bigger than a postage stamp and it will still scan from up close. 3D printing adds a second limit: your nozzle has to draw each little square cleanly enough that the edges between dark and light stay sharp. So the right size comes from two directions at once — scan distance sets a minimum overall size, and nozzle detail sets a minimum size for each square.
Part 1: How QR codes are built
A QR code is a square grid of modules. The smallest version (version 1) is 21 × 21 modules, and each version up adds 4 modules per side: version 2 is 25 × 25, version 3 is 29 × 29, and so on. The generator picks the smallest version that fits your content, so the length of your link directly sets how many modules there are.
As a rough guide, with the medium level of error correction most generators use, a version 2 code holds about 26 characters, version 3 about 42, version 4 about 62 and version 5 about 84. A link like https://example.com/menu (24 characters) fits comfortably in version 2. A long Google Maps review link might need version 5 or 6 — more than twice as many modules per side.
Around the pattern sits a blank border called the quiet zone. The standard asks for four modules on every side. Scanners use it to find where the code starts, so don't let text or the edge of the object crowd it.
Part 2: The scan-distance rule
A widely used rule of thumb for QR codes is a 10:1 ratio: the scanning distance should be no more than about ten times the width of the code. Flip it around and you get the minimum code width for a given distance:
Minimum code width ≈ scanning distance ÷ 10
| Where it's used | Typical scan distance | Minimum code width |
|---|---|---|
| Keychain, held in hand | 15–25 cm | 2–2.5 cm |
| Table stand, scanned while seated | 40–60 cm | 4–6 cm |
| Checkout counter sign | 60–100 cm | 6–10 cm |
| Wall plaque by a door | 1–1.5 m | 10–15 cm |
Treat these as minimums. Phone cameras vary, and people rarely line up perfectly. Going 20–30% bigger costs a little filament and buys a lot of reliability. The ratio also assumes good contrast; if your color pair is weaker than black and white, size up more.
Part 3: The nozzle-detail rule
Most desktop printers use a 0.4 mm nozzle. It can technically print features close to its own width, but small squares come out with rounded corners, slight bulges and occasional stringing — all of which blur the boundary between modules. For QR codes that boundary is everything.
Practical module sizes for a 0.4 mm nozzle:
- 1.5–2 mm per module or larger — comfortable. Clean squares, reliable scanning.
- About 1 mm per module — possible with a well-tuned printer and slow outer walls, but expect some failed prints.
- Below 1 mm — not recommended on FDM printers.
A 0.2 mm nozzle can go smaller, but it's slow, and the scan-distance rule usually makes the code big enough anyway.
Putting the two rules together
Multiply the number of modules (including the quiet zone) by your module size to get the code's printed width, then compare it to the scan-distance minimum. Take the bigger of the two numbers.
Worked example: restaurant table stand
The link is https://rossis.com/menu, which fits version 2: 25 modules plus 4 quiet modules on each side, so 33 modules across. At 1.5 mm per module that's about 50 mm (5 cm) wide. Diners scan from 40–60 cm away, so the distance rule asks for 4–6 cm. A 5–6 cm code satisfies both — a good, compact table stand.
Worked example: keychain with a long link
A wedding photo album link of about 70 characters needs version 5: 37 modules plus the quiet zone, so 45 modules across. At 1.5 mm per module the code is about 68 mm wide — far too big for a keychain. At 1 mm per module it's 45 mm, still large, and at the edge of what prints reliably. The fix isn't a smaller print; it's a shorter link. A short link of about 25 characters drops the code to version 2, and at 1.5 mm per module it's about 50 mm, or around 33 mm at 1 mm per module — a workable keychain.
How to keep a code small
- Shorten the link. This has the biggest effect by far. Use a short path on your own domain (
yoursite.com/m) or a link shortener you trust. - Drop extras. Remove tracking parameters like
?utm_source=...unless you really need them. - Use uppercase-only URLs if you can. QR codes have a compact "alphanumeric" mode for uppercase letters, digits and a few symbols. Domain names are case-insensitive, so
HTTPS://EXAMPLE.COM/Mworks if your web server treats paths the same way — test first. - Keep the center logo small. A logo doesn't change the module count, but it eats into error correction. On a small print you want all the margin you can get for defects.
Thickness and height
Size isn't only width. For two-color prints, the raised pattern only needs to be a few layers tall — around 0.6–1 mm is plenty for the color to read solidly. Taller raised modules cast shadows when light comes from the side, and shadows can make light modules look dark. The base plate should be thick enough not to flex: 2–3 mm for stands and plaques, a bit less for keychains.
Check the estimate before you print
The QR Forge generator shows an estimated size in the 3D Object tab. Compare that number with the table above for where the code will be used. If it's on the small side, shorten the link or switch to a larger object such as a plaque, then print one test piece and scan it from the real distance. For more on fixing a code that won't read, see Why won't my 3D printed QR code scan?
Ready to make one? The generator is free and runs in your browser.
Open the QR generator