One part which I barely touched was how to mathematically "force" pixels in the error correction section. It's an extension of the ideas covered in https://research.swtch.com/qart but unfortunately I don't grasp it well enough to explain properly.
One part which I barely touched was how to mathematically "force" pixels in the error correction section. It's an extension of the ideas covered in https://research.swtch.com/qart but unfortunately I don't grasp it well enough to explain properly.
I found that they are still pretty useful because they're noticeably smaller grids. They can be enlarged to use up the same space on screen/print as a denser UTF-8 QR, thus be clearer and easier to scan. Some readers will assume that an all-uppercase URL is supposed to be lowercase and convert it, others will use them as-is. Use short URLs, like https://qr.test/thing so only the case of the path part matters, then make sure /thing and /THING go to the same place, and you're good.
Thanks for the informative guide.
Tangentially related: https://blog.vrypan.net/2026/07/07/where-is-qrdo/ It's a "where is the QR" game, where a mobile is more capable in finding the pattern than a human.
Hiding the code is maybe not good for getting scans but a nice idea for some kind games... can imagine this being a part of an "Escape Room" game :D