50 comments

[ 2.9 ms ] story [ 119 ms ] thread
literally prior art:

http://research.swtch.com/qart

and this one has the benefit of allowing you to make a qr code with your face on it :)

It also has the huge advantage of remaining valid, by sacrificing capacity rather than sacrificing redundancy.
I was able to properly scan "Spray painted code" and "ripped by gap" with the RedLaser iPhone app.

Don't let the last one get you down.

Yes -- me too. Using RedLaser, I was able to scan 5 (low contrast), 9 (missing position square), 11 (vertical gap), 25 (warp drive), and 29 and 30 (ant invasion). I was not able to scan 17 (extreme tilt) or 23 (dizziness). This points out how important the software is.

"These are not the pixels you are looking for." Choice.

I did an experiment once where I took a sharpie and colored in "random" (to me) squares of a QR code. I managed to fill in quite a few before it stopped scanning (maybe 10-20).
Wait... We're still talking about QR codes?
Whenever I read anything about QR codes I can't take it seriously because I always immediately think of this: http://picturesofpeoplescanningqrcodes.tumblr.com/
You know I do to, but usually only as I find myself actually scanning a QR code. Which is not all that rare it turns out, mostly bus stop schedules.
My startup is seeing 300% month over month growth using the disruptive marketing power of QR codes and Second Life.
The problem are the three big squares in the edges, if they are damaged the QR code won't be recognized as such - and the edges are usually what gets damaged first.
I was able to scan two "unscannable" codes: (5) "Even more reduced contrast", and (30) "Spray painted code" on my Moto X. Woot! What do I win?!
In addition to 5 and 30, 11 (the one with a gap) also scanned fine for me (using the SoftBank QR app)
For companies that make "creative" QR codes, aren't they already giving up the 20% error correction?
Yes, but assuming errors are uniformly distributed, there's a chance read errors will actually correct problems. They'll occasionally flip the bit that was tampered with.

So error correction gets worse (less effective), but maybe not as bad as you might believe.

It depends on how creative they get. If they're just rounding the corners on the squares to make it look more fluid, then it's definitely not a full 20% being used. If they're plopping a logo into the center of it, then it depends on how large the logo is proportional to the code's size.
The bit at the end made me happy - I didn't know QR codes code be that large. I wonder what the practical maximum number of bits is? I just tried the ones on the Wikipedia page (http://en.wikipedia.org/wiki/QR_code#Storage) - the one that's 5 alignment blocks wide scans, but the one that's 7 alignment blocks wide does not. I assume my primitive old phone's camera lacks the resolution for it. Unfortunately the captions are wrong - they both say 177x177.
For what it's worth, the giant code scans fine for me using QR Reader on an iPhone 5S. Pretty amusing.
There's a 3DS game called Pullblox (or Pushmo), which allows you to make your own (low-res 2D bitmap) levels and then distribute them via a massive QR-code.
On my nexus 4 I managed to scan the giant QR code... except for it was read a serial code instead lol
I managed to read most of the codes he marked as unreadable in QRReader iOS app. I don't know what he used. But kinda interesting article.
I was actually wondering the same exact thing for one of my clients. We are using QR codes (and their scans) to enable distribution of music for independent (unsigned) bands, while tracking who their new fans are, and how they're getting new fans. The core is a marketing/analytics tool/engine, but the front-facing product to the fan is a simple fangate.
Wow that's really impressive!
Apart from all the other problems with QR codes, the tombstoning case (one of the failures here) is important in reality.

Without that, you have to awkwardly scan from exactly the correct direction.

The thing is, you surely could correct for that(?)

(comment deleted)
One of these is actually scanned successfully by RedLaser:

1. Spray painted code. Does it scan? (author says NO)

Fantastic post. It's about time we start looking at QR as a technology instead of a marketing engine.
Agreed. For things like prescriptions, and organization, it's a great tool that bridges the information gap.
One thing that still bugs me about QR code error correction is the lack of support for codes with inverted color schemes. Unless I'm mistaken, this feature should be relatively simple to implement (ie. checking for two patterns) yet most of the applications I know fail at reading an inverted code (ie google goggles).
What purpose do inverted colors serve? Is there some use of QR codes that is poorly served by the standard scheme but better served by an inverted one?
Aesthetics of the rest of the image / object it is on. Inverting allows you to have a black 'quiet area' rather than a lighter one.

That being said, if you are putting QR codes on anything aesthetics are probably not something that even registers with you.

Several of the 'no' examples were correctly scanned by the 'Google' app for iPhone. This was a wonderful tour of some of the capabilities of QR codes.
QR codes are great for augmenting ads, booklets and other stuff, but if you want reliable readability, you shouldn't go with more than a simple color change, in my experience.

I was tasked with creating QR codes for certificates (every certificate leads to a unique page for the certificate number on the website, for security and more information since the certificates were small and made to be pretty instead of useful).

We ended up with Level M golden (more like dark yellow) colored QR codes in the corner - using higher error correction is actually detrimental the smaller you go, and backgrounds, embossing or any kind of advanced design would lead to it being very hard to read - it's better to have a plain ugly QR code that is immediately scannable with any device than a pretty one that is unreadable (just imagine your buyers trying to scan the damn thing five times in a row then give up in frustration).

But the client really liked the idea (and the results), and I am still surprised that so many people don't even consider this nowadays...