Episode V002 · Source record

How a Damaged QR Code Can Still Scan

QR Code adds recovery codewords to the encoded data. In one fixed Version 3 test, a Level H symbol returned its exact harmless text after an 11 by 11 center block was removed. Move the same-size block over a finder region and both selected decoders reported no detection.

Research lock
August 8, 2026
Evidence stack
14 source records · 14 direct links
Visual proof
Original deterministic decoder model
Original controlled model · no URL, product, account, or device action

The sourced answer

Recovery begins only after the symbol can be found and sampled.

Recovery codewords add resilience

Reed-Solomon recovery can reconstruct some damaged codewords. It does not preserve a second visible copy of every missing square.

Detection comes first

A reader must locate, orient, and sample the grid before correction can recover the payload. Damage to a finder region can prevent that earlier stage.

Thirty percent is not a cutout rule

The familiar Level H figure describes approximate codeword restoration, not permission to remove thirty percent of any visible area.

Original QR damage model

One payload. Four correction levels. Five controlled gaps.

The model generated every symbol locally with the plain-text payload HIDDEN LOGIC V002 TEST PAYLOAD. It then applied module-aligned white squares and decoded every saved case.

Deterministic digital test. Not a universal scanner rating.

  • 7 by 7 center: L failed; M, Q, and H passed
  • 9 by 9 center: L and M failed; Q and H passed
  • 11 by 11 center: only H passed
  • 13 by 13 center: every selected level failed
  • 11 by 11 finder-region gap: Level H was not detected

All clean controls returned the exact payload. zxing-cpp and Apple Vision agreed on the selected center-pass, finder-fail, and larger-center-fail outcomes.

Equal-area location test

The same missing square did not produce the same result.

Center

The Level H symbol with an 11 by 11 center block returned the exact fixed plain-text payload in both selected decoders.

Finder region

Move the same block over the top-left finder region and neither selected decoder detected a symbol.

Narrow conclusion

Damage location can matter because detection, format reading, sampling, and codeword recovery are different jobs. The model does not rank every possible location.

Direct source library

Trace every public claim.

Each note states what its reference supports and where the evidence stops. External sources open in a new tab.

Standard and mechanism

Recovery works on codewords, not arbitrary visible area

These public records support the QR Code scope, selectable correction levels, Reed-Solomon recovery, symbol versions, and reading conditions.

S01Locked 2026-08-08

ISO/IEC 18004:2024

International Organization for Standardization

The public record identifies the fourth edition of the QR Code symbology specification and its broad scope. The paid normative text is not quoted or reproduced.

S02Locked 2026-08-08

QR Code Standardization

DENSO WAVE

The page lists L, M, Q, and H as selectable correction levels with approximate codeword restoration figures. Those figures are not guarantees for the same percentage of visible square area.

S04Locked 2026-08-08

What Is a QR Code?

DENSO WAVE

This overview describes codewords, the three corner position patterns, and the fact that restoration can still fail depending on damage conditions.

S05Locked 2026-08-08

Information Capacity and Versions

DENSO WAVE

The page establishes the Version 1 through Version 40 size progression. The original V002 test uses only Version 3 at 29 by 29 modules.

S06Locked 2026-08-08

Point for Determining the Code Area

DENSO WAVE

The page describes the four-module quiet zone around a standard QR Code. One clean digital test is not production guidance for cropped or printed symbols.

S07Locked 2026-08-08

Point for Setting the Module Size

DENSO WAVE

The page explains why usable physical size depends on printing and reader resolution. V002 does not claim a universal phone-camera result.

S08Locked 2026-08-08

QR Code FAQ

DENSO WAVE

The FAQ supplies the trademark and editorial-use boundary. This page does not reproduce publisher figures, logos, interfaces, or trade dress.

Implementation evidence

Detection and recovery are separate stages

The selected zxing-cpp 3.1.1 files show one implementation path from detection through parsing, block construction, and Reed-Solomon decoding. They are not the source code inside every reader.

S09Locked 2026-08-08

QRDetector.cpp, version 3.1.1

zxing-cpp contributors

The detector source supports the bounded explanation that a reader first has to locate and sample a plausible symbol before payload recovery can succeed.

S10Locked 2026-08-08

QRBitMatrixParser.cpp, version 3.1.1

zxing-cpp contributors

The parser source provides implementation evidence for reading format and mask information and extracting symbol codewords.

S11Locked 2026-08-08

QRDecoder.cpp, version 3.1.1

zxing-cpp contributors

The decoder source supplies implementation evidence for Reed-Solomon correction and subsequent payload interpretation.

S12Locked 2026-08-08

QRDataBlock.cpp, version 3.1.1

zxing-cpp contributors

The data-block source supports the explanation that data and correction codewords are distributed through blocks rather than mapped as one duplicate visible picture.

S13Locked 2026-08-08

QREncoder.cpp, version 3.1.1

zxing-cpp contributors

The encoder source shows one implementation adding recovery bytes, interleaving codewords, and selecting a mask. It is not claimed as every encoder's implementation.

Safety boundary

Recovery does not make a destination trustworthy

A technically successful scan can still return a deceptive or harmful destination. V002 uses harmless plain text and performs no network action.

S14Locked 2026-08-08

Scammers Hide Harmful Links in QR Codes

U.S. Federal Trade Commission

The FTC warns that a QR Code can lead to a spoofed site or malware and recommends checking the destination. This safety note does not alter the engineering result.