Semi-Realistic Rotary Experiences – Reverse engineering physical interaction

Created by Lingdong Huang at the Future Sketches Group (MIT Media Lab), “Semi-Realistic Rotary Experiences” is a set of experiments exploring augmentation of real life physical gestures of rotating things. Comprised of a custom designed rotary device and a series of interactive (generative) illustrations, the project questions the nature of physical to digital interaction, and how engaging this could become for the user.

To build the physical interface, Lingdong used 5 breakout continuous rotary encoders and designed his own circuit board to match them. He routed the PCB in KiCAD and milled the board on the Roland SRM-20 in the basement of the Media Lab. For the packaging, he wrote a JavaScript script to generate cases for PCB’s then 3D printed the parts on a Ender-3 v1. The dev-board has its separate case, which can be slid snugly into the case containing the rest of the circuits; modular design that allows multiple projects to share the same dev-board. To program the board, Arduino’s “Keyboard” library allowed Lingdong to simply trick the computer into thinking its interactive with a keyboard so instead of writing a protocol, he can simply work off the keystrokes that are universally recognized. Rotating the first knob anti-clockwise by a notch generates an “A” keystroke, and rotating it clockwise by a notch generates a “D” keystroke, pressing it down produces a “1” keystroke, and so on.

After some initial experiments parametrically controlling various graphics, Lingdong became even more obsessed with the rotary gesture of turning knobs, wondering what experiences in real life, that involves such gesture, can be simulated?

First experiment titled “Fasten the Bolt” simulates a screwdriver hovering in mid-air, with its motion wobbled by Perlin noise, mimicking an (invisible) shaky hand grabbing it and a bolt half-planted in a deep orfice waiting to be fastened. The apparent challange is to wait for the screwdriver to line up with the hole before inserting and twisting. Second experiment looks at ways to best un-cap a shaken-up bottle of soda, with finesse, such that it doesn’t explode and make a huge mess. The third experiment is a simulation of helping a stick-figure take a shower by turning a knob where among the 20 notches on the rotary encoder, only 1 produces the comfortable temperature. Whereas the previous experiments mostly relied on one or two knobs, the challenge now was to come up with one that uses all four. Here, a 3d printer bed is levelled to control ways a filament interacts with the base followed by a simulation of an alarm clock and finally the thrill of turning on the stove and danger associated with burning yourself in the process.

For more information about the project, including code examples and detail description of each experiment, see links below.

Project Page | Lingdong Huang