The potential to make a tattoo interactive is pretty easy given the wide adoption of internet enabled, camera toting devices. The only challenge is to ensure you can provide data through imagery and that a device can understand your visual language. That is where the bar code comes in.
Anyone who has ever set foot inside a store is well aware of the synonymous UPC code, that set of parallel black lines in a white box you find on anything with a price tag. The thickness of each line and the distance between them adds up to communicates a simple code. When a device reads that image, it picks out the code and interprets it. A cash register for example can grab that code, check against a company database of prices, and use that to decide how much to charge for the item. Taking it a step further, companies can then use that to track their stock of particular items to then gauge when more product needs to be ordered or when an abundance of product needs to be sold at a reduced price. That’s incredibly valuable functionality from a postage stamp sized image and a network connection.
Of course, there is no real universal database assigning random IDs to random data. The closest thing we have is the Internet, where an address or unique name can be pointed to data somewhere out in the ether. Accessing any type of data from the Internet can be done easily with a URL, so that is exactly what needs to be embedded in a tattoo to make it interactive. That leaves a big issue once we get data in to a tattoo; this data has to be static… that means unchanged… for life. Thankfully the second important part of using a URL is that redirection is simple. All that you need to do is use a service that you can trust in the very long-term future to provide you with redirection. Redirectable URL, check, but how can we communicate that information that visually?
For starters, a one-dimensional UPC doesn’t really work given the size and complexity of the characters needed. For a URL we need a new type of bar code that can handle more complex information, hopefully in a smaller size that is readable outside of a best case scenario. That brings in the two-dimensional bar code. There are dozens of standards for 2D bar codes, but they vary greatly in size, visual appeal, and consumer support. To spare the boring details, here are the standards I felt were the most interesting for using in a tattoo (thanks Wikipedia for the examples):
Quick Response (QR): Probably the most recognized form of 2D bar code. It has become very popular for promotional purposes and more often than not contains a URL. It also has variable sizes and just about every bar code scanning application for phones supports this standard. On the flip-side, it requires a large box at 3 of the corners to give dimensions and orientation, which gives the code a very distinctive look… not the best for smoothly embedding in a general design. I also found that code often was quite complex, which means it either needs to be tattooed very large or impossibly well.
Micro QR: This is essentially a smaller version of the QR, holding much less information (but potentially enough characters) and using a simpler marker system for orientation and identification. On paper this is an ideal format for a tattoo, designed to be small and simple, but I found that not a single application for any of the major mobile phone operating system support this standard yet. Maybe this will be a good choice in the future, but today this does not make sense.
EzCode: The original tattoo that inspired this whole thing was done with an EzCode. The EzCode has an incredibly simple design with large blocks and no overwhelming identifiers (though it does need a lot of whitespace). That means it is a fantastic choice for a tattoo. However, what turned me off was that EzCode is *not* an open standard, meaning that only a single company (Scanlife) can create or read it. While Scanlife is arguably the best bar code reading application out and is on almost every platform, the fact that there is still no Windows Phone 7 support (as of today) and all codes are “hosted” by Scanlife’s services make this just too risky for me.
Data Matrix: Data matrix is actually not common for consumer use (a distant second to QR), but it is synonymous in commercial use. Chances are you have a data matrix code within reach and didn’t even notice. Data matrix can be generated in a wide range of sizes and shapes, provides a pretty standard “matrix of pixels” style look, and is identified by drawing a border around two adjacent edges and a dotted border on the other two. It is also supported by the majority of bar code reading applications.
Conclusion: Data matrix codes are widely supported (and will continue to be), provide great flexibility, a 30% margin of error, and a clean visual style that can be fit in to other designs.
Now that the format is picked out, it’s time to tie everything together. Because the data matrix can be a variable size, the URL should be as small as possible (less characters = less data = potentially less size/complexity to the visual design of the code). Since it is not important that the URL is memorable (it will always be in a visual code anyway), any garbage characters that are small and valid will work. To throw a wrench in, through some experimenting with various readers I found that every application has a different way of interpreting a URL. I found some are finicky about not having “http://” at the beginning of a URL and some did not even like URLs that didn’t contain .com domains. With that in mind, that safest route was to stick with a .com domain, have http:// in the front, and avoid any subdomains (ie no “www”). Most short domains were snatch up many years ago, but hitting up eBay you will see that there are a ton of squatters selling 4 letter .com domains (or even shorter if you are willing to risk .net/.cc./.us) at a price just a touch above the standard domain registration rates. I grabbed a domain and had it transferred to a GoDaddy account. Since they allow unlimited redirects without the need for hosting, keeping the domain registered is your only worry. Just set up your account to renew the domain for the maximum 10 years (with auto 10 year renewal) and you are ready to go. Now by simply redirecting the domain, you can change the destination of a bar code on the fly.
Finally, I made a quick visit to http://datamatrix.kaywa.com/ to generate my data matrix code:
Before making this permanent, I threw the image in to a photo editing program and proceeded to experiment with distortion, contrast, and markings to see just what the code could handle. After toying with extra blocks, some distorted blocks, and differing contrast (as pale as I am, my skin is not THAT white), I found that my phone could still pick up the code easily. The only issue is that it quickly loses the ability to scan when the code as a whole is skewed or expanded inconsistently. Being on skin, it’s very possible for that to happen (say when you twist your body or flex a muscle). This is going to be one of the largest risks in tattooing the code, but thanks to the flexibility of skin you should still be able to find at least one body position that is optimal for scanning.
With the tech side of things out of the way, all that’s left is the design. We’ll take a quick stab at that in part 3.