The Rock Paper Scissors Playing Glove by Steve Hoefer

San Francisco designer Steve Hoefer has designed a glove that plays Rock Paper Scissors with its wearer.

The glove detects the position of the wearer's hand, remembers patterns in how they play and uses this to play to their weaknesses.

The device detects shaking signifying when to display a symbol that represents either rock, paper or scissors on an engraved polyester screen.

Instructions on how to make your own glove can be found here.

Here is some more information from the designer:

This is a glove that plays a very competitive game of Rock Paper Scissors against the wearer. It learns how they wearer plays and plays to their weaknesses.

(Maybe I am a glove hacker after all…)

Why? I'm not totally sure. Chasing down the source of inspiration is often impossible, but sometimes a theme can be teased out.

In this case my theme is that I love it when computers can interact with us on our own terms. Keyboards and mice were made so machines could watch what we do. But we have to learn how to use keyboards and mice (and telephones) so the machines can understand us. But the mouse was invented almost 50 years ago and the keyboard almost 300 years ago. Technology has advanced a lot in that time, and so should our interfaces. We shouldn't have to learn how to use technology.

So here is a glove that can play Rock Paper Scissors (aka JonKenPon, aka rochambeau) against a person and the person doesn’t have to learn a thing. Just put the glove on and play and the glove will play against you. I took it out in public a few times and people responded amazingly well to it, playing it the first time with little or no instruction. The only problem was that a few people didn't want to treat it naturally and tried to play with more deliberateness than they would if playing against a person.

It remembers how you play so that if you always open with Rock it will tend to open with Paper. And if you tend throw a Paper after a Rock it will counter it with Scissors. The glove's current record for best-of-five matches against me is 71 wins and 62 losses.


If you want to make something that can play Rock Paper Scissors, what abilities does it need?

  • Read what pose the hand is in. (Rock, Paper, or Scissors.)
  • Read when when fist is being shaken so it can tell when to play its hand.
  • Choose a competing hand and...
  • Show the competing hand at the same time as the player.

All of these things could have been done with a complex vision system, high speed camera or two, and a full computer processing the information in real-time. But that would be less than ideal for what we're after. It would be expensive and very complex, and still wouldn't be very reliable. And it wouldn't fit on your pocket.

So lets break it down. We need to read the hand in one of three poses, Rock (all fingers bent) Paper (all fingers straight) and Scissors (two fingers bent, two straight). Looking at it that way all we need to watch is the bend of two fingers, the middle and ring finger. (The index and /or pinky would work too.) If they're both bent, Rock, if they're both straight Paper, if the top one is bent, Scissors. The most obvious answer on how to measure the bending of something is a flex sensor. It's a bit overkill since I don't need to know how much it's bent just that it is. (Or isn't.) But it just so happens that there is a flex sensor the right size and specifications for the finger of a glove. Like it was made for it! In fact it was, these are the same flex sensors that were in the Nintendo Power Glove.

Okay, we can sense a pose, but how do we sense the shaking of the hand? I tested the idea of a simple jiggle sensor. It's basically a little marble in a sealed cup. When it's at rest in the bottom of the cup electricity can flow, but bump it and the marble rolls around breaking the circuit. Cheap and great for a lot of applications, but playing with a couple I found that it took far too long to settle into the cup and there was no way to set the sensitivity. Any small hand tremor would set it off and it would take a second or two to re-center. In short it could tell if your hand was moving, but it couldn't detect individual shakes.

The next idea was an accelerometer, similar to what is in an iPhone or a Nintendo Wii controller. It's a little chip that reads acceleration in three directions. It's overkill since we really only need to detect shaking in one direction (or so I thought) but it's highly accurate and has different levels of sensitivity. It's also simple to use, small, durable, and uses very little power. Hard to go wrong with it.

Now lets give the project some brains. It would be simple to make it play randomly, but I wanted it to play better than that. To do that it would need to remember how the wearer played, what patterns they played, and choose the best hands to win. That was going to require some kind of microcontroller and some programming. I chose the Arduino Mini Pro since it's tiny, has enough inputs and outputs to do what I need, and I have experience working with them. It's also runs at 3.3 volts, just like our accelerometer and most of the LED's, and its pretty cheap for everything that it can do. Most importantly it has some long term storage so we can save statistics between sessions which will help our guessing algorithm.

Lastly, how to display the hand the glove chooses? There are a lot of options. The simplest would be simply a light with a label under it, but that didn't seem very attractive and would require the person to read the label, which isn't easy when you have a light shining them in the eye. Ideally I wanted icons that the player could immediately recognize. I have a few project ideas that do things with layered edge lighting. Most of them got started since I read Evil Mad Scientist Labs articles on edge-lit holiday cards. Probably the best thing I learned from them is to use polyester sheets rather than acrylic. (Part 85815K11 from McMaster-Carr) The polyester sheets are great. They're very transparent but are much less likely to chip or crack than acrylic and it can be cut with scissors. I wasn’t completely sure that engraving a trio of images and layering them would work, so I did a few experiments to find out. It's not as perfect as I had hoped, the bottom image is a little distorted, but still legible. One thing I found in my experiments was that engraving from behind provided both a stronger image when lit and more transparency when unlit. I used a Dremel with a fine grinding point to do the engraving, but if I have the opportunity I would like to see what I could do with a laser cutter. Wrapping the edges of each individual piece with aluminum tape dramatically improved the brightness.

With the rough design figured out I went to work on the specifics. First making sure everything would work together or could be made to work together. Since I wanted the whole thing to fit on the back of a glove I made little paper cutouts of the components and taped them to the back of my glove to work out the layout and wire routing. I decided to put the display on the second joint of the thumb so that it would be properly visible to the player whether throwing Rock or Paper.