QR codes are designed with alignment and scaling features, not to mention checksums and significant redundancy. They have to be, because you’re taking photos of them with your potato-camera while moving, in the dark, and it’s on a curved sticker on a phone pole. So it came as a complete surprise to us that [Christian Walther] succeeded in making an ambiguous QR code.
Nerd-sniped by [Guy Dupont], who made them using those lenticular lens overlays, [Christian] made a QR code that resolves to two websites depending on the angle at which it’s viewed. The trick is to identify the cells that are different between the two URLs, for instance, and split them in half vertically and horizontally: making them into a tiny checkerboard. It appears that some QR decoders sample in the center of each target square, and the center will be in one side or the other depending on the tilt of the QR code.
Figuring out the minimal-difference QR code encoding between two arbitrary URLs would make a neat programming exercise. How long before we see these in popular use, like back in the old days when embedding images was fresh? QR codes are fun!
Whether it works is probably phone- and/or algorithm-dependent, so try this out, and let us know in the comments if they work for you.
Thanks [Lacey] for the tip!
More/Source: https://hackaday.com/2025/01/23/this-qr-code-leads-to-two-websites-but-how/