Coincidentally came across this after reading a comment [1] under the recent post on _for-sale DNS records, visiting milk.com and scrolling through the owner's Mastodon
LOL! It's a sign of the times that, before I saw the year, I thought "that has to be AI generated", because this sort of outlandish silliness is exactly the type of thing that genAI excels at.
This reminds me of car safety features, how drivers have become more complacent to offset the benefits. QR codes were made to be robust in the face of errors, but over time this has been eaten into for aesthetic purposes. Businesses commonly put a logo in the center, eating up some error correction budget. This likely has a similar effect.
A few weeks ago I saw the first QR code I've personally witnessed that I'm pretty sure is completely unscannable. The company logo stretched well out of the center block. It was on the back of a semi in the Chicago area. I didn't get the greatest shot of it on my phone (as a passenger), because it was driving away as I tried, so it wasn't quite proof it couldn't scan, but I'm pretty sure it ate more than 100% of the error correction margin.
Based on the trends, I expect it is only the first of several I will see.
I’ve run into a few of these. And yesterday some kind of payment scanning QR code at SF’s Filipino Pistahan festival didn’t scan and I had to type in the text below. Annoying.
Doesn't everyone QA their QR codes? I thought it would be as obvious as making sure you got the right address and/or phone number on an ad before distributing it.
You'd think. My local authority is reorganising refuse collection and did a mailshot to let everyone know the new collection rota. Then they did another because the dates on the first one were wrong. The incompetence is staggering.
I always find it funny when companies don't put any attempt to shorten the URL, filling it with plaintext url parameters, resulting in huge QR codes that can barely be scanned due to the density.
Let’s say I want to produce a QR code that is as close as possible to an image (let’s say the Nike swoosh logo), if I just added that to the center and added the 3 orientation markers on the corners it wouldn’t be a proper QR code yet, my question is what is the minimal amount of edits I would need to do from that symbol to get a valid QR code?
I’m thinking of something like people buying and hoarding domains in early 00’s (even now), if I could generate the minimal QR code (minimal is important here in the same way that .com is treated as superior to .ca or .net) of well-known symbols and buy the resulting domain it points to (if it even points to a domain) couldn’t I sell this to companies with the associated domain as a re-direct as well?
You could maybe determine this using a SAT solver. You would have to encode the entire QR code specification. I was thinking of doing this to find a minimalist QR code that just had as few black cells as possible.
Looks like this is definitely possible, the results aren't as clean as you might hope though. Maybe they could be improved by introducing some intentional errors (which were explicitly avoided here).
Users of QR Code must be careful about deforming the code by overlaying it with an illustration or putting a a design on it. If it is deformed, the QR Code's error correction function is invoked where even a tiny missing or smeared part renders the reading operation impossible, or the response of the operation may become slow.
If you are contemplating arranging an illustration or design involving a QR Code, please consult with DENSO WAVE about your project beforehand.
As far as I can tell the specification only demands the code modules (pixels) to be square (which is already often ignored in "aesthetic" QR codes which use e.g. round dots instead) and arranged in a square grid. Not that each grid cell has to be filled completely by the respective module. So this might actually be compliant!
I think sampling "the whole square" might actually not be that good for decoding even standard QR codes as aliasing at the edges of each code module ("pixel" of the code) in a camera image would actually make the distincion between 1s and 0s more difficult.
Your argument still partially applies though, as introducing new unrelated colors at the module edges could also lead to aliasing effects when the code is too small for example.
The approach in the article using dithering is in some sense more elegant and mathematically clever. But the level of visual representation from control nets/SD is really compelling.
I played around with this a bit, first I did a photo of a cat I just took at a cat cafe, but the black and white cat didn’t turn out well with the dithering algorithm, so then I tried a selfie and pushing the radius up, it came out looking good, but then I tried aiming my iPhone camera at the screen and it didn’t see a QR code, only the face from the selfie. The ones on the main page, though, worked fine.
[OP] jmusall | 16 days ago
[1] https://news.ycombinator.com/item?id=49224882
Zecc | 16 days ago
https://www.andrewt.net/puzzles/
mentat | 16 days ago
BobbyTables2 | 16 days ago
Only needs a Rick Astley QR code (;->
OscarCunningham | 16 days ago
ideasphere | 16 days ago
eru | 16 days ago
hmry | 15 days ago
userbinator | 15 days ago
OscarCunningham | 16 days ago
zahrevsky | 16 days ago
So, technically, you can run Doom inside a QR code?
sphars | 16 days ago
OscarCunningham | 16 days ago
vpzom | 15 days ago
Here's my version that still keeps the full squares: https://youtube.com/watch?v=qQkWjzqMbuA
mi_lk | 15 days ago
unkl_ | 15 days ago
The guy that made that did a writeup on reddit: https://www.reddit.com/r/PixelArt/comments/1v52x96/
gblargg | 15 days ago
jerf | 15 days ago
Based on the trends, I expect it is only the first of several I will see.
arjie | 15 days ago
theandrewbailey | 15 days ago
masfuerte | 15 days ago
nomel | 15 days ago
petters | 15 days ago
Diffusion image generation constrained to also be a valid QR code
benj111 | 15 days ago
hellojomp | 15 days ago
A question I had about QR codes:
Let’s say I want to produce a QR code that is as close as possible to an image (let’s say the Nike swoosh logo), if I just added that to the center and added the 3 orientation markers on the corners it wouldn’t be a proper QR code yet, my question is what is the minimal amount of edits I would need to do from that symbol to get a valid QR code?
I’m thinking of something like people buying and hoarding domains in early 00’s (even now), if I could generate the minimal QR code (minimal is important here in the same way that .com is treated as superior to .ca or .net) of well-known symbols and buy the resulting domain it points to (if it even points to a domain) couldn’t I sell this to companies with the associated domain as a re-direct as well?
OscarCunningham | 15 days ago
[OP] jmusall | 15 days ago
https://research.swtch.com/qart
Looks like this is definitely possible, the results aren't as clean as you might hope though. Maybe they could be improved by introducing some intentional errors (which were explicitly avoided here).
ButlerianJihad | 15 days ago
I could not find any LICENSE file or statement on the Codeberg repo. We must therefore conclude that the code is © Copyright 2025-2026, by the author(s), all rights reserved. Crazy to think there are already 3 forkers who've forked you.
Furthermore, let us not forget the patent-holder of QR Codes, DENSO WAVE, and their Frequently Asked Questions:
https://www.qrcode.com/en/faq.html
[OP] jmusall | 15 days ago
NooneAtAll3 | 15 days ago
the whole technique hinges on qr scanners reading only middle point of the squares
The moment you encounter developer that thought "for redundancy let's sample the whole square" (which is a very natural thought) - it breaks
I kinda expected working the limits of error correction, honestly. Not this blunt circumvention "because it works on my machine"
Jaxan | 15 days ago
[OP] jmusall | 15 days ago
Your argument still partially applies though, as introducing new unrelated colors at the module edges could also lead to aliasing effects when the code is too small for example.
shivam310 | 15 days ago
wvbdmp | 15 days ago
arjie | 15 days ago
blululu | 15 days ago
dhosek | 15 days ago
zellyn | 15 days ago
0sp | 15 days ago
[0] https://research.swtch.com/qart
Related QArt discussions on HN: [1] https://news.ycombinator.com/item?id=15213044 (2017-09-10, 61 points, 6 comments) [2] https://news.ycombinator.com/item?id=3836935 (2012-04-13, 56 points, 9 comments) [3] https://news.ycombinator.com/item?id=8549772 (2014-11-03, 56 points, 4 comments)
PaulHoule | 15 days ago
https://mastodon.social/@UP8/115939341268444811
https://mastodon.social/@UP8/113494337763505908 (R&D)
jcelerier | 15 days ago