Fred Trotter

Healthcare Data Journalist

Hacking, Programmable Self, QR codes

QR code stencils, the problem

I love QR codes.

I think the notion of simple graphical URLs is beautiful and elegant. If my wife were a graphical data object, I think she would be a 2D QR code.

Think of it, you can put links anywhere you want, in the real world!

You can put them on tshirts, coffee mugs, stickers, business cards… anything in the real world becomes a link to something in the virtual world. Awesome.

I have been playing with QR codes, with an eye towards gamification and behavior change for quite some time. I love the fact that with android and/or iphones you can rely on the GPS coordinates that webkit (the core of both browsers) will provide, makes a QR code a token that can do different things in different places. Think of the possibilities!

You could make geo-caching much much more interesting…

But how do you make durable (or intentionally not durable) QR code in a reproducible way? How do you manufacture large QR codes, that can be scanned accurately at a distance?

The first approach is simple to print the QR codes on either single sheets (A4 or US letter) and then clear paste them to some type of flat surface. You can use throw-away planks of wood from the hardware store to make durable QR code links. But what if you want to make a QR code on some permanent surface, like a wall or pavement. This basic idea can be taken pretty far, for instance you can paste the printed QR codes into ceramic tile or even bake it on, for a near permanent tag.

The simplest solution would be to use a stencil with black spray paint. QR code scanners vary greatly in their ability to pick up contrast, but the color black, and some other color, will almost always pick up. This has an advantage over gluing paper, because you can tag objects that are not entirely smooth. Moreover, with spray paint that does not damage the surface (more later) you can create images that can be placed out in public, non-destructively.

But what is the problem with a QR code stencil? In a word, islands. In order to make a stencil with, say, photo paper (which would otherwise be a great technique), you need a way to address bits that the stencil needs to block, that are not physically connected to the rest of the stencil. Its easier to show than explain. If you are spray painting black, for instance, and you want to make a stencil of the following QR code, you will have the following trouble spots:

A demo of the QR code islands that make stencils difficult

See the issue, the two anything white, that does not connect to something else white (even by a corner) is going to be an issue. You might be able to make something clever for the places where this happens in most/all QR codes, but each QR code is going to have random “islands” that are often just one pixel big… and in different spots each time. These are the real headache. Making a traditional stencil simply will not work.

Also, making a stencil is very very slow. If you have to cut each pattern by hand.. ouch… way to much time. We need something faster too!

My first approach to solving this problem was to try and find a programmatic solution. For a given URL, there are many different ways to encode into a QR code. It might be possible to use an algorithm that detects this type of “island status” to find a QR code solution that did not happen to have any islands. You could make an application smarter by posting meaningless GET variables at the end of a URL until you found a version of the URL that would work (of course, I am focused on using URL shorteners like bit.ly to ensure that you have a simple-as-possible QR-code. The more character in the URL, and the more complex the QR code is and the harder it is to make a stencil. The shortener ensures that the QR code is manageable.

I gave up on this technique after noting that there were islands in all of my test runs for various URLs, but the idea is sound.

16 thoughts on “QR code stencils, the problem

  1. Why not use a screen for you stencil? That would hold your islands without getting in the way of spray paint or powdered chalk. QCad can be used to cut things if you have a 2d cutting table.

    Thanks for telling me about QR codes. I see that Squeeze has several way of printing them.

  2. Couldn’t you create two stencil, both being the inverted version of the other. Lay down the black and then switch to the other template to finish off some of the island in white – might take a few coats for the white over black though, depending on contrast requirements

  3. Hi, what about more layer of stencil? first you paint one half, and then another? with some program that it split automaticaly?

  4. So how did you make the screen based stencil shown in the Health 2.0 Maker Fair coverage? It looks like hardware cloth with nori (seaweed) for the black bits. What generator are you using to conform to the hardware cloth grid?

    Very cool!

  5. Indeed, you obviously got it working, and whatever method you used appears to make a cleaner result. Could you publish your method of stencil making? How did you get around the island problem?

  6. Hello fred,
    I saw your video, thats basicly my approach, but i made the stencil out of paper. I took two papers, the upper one with vertical ply’s every two pixel and the lower one with the Code then I cut out the code. but your approch is much better!
    The only reason why mine was cleaner is because i put some weights on the stencil, so there is less airgap between stencil and ground.
    This should work even better with the chicken wire! Mine fell apart after about 20 tags because it was out of paper. Ideal is a combination of weights on the upper side and a bottom out of soft foam. So there is even less airgap between the stencil and the street and thus it will be cleaner.

    I have no projects about QR this time, so I didn’t continued my researches… Even the QR Pin ( http://lesuedois.fr/?p=194 ) was a financial disaster for me because the city of Rouen canceled the contract at the last minute… Thats why i made the stencil, to get cheaper alternatives, but the local scene hung me high because many people got much money from the city… Well sometimes art really sucks.

    Small Airgap is essential for stencils. I hope this helps you get things forward…

  7. Pingback: QR Code Stencil
  8. I do think that holding the stencil to the surface is critical. I am working on improved techniques for this.. Your idea is a really good approach and I wonder if I could automate somehow?

  9. Hi, have you tryied http://uqr.me? Is one of the best qr code generator world wide… Permit to link to urls, files, a full customizable mobile ready page, a paypal payment, a vCard and they permit to beautify your QR with rounded corners, gradients, centered image etc..

  10. It was also interesting to see the booth picture with the QR codes in use. I realize you had codes for several products, but I had been envisioning one more prominant code rather than several small ones (perhaps due to the amount of real estate signage I’ve seen recently with larger QR codes).

Comments are closed.