Matt and I were both attracted to the herring bone pattern and how its pleats allowed for fluid, springy movements across multiple axis. It was very easy to hand puppet the desired movements and generate some interesting shapes. We liked how the pleats could undulate like waves, and because of the inherent shape/cut of the fabric it took to resemble some an ocean surface. 

Rigging Diagram
    def automate(self, channel, key, velocity):
        row, col, bank = self.decode_mpd218_key(key)

        # Each column maps to a specific winch.
        # Rows 0 and 1 move forward, rows 2 and 3 move backward.
        delta = 2 * velocity if row > 1 else -2 * velocity
        if row == 0 or row == 3:
            delta = delta * 2
        self.winches.increment_target(2, delta)
        self.winch_dir[2] = 1 if delta &gt; 0 else -1 if delta < 0 else 0

For this assignment we wanted to have much more precise control over the movement of the fabric than the traditional setup. We knew we would ultimately want to accomplish a kind of rocking motion, which would likely be the result of having two opposing capstans, one always rotating in the opposite direction as the other at any given time. This would be far easier to accomplish if we simply automatically assigned a motor to appose the movement of the one being pressed, which is exactly what the function automate is doing.