A game of QR chess

QR Code is a specific matrix barcode (or two-dimensional code), readable by dedicated QR barcode readers and camera phones. The code consists of black modules arranged in a square pattern on a white background. The information encoded can be text, URL or other data.

QR-code look basically like this:

example of a qr code

My interest in these codes was among others a pure visual one. Sometime ago I made a simple black and white animation. Nothing special, just messing around with Actionscript 1. Here is a screenshot:

screenshot of animation

On Wikipedia you can some introductory information on how those QR code are structured. While looking at these codes and their resemblance to own of mine animation, I wondered if it would be possible to change the code by hand and still keep the information that was embedded in the code.

The little experiment started on one of the many sites where you can generate your own QR code. I inserted the link to this blog and hit generate. The QR code was then opened in a graphic software. This was the image I started with:

original qr code for this blog

It simply contains the url information to this site. Smartphone addicts can check the code with their QR code reader.

And then came the fun part. I started to change manually black blocks into white ones. Each time checking if the QR code still worked. Soon it felt almost like playing a game of chess. When it still worked, I scored. When it stopped working, I lost. Here is where I stopped:

hacked QR codeGo on smart phones, check this one too. You will see that it still works and links to this blog. The following picture shows which blocks I have changed:

changes in the qr code

Wouldn’t it be great to have more elaborate custom designs in these QR code without losing the embedded information? There still might be some blocks that can be changed without losing the info. For that it might be necessary to develop a strict method to check all possible changes. And I guess the quality of the QR reader will also play a certain role.

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>