Pick one
Twelve treatments of the same code: fonts across, extent and inversion down. Whitespace is what makes the text readable, so raise Clearance if a variant is fighting the noise around it. A half step clears its outermost ring only partly, stippling it, which softens the edge and costs fewer forced modules than a whole ring. Symbol size is chosen automatically; each card shows how wide that code needs to be printed.
Selected
fixed: function patterns and modules carrying the payload itself free: click any of these to flip it, and the solver rebuilds the rest
Each nudge re-solves from scratch. Watch the fidelity figure: sliding the text so a period meets an alignment square, or a stroke meets the timing line, costs nothing and can gain you modules.
Scanners expect dark modules on a clearly lighter background. This pairing is inverted or too low in contrast, and is likely to fail to read.
Exports contain only the two colors above, never the grays, which mark editable modules in the preview only.
Keep It On Your Device
QartText needs no network once it has loaded. It does all the work in your browser and never sends anything anywhere. Add it to your home screen or dock and it opens like any other app, works with no signal at all, and drops the address bar.
Technical Details
A QR code’s Reed–Solomon code is linear over GF(256), the block interleaving is a permutation, and the mask is a fixed XOR. Composed, the map from data bits to module colors is affine over GF(2).
The payload (a URL, a tel: number, a WIFI:
descriptor) occupies the first few hundred bits. Everything after the
four-bit terminator is padding, which decoders never read, so those bits are free
variables. Writing one column per free bit and one row per module we want to
control gives a linear system; Gauss–Jordan elimination over GF(2) solves it.
The answer is a genuine codeword that both carries the payload and paints the
picture.
Nothing is overwritten and no damage is introduced, so the full error-correction budget survives for real-world wear. This is Russ Cox’s QArt construction, with the artwork being type rather than an image. Cox bought his free bits by appending junk to the URL; taking them from the padding instead leaves the payload byte-for-byte intact.
Where a module carries a bit of the payload itself, it cannot be moved, and those few pixels come out wherever the payload puts them. The app reports the count as fidelity and picks the symbol size and position that minimize it, always protecting the letterforms first.