Test the image
before the print.

A scan simulator for the code you make here.
Local image tests. Real decode results. No scan guarantee.

Content inputLocal processing
Smart paste

Detection runs here. Your original stays in this box.

Use a stable page you control. The code stays the same, so keep the destination available.

Color & shape

Checking contrast…

Logo, margin & frame

Processed locally. A logo uses high error correction. Keep it small and test a print.

Logo and margin limits are Tidy QR design safeguards.

Batch from CSV

Upload columns name,content. Each content cell is the exact payload, such as a full URL. Your current design applies to every row.

LIVE VIEWFINDERSTATIC / DIRECTEdit content ↓
Version
02
Modules / side
25
Correction
M
Contrast
18.6:1

Example content · edit to replace

Checking your code…

No redirect. No expiration timer.

UTF-8 bytes / capacity
24 / 26
Print at 30 cm*
30.7 mm
Print at 1 m*
100.6 mm

*Starting widths, including margin, at 300 DPI. Method & sources. Test the actual print.

SVG and PDF keep the QR modules as vectors.
Logos and non-ASCII PDF captions are embedded images.

See the encoded content

A successful image check confirms decoding here, not every phone or print condition. Plan your print size ↗

Scan simulator Six image conditions. One local decoder.

Put this code through a scan test.

Simulation, not a guarantee. Each altered image must decode to your exact payload. These fixed image effects do not model a specific camera or material.

Generate a code, then run the simulation.

How to read this simulation

Each effect starts from a 320-pixel-wide rendering of the current SVG. Small size reduces the artwork to 80 pixels; defocus uses two 5 × 5 box-blur passes; motion averages 11 horizontal pixels; perspective maps the image onto a tilted quadrilateral; low light applies 32% brightness with deterministic noise up to ±22 channel values; glare adds a white radial spot with a radius of 18% of the image width. These are fixed test inputs, not measured environment statistics.

The separate size sweep checks widths of 320, 256, 224, 192, 160, 128, 112, 96, 80, 64, 48, 32, 24 and 16 pixels, including the quiet zone and any caption. It reports the smallest tested width that returned the exact payload, not a physical print minimum or an exhaustive threshold. A pass only describes this decoder and this image. Calculate a print starting point and test the final material with real phones.

What a pass actually tells you

The simulator alters the actual generated image, then asks the local decoder to read each result. A pass means the decoded text exactly matches your current payload. A different payload counts as a failure even if the decoder recognizes a QR symbol.

Smaller apparent size, defocus, motion, perspective, low light and glare are separate fixed tests. They are not combined into a camera model. The settings and method are disclosed inside the simulator. Edit the code and the previous results clear immediately so they cannot be mistaken for the new design.

Pixels are not a print-size promise

The size sweep checks a stated list of image widths and reports the smallest one that passed. Different decoders can behave differently, and success is not necessarily monotonic at every raster width. The test therefore checks every listed size. It does not convert a pixel result into a claim about millimeters or viewing distance.

Use the print size calculator for a sourced starting estimate. Then check the final artwork on its actual material with the intended phones and lighting. Color and contrast guidance explains the design choices that can help.

Everything runs locally

The current SVG is rasterized in this browser. Image effects and decoding run on your device. No code image or payload is uploaded. The simulator loads only when you run it and can be canceled.

Method checked October 30, 2026 against this implementation. Effect settings are explicitly chosen simulation inputs, not field measurements.