Free tool
QR code to STL generator
Type a link or Wi-Fi details. Download a QR code plate that prints in two colors and scans.
Runs in your browser. Nothing is uploaded.
How to use it
1Type what it opens
A link, text, Wi-Fi login, contact card, email or phone number.
2Size the plate
Set the plate width and thickness. Keep each module at 1 mm or more for a 0.4 mm nozzle.
3Raised or flush
Raised code needs one filament change. A flush inlay needs an AMS, MMU or tool changer.
4Download and print
The 3MF keeps plate and code as separate parts. The STL is one file for single-colour printing with a filament change.
To 3D print a QR code that scans, use two contrasting filaments (black code on a white plate is best), keep every module at 1 mm or more so a 0.4 mm nozzle prints clean squares, leave a plain border around the code, and switch colours exactly at the top of the plate. This generator builds the plate and the code as separate closed solids and tells you the layer to change filament on.
Raised code or flush inlay
| Raised code | Flush inlay | |
|---|---|---|
| Printer | Any single-extruder printer | AMS, MMU, tool changer or IDEX |
| Colour changes | One, at the top of the plate | Every layer of the code |
| Surface | Code stands up from the plate | Flat |
| Default height or depth | 0.8 mm | 0.6 mm |
Raised is the easy choice. The plate prints in the light colour, you change filament once, and the code prints on top in the dark colour. For a flush code, download the two-colour 3MF and assign one filament to each part in Bambu Studio, OrcaSlicer or PrusaSlicer. The inlay plate STL on its own is a debossed code, handy if you want to fill the pockets with paint.
Size it by the module
Modules are the small squares. With a 0.4 mm nozzle, squares under about 1 mm lose their corners and the code stops scanning, so the tool warns you below that. These widths include a 2-module border; the plate's own margin adds a little more.
| What the code opens | Modules across | Code width at 1.5 mm per module |
|---|---|---|
| A short link | 25 | 43.5 mm |
| A shop link with a path | 33 | 55.5 mm |
| A Wi-Fi login | 33 | 55.5 mm |
| A contact card | 49 | 79.5 mm |
The numbers are for error correction M; Q and H add modules. The tool shows the exact version and module size as you change the content and the plate.
Change filament at the right layer
For a raised code, the change happens where the plate ends. With a 1.6 mm plate and 0.2 mm layers, the plate is layers 1 to 8 and the code starts on layer 9 at Z 1.6 mm. The tool calculates this for your thickness and layer height. In Bambu Studio, OrcaSlicer and PrusaSlicer, slice, move the layer slider in the preview to that layer and add a filament or colour change there. In Cura, the Pause at Height post-processing script does the same job. The filament swap height guide explains how slicers count layers if your first layer is a different height.
Print settings that help it scan
- Print flat on the bed, code facing up.
- Use 0.2 mm layers or finer so the code's top surface is clean.
- Slow the top layers slightly if your printer leaves stringing between modules.
- Check the first test with two phones before printing a batch. If it fails, make the plate wider, use a shorter link or raise the error correction one step.
Want the same code engraved instead? The QR code generator for laser engraving exports SVG, DXF and PNG at real size, and engraves the background automatically on materials that mark light.
Questions
Can you 3D print a QR code that scans?
Yes, if the colours contrast and the modules are big enough to print as clean squares. A white plate with a black code, modules of 1 mm or more with a 0.4 mm nozzle, and a clear border around the code scan reliably.
How big should a 3D printed QR code be?
Work from the module size. A short link is 25 modules across, so with 1.5 mm modules plus a 2-module border on each side it is about 44 mm wide. Longer links, Wi-Fi logins and contact cards need more modules and a bigger plate.
How do I print a two-colour QR code without an AMS?
Use the raised style and change filament once, at the top of the plate. The tool shows the exact height and layer number; add a filament or colour change at that layer in your slicer's preview, or use a pause at height script in Cura.
Raised or flush inlay: which is better?
Raised works on any printer with one filament change. A flush inlay puts both colours in the same layers, so it needs a multi-material printer, but the surface is flat and casts no shadows on the code.
Which filament colours scan best?
Dark modules on a light plate: black on white is the most reliable. Avoid silk, glitter and translucent filaments, which reflect or let light through and lower the contrast.
Can I make a QR code keychain?
Turn on the hanging hole and keep the plate wide enough that modules stay at 1 mm or more. Short links make the smallest codes, so a short domain works best on a keychain.
Read next

HueForge and lithophanes
How to Plan Color Swap Heights for Filament Painting
Where to change filament in a HueForge-style painting: layer math, transmission distance, swap order, and adding color changes in Bambu Studio and OrcaSlicer.
September 21, 2026 2 min read

3D printing
How Much Does 3D Printing Cost? Real Numbers, and How to Price Prints to Sell
What a 3D print costs at home or from a service: filament, power, wear and failures, resin vs FDM, and a pricing formula with Etsy fees for prints you sell.
October 8, 2026 7 min read

Laser and CNC
Laser Power and Speed Settings by Material: A Starting-Point Guide
Starting power and speed settings for diode, CO2 and fiber lasers on wood, MDF, acrylic, leather, slate and metal, and the test grid that dials them in.
September 21, 2026 2 min read