Abstract Physical Interfaces

I wanted to create a virtual puppet. The twist was that the creature did not move like a human, or perhaps not like anything on Earth. I wanted users to feel like a baby learning to walk for the first time.

My creature had seven muscle groups. Like your leg, accurate movement required controlling several muscles simultaneously. These virtual muscles, like their real counterparts, have many states (infinite even). A keyboard and mouse couldn't hope to provide interactivity with all seven muscles at once; It would be clunky and unnatural. I designed and built a physical interface to provide intuitive and natural interaction. Of course, this is an odd creature, so the controls were designed to be equally strange.

The movement interface was a series of levers. The levers varied by height, pivot position, length, and thickness. Some were placed such that they interfered with others. The state of the levers was determined using a series of potentiometers. This data was captured and processed by an Arduino board, which forwarded the lever states via USB to a frontend Java application that animated and controlled the creature.

The result was very fun. You really did have to work many controls at once to control direction. I've become pretty proficient, but first time users are baffled for a while.

© Chris Harrison