QR Experiments: QRoulette
25 May 2020I started to do some QR code (two-dimensional matrix barcode) experiments recently and this is the first result: I developed an animated QR code, ‘QR Roulette‘ or QRoulette.
First the basics: a QR code is a 2-dimensional barcode format. It’s a way to encode data (like a URL, a business card or just any text) into something that can be printed or shown on a screen, so that a QR code reader (your smartphone’s camera is probably one) can read the code and get the data out of it. It is visual wireless data transfer. The more data, the bigger the QR code becomes.
What I have developed is: an animated series of different QR-encoded URLs, changing slow enough that a simple QR reader (like your smartphone camera) will recognise them most of the time but fast enough that you can’t really be sure which one you’re going to get when you click the URL. Hence: QR Roulette
In the above example, all the URLs are Youtube URLs. An iPhone needs up to a second to ‘find’ a QR code, and the different codes are changing at 2x/second, so there is no telling which one you will get.
A QR code being recognized
Toolchain
- I did my first QR code experiments in bash, with
qrencode
and imagemagick - I have now created a web service in Laravel, using BaconQRCode for making the QR codes and my own wrapper around ImageMagick’s command-line
convert
, because the popular packages like Intervention/image don’t support all the effects I needed (transparency, masking, animated gif etc).
Other animated QR codes
I am obviously not the first person who thinks of animating QR codes. There are already other kinds of animated QR codes:
- there is QR4 with their animation inside a static QR
- there is TXQR with streaming data transfer via animated QR