Over the past couple of years, I've been experimenting with interesting ways to control my computer. I've played with the Kinect and the Xtion depth cameras to adjust my computer's volume and scroll web pages, I've fiddled with the Leap Motion in the hope of controlling my window manager, and I've started collecting other unique input devices such as a bluetooth EEG headset. Recently, I came up with an idea that is much more portable and requires little extra hardware. While I was chatting with one of my artistic friends, I started thinking more about how computer interfaces are becoming more physical and are trying to simulate real objects. Ubuntu and OS X's default scrolling behavior mimics pushing the page around instead of moving the scroll bar. Many types of scrolling have momentum, so if you swipe and release, it keeps going for a little while. The OS X trackpad gestures feel very much like you're trying to grasp what's on the screen. The newest version of iOS makes it easy to have interface elements bounce around relative to each other whenever the app is scrolled.
So, I came up with something from the other direction. Instead of trying to use a trackpad or a scroll wheel to manipulate objects on the screen that are acting physical, I'm working on a way to manipulate physical objects to control a computer. I decided get a deck of cards with QR codes and hook them up to some software I wrote that reacts when it sees a string from a QR code it recognizes.
Instead of blank QR codes I wouldn't be able to tell apart on cheap cardstock, I had the deck printed at PrinterStudio as a deck of bridge cards. One of my dad's coworkers helped me out with the art on the back; he sent me several designs, and I had two of them printed. The first design came out beautifully, but I messed up the edges on the second design.
At the moment, I'm experimenting with the sorts of things I can do with these cards. My favorite idea so far is file transfers. I have a few cards configured as a few servers, and when my code sees one of those cards, it automatically copies a local directory (predefined in the code, at the moment) to the server represented by the card. If I can figure out how to handle the security side of things, I want to make some sort of peer-to-peer file transfer protocol with these cards. The idea would be if you wanted someone to send you a file, you'd show your server's QR code to the other person's computer and it would send the file directly to you.
My favorite part of this project is how little hardware it takes. Almost everyone has a camera now, which is the only expensive hardware. A professionally printed deck of cards doesn't cost much and isn't really needed. Before I got my deck of cards, I tested my software with a QR code generator on my phone. I had some trouble with my phone's screen reflecting my laptop screen's light, but it didn't make anything impossible.
The software's very glitchy right now, it's only a proof of concept. If you want to try it out anyway, it's up on GitHub
If you want to get a deck like mine, contact me. My email's in the upper right of this site.