The symbol
Drag on the symbol to damage modules
- Data codeword
- Error correction codeword
- Function pattern
- Damaged module
Click any module to see which codeword it carries.
Correction capacity at this version
A block repairs up to half of its parity codewords as errors (⌊EC/2⌋ per block).
Damage it
Module damage and capture defects are independent — combine them.Drag across the symbol. Painted modules flip to a fixed random value, like a real scratch.
Function patterns carry no parity — a scanner that cannot find or orient the symbol never reaches error correction.
Seeded, so the same percentage always damages the same modules.
Can a reader still read it?
The reader loads on the first decode. Decoding uses the clean render plus your damage — never the structure colours.
| Damage | Result | Time | Source |
|---|
Damage the symbol, or run the sweep, to fill this log.
QR anatomy: what every part is called
Rendered from the symbol above — switch level or version and it redraws. Hover a term to light it up.How to read these numbers
The symbol is encoded by a QR Code (ISO/IEC 18004) encoder that runs in this page: byte mode, any version up to 10 here, all four error correction levels, and the standard mask search. The module damage you paint or randomize is exact — the demo knows which codeword every module belongs to, so the budget meter counts real corrupted codewords, not an estimate.
The budget model follows the standard: a Reed-Solomon block of e parity codewords
repairs up to ⌊e/2⌋ corrupted codewords per block under error decoding (erasure
decoding, which a scanner can only use when it knows where the damage is, can do better).
Damage to finder, timing, alignment, format or version modules is outside that budget entirely —
error correction repairs codewords, not the scaffolding a scanner needs to find the symbol.
The capture defect presets (noise, blur, low contrast, occlusion, crop, shadow, rotation) are rendered onto the same canvas a camera would have produced, and their damage percentage is estimated by sampling each module's centre pixel against its intended value. Decode outcomes apply to Dynamsoft Barcode Reader at default settings on the damaged render; another reader, another resolution or a print-and-scan round trip can shift the boundary, and a successful decode never guarantees reliable scanning on every device.
The SDK downloads its engine and contacts Dynamsoft for license activation; the hosted demo uses the CodePool domain license, and local or self-hosted previews use the SDK trial license. The payload you type and the damaged image never leave the page.