How SR CODE works

SR CODE is an independent 2D code format. It is not a restyled QR code: the finders, module geometry, byte layout and decoder are all its own. Like QR, it can carry any short content; unlike QR, it was designed from the start to look branded and to survive noisy, blurry and partly damaged prints.

Scan reliability vs QR

Same URL, same printed size, same simulated camera. QR at error-correction level Q, decoded with jsQR; SR decoded with the SR core.

ConditionSR CODEQR
Clean / small / tiny100%99%
Strong blur100%88%
Heavy sensor noise100%21%
Stains on 8 % of the code100%79%
Stains on 15 %50%50%
One corner torn off96%0%
Blur + noise + tilt96%0%
Perspective tilt96%100%
Overall88%65%

Honest caveats: QR is still slightly better under strong perspective, and a phone's built-in camera app reads QR without any website — SR Codes are scanned at /scan or in the SR Scanner app.

Format at a glance

Sizes
14 versions, 21×21 to 73×73 modules; the smallest that fits is chosen automatically
Capacity
8 to 370+ bytes of UTF-8 (links, text in any language, Wi-Fi, contacts…)
Error correction
Reed-Solomon, 40 % parity (repairs ≈20 % damaged bytes), interleaved blocks
Integrity
CRC-16 over the content — a mis-read is rejected, never shown
Finders
Three concentric rings (1:1:3:1:1) readable at any rotation + an orientation ring
Geometry
Four anchors → full perspective correction; a lost corner is rebuilt from the other three
Placement
Bytes laid out as compact 2×4 patches so a stain destroys as few bytes as possible
Privacy
Encoding and decoding run entirely in your browser; nothing is uploaded