CrispKit › Guides

How to 3D print a QR code

By CrispKit · Last updated

To 3D print a QR code, make an STL of a flat plate with the dark squares raised on top, print the plate in a light filament and switch to a dark filament where the squares start. Make each square at least about 1.2 mm wide on a 0.4 mm nozzle, keep a clear border, and test the print with a phone.

The 3D QR Code generator builds the STL in millimetres from your link or text. We haven't printed one ourselves yet; the 3D QR test card is there to find what your printer and phone can read.

Step by step

  1. Keep the text short. A shorter link makes a code with fewer, bigger squares.
  2. Make the STL in the 3D QR Code generator: type the link, set the plate width, border, base thickness and raised height in millimetres, and download it. It's a binary STL, flat side down.
  3. Open it in your slicer (PrusaSlicer, Bambu Studio, Cura or OrcaSlicer).
  4. Add a colour change at the top of the base: with the tool's defaults, Z = 2.0 mm. Print the base in white or another light colour and the squares in black.
  5. Scan it with a phone before you print more.

With a multi-material printer, download "Base only" and "Raised squares only", load both as parts of one object and give each part its own filament.

Why two colours

DENSO WAVE's QR code site, qrcode.com, explains that reading is based on the difference in light reflected by the dark and light areas. Dark squares on a light plate give that difference directly. A print in one colour relies on the small shadows the raised squares cast, which change with the light and the angle. We haven't tested single-colour prints, so two colours is what we suggest.

How big to print it

Every QR code is a grid of modules (squares). DENSO WAVE says a version 1 code is 21 modules wide and each version adds 4, so version 2 is 25 and version 3 is 29. A short link usually needs version 1 to 3. The plate also needs a clear border:

plate width = (modules + 2 × border) × module size

Plate width for a version 3 code (29 modules)
Module size2-module border4-module border
1 mm33 mm37 mm
1.2 mm39.6 mm44.4 mm
1.5 mm49.5 mm55.5 mm
2 mm66 mm74 mm
3 mm99 mm111 mm

If your link makes a version 3 code, the tool's default 60 mm plate with a 2-module border gives 60 ÷ 33 = 1.82 mm per module. The tool shows the module size as you change the width and warns below 1.2 mm, its rule of thumb for a 0.4 mm nozzle, not a hard limit. DENSO WAVE's advice runs the same way: bigger modules read more reliably, so print it as large as the space allows.

On the border: DENSO WAVE specifies a four-module margin around a QR code. The tool's border defaults to 2 modules to keep the plate small, and goes up to 4. If the plate will sit on a busy or dark surface, use 4.

Height and layers

The tool's defaults are a 2 mm base and squares raised 1 mm. At a 0.2 mm layer height, that's 10 layers of base and 5 of squares, so the colour change lands on a layer line. The tool suggests 0.6 to 1 mm of height is plenty, since taller squares cast longer shadows when the code is scanned at an angle.

Not sure what your printer can do? Print the test card

The 3D QR test card is the same code at 1, 1.5, 2 and 3 mm per module, as four free STL files (CC0). Each one is a closed mesh and a top-down render of each decodes to the right link in software. We haven't printed them, so there's no scan result to report: print the card and see which sizes your phone reads.

Make the STL with the free 3D QR Code generator

  1. Open the 3D QR Code generator and type your link.
  2. Set the plate width, border, base and raised height in millimetres.
  3. Download the STL, or base and squares as two STLs for multi-material printing.

Before download, the page checks that the mesh is closed and that a top-down render decodes to your text. It's built in your browser; your text isn't uploaded.

Open the 3D QR Code generator

FAQ

How can I create a 3D QR code?

Type the link or text into a 3D QR generator that exports STL, set the size in millimetres, and download the model. Then slice and print it with a colour change at the top of the base.

Can I 3D print a QR code for Wi-Fi?

Yes, if the code holds the Wi-Fi text format documented by the ZXing project, for example WIFI:T:WPA;S:mynetwork;P:mypass;;. Put a backslash before any \ ; , " or : in the name or password. The 3D QR Code tool has no Wi-Fi form, so you type that line yourself. Anyone who scans the print can read the password.

Can I turn an existing QR code into an STL?

Not from the picture with this tool. Scan the existing code with your phone, copy the link it holds, and paste that into the generator. The new code holds the same link.

How small can a 3D printed QR code be?

It depends on your nozzle, filament and phone. With the tool's rule of thumb of 1.2 mm per module, a version 3 code with a 2-module border is about 40 mm wide. The test card's 1 mm size is below that on purpose, as a stress test.

Should the squares be raised or sunk into the plate?

The 3D QR Code tool raises the dark squares, which needs just one filament change at the top of the base.

Does a 3D printed QR code expire?

Not by itself. The text or link is in the pattern, with no redirect through a server. A link in the code works as long as that website does.

Related

Sources

Each page below was read on 27 October 2026. Plate and layer figures are arithmetic. The 1.2 mm rule of thumb and the defaults are the 3D QR Code tool's own. We have not printed a QR code ourselves; nothing on this page is a print or scan result.

  1. DENSO WAVE, Point for determining the code area. A QR code "requires a four-module wide margin at all sides", and how version and module size set the code's width.
  2. DENSO WAVE, Point for setting the module size. "The larger the module is, the more stable and easier to read"; print the code "as large as possible within the available printing area".
  3. DENSO WAVE, QR Code FAQ. Version 1 is 21 modules wide and each version adds 4; reading is based on the difference in light reflected by the dark and light areas.
  4. ZXing project, Barcode Contents (wiki). The Wi-Fi format WIFI:T:WPA;S:mynetwork;P:mypass;; and the backslash escaping of special characters.