3D QR code: an embossed code ready to print

A 3D QR code isn't an image: it's a piece with the code in relief and its own color. Here's what it is and how it's built.

What a QR code is

QR stands for Quick Response. It's a matrix of black-and-white square modules that encodes text, a link, a WiFi network or almost any short piece of data so a camera can read it in a fraction of a second, even rotated or seen at an angle.

It was invented in 1994 by the Japanese company Denso Wave, a Toyota Group subsidiary, to track car parts on the assembly line: they'd been using regular barcodes, which only store data in one direction and ran out of room. Denso Wave chose not to enforce its patent on the format, so anyone can generate or read QR codes today without paying a license; the standard itself is published as ISO/IEC 18004.

Three large squares in the corners (all but one) tell the scanner which way is up, so it reads the code the same whether it's upside down or tilted. The rest of the modules hold the data plus a redundant copy of it, so the message can still be reconstructed even if part of the code is dirty, scratched or covered by a logo.

Why a QR code still works even with a piece missing

That redundancy is called error correction, and the standard defines four levels. The higher the level, the more room the repeated data takes up — making the code bigger for the same content — but the more damage it can take before it stops reading.

LevelRecoverable dataWhen to use it
L~7%Short links, a very clean code with no logo
M~15%General use — QR3D's default level
Q~25%Printing on less-than-perfect surfaces
H~30%With a logo or emoji in the center: QR3D switches to it automatically

What a 3D QR code actually is

A 3D QR code is a physical object where the code's pattern is modeled as geometry: the dark modules stick out (or sink in) relative to a base. Unlike a sticker or a printed sign, the code is part of the piece itself, can't peel off or wear away from rubbing, and can be made from the same material as the object holding it.

Technically the file contains two separate bodies: the base and the relief. That separation is the key to everything else, because it lets the slicer understand they are different pieces and assign them different materials.

Relief or color: what actually makes a 3D QR readable

It's tempting to think relief alone is enough for the camera to tell the modules apart. In practice it isn't: a phone's camera reads brightness, and a same-colored relief only creates shadows, which depend on where the light is. Indoors under diffuse light — a restaurant, a hotel hallway — those shadows nearly disappear and the code stops reading.

What makes a printed QR code reliable is the color contrast between the two pieces. Relief is still useful: it adds texture, reinforces the shadow and, above all, is the natural way to print two colors on an FDM printer without needing multi-material hardware (a single filament-change pause at the base height is enough).

Combinations that work, and ones that don't

BaseCodeResult
White or boneBlack or navyOptimal, always reads
CreamTerracotta or forest greenVery good, more elegant
BlackWhiteWorks (inverted QR), some older readers fail
Medium grayDark grayDoesn't read: insufficient contrast
Wood grain / glitterAnythingUnreliable: the sheen confuses the camera

3D QR codes vs. other ways to put a QR on an object

MethodDurabilityCostDifficulty
Sticker or vinylLow: peels off, fades in the sunVery lowNone
Laser engravingHigh, but single-colorMedium-high (outside service)Needs a laser machine
Hand-paintedLow and inconsistentLowNeeds a steady hand and a stencil
3D QR (relief + 2 colors)High: survives rubbing, water and cleaningVery low, with your own printerNone, with this tool

How this tool builds the model

  1. The code is generated in the style you pick (square, rounded, dots...) and its real module matrix is read back.
  2. That same styled code is rasterized to black and white: it's the mask for the relief, so the printed piece is identical to the preview, rounded corners and logo included.
  3. Adjacent pixels are merged into the smallest possible number of rectangles. A typical code goes from tens of thousands of cubes to a few hundred prisms, and the file drops from several megabytes to a few tens of kilobytes.
  4. Each rectangle becomes a prism that sinks 0.15 mm into the base, so the slicer welds the two pieces together without leaving an air gap.
  5. A 3MF file is written with the two or three pieces and their colors.
The embossed text is built with the same procedure, which is why it can have its own color independent from the code.

Common questions

Does a 3D QR code scan the same as a regular one?

Yes, with a phone's camera, no special apps. The difference is in the physical conditions: contrast, size and margin. If those three are met, the reader can't tell a QR code printed on paper from one printed in 3D.

Who invented the QR code, and why is it free to use?

Japan's Denso Wave, in 1994, to track car parts on the factory floor. The company chose not to enforce its patent on the format, so anyone can generate or read QR codes without paying a license.

How much data fits in a QR code?

It depends on the code's version, from 21×21 modules (version 1) up to 177×177 (version 40). A short link fits in the small versions; the more text you pack in, the more modules it needs and the bigger you have to print the piece for each module to read cleanly.

What's the difference between a static and a dynamic QR code?

A static one (what QR3D generates) points straight at your content and works forever, with no server involved. A dynamic one goes through a third-party shortener: you can edit where it points without reprinting, but if that service shuts down or you stop paying for it, every printed code stops working at once.

Is it better raised or engraved?

Raised. Engraved (recessed) forces the code's filament to print before the base and complicates the color change; dirt also collects in the recesses. QR3D always generates relief.

How much should the relief stick out?

Between 1 and 2 mm. At 1.2 mm (the default) you have enough layers for the color to be opaque without lengthening the print. Below 0.8 mm the color underneath can show through.

Can I do this with a single-color printer?

Yes. Print the base and, when the slicer reaches the base's height, insert a pause and change the filament. Every modern slicer has that feature ('filament change' or 'pause at height').

What if my link is very long?

The code needs more modules and each one gets smaller. The tool shows you the millimeters per module in real time: if it drops below 1.5 mm, make the piece bigger or use a link shortener.

Is a 3D QR code the same as a 3D barcode?

Yes, in practice. A QR code is technically a type of barcode — a two-dimensional (or 'matrix') one, unlike the classic single-row barcode. When someone searches for a '3D barcode', they usually mean the same thing as a '3D QR code': this tool builds that matrix barcode in relief, ready to print.