13
12/10
23:32
The Linkage Computer
This is my final project for 6.849: Geometric Folding Algorithms by Prof. Erik Demaine, the happiest genius of the world.
In fact I prefer to call it ‘the origami class’, which sounds more obscure to my friends. And complex, curving origami was indeed what I expected myself to do at the beginning. Well, the field turned out to be much broader and even more interesting (absolutely an understatement).
Anyway one day we were introduced to Kemp’s Universality Theorem, which says ‘there is a linkage that signs your name’. In proving that Kemp invented 3 gadgets: multiplicator, additor and translator, which perform arithmetic operations on any input angle. Then the idea came to me that if we can design gadgets that perform boolean operations, we can build a computer from just hinged bars.
I always had a thing for mechanical computers. The article that talks about the rope-and-pulley computer by Apraphulians was my all-time favorite of Scientific Americans. This project might be a little nerdy, but who knows — mechanical logic gates do make sense on nanoscale and in extreme environments like outer space.
Here is how I represent bits with bars. Note that each bar is constrained to rotate in half plane so I gain a nice ‘black box’ feature where the implementation of one gadget does not disrupt the rest of the machine.
Here are the logic gates: translator (moving a logic state across space), invertor (X -> not X), AND gate / OR gate (they are mirrored image of each other). Watch the video to see how they work.
Using the above gadgets I will be able to build a full adder (A, B, Cin as input and S, Cout as output). I’ve made a simple simulation with Processing. Click the input bars to switch states:
The models I constructed use wood sticks and rivets. I also proposed another way of building the gadgets — cut and fold them from one piece of flat material. It would be awesome to cut a whole mechanical computer out of one piece of thin metal, roll it and take it with you to a place with no electricity and do some crazy computation.
I’ll be continuing this project during the winter break. Many thanks to Erik & Martin Demaine and Tomohiro Tachi. It’s been so cool!
Tools used: AutoCAD, Processing





Tolbiac
December 19, 2010
5:13 pm
It should be “inverter”, not “invertor”.
Tom G
December 20, 2010
4:58 am
Can you help us understand by constructing a sentence or situation that illustrates a computation that might apply? Maybe, add images or gravity sliders to the I & O sticks which appear female when upright but male when inverted. Then maybe it could illustrate XX, XY, YY gender outcomes.
Bill Mill
December 20, 2010
10:07 am
Very cool project, but your video doesn’t appear to work for me.
Jay
December 20, 2010
1:32 pm
Can you do feedback, to make an SR latch?
Xiaoji
December 20, 2010
3:21 pm
I’ve been working on this. The AND/OR gate I did here cannot use feedback, but there probably are other ways I can simulate it.
Kevin Slavin
December 27, 2010
12:27 am
Hi Xiaoji
This is extraordinary work, it made my day. When I was first looking at it a few days ago, I’d swear I saw some videos of them in action on youtube. Did I make that up?
Please send the happy genius Erik my x+o and please take this further, it’s a great delight.
chuckdudley
January 26, 2011
11:39 am
The blogger mentions “Then the idea came to me that if we can design gadgets that perform boolean operations, we can build a computer from just hinged bars”
google: antikythera mechanism
Antikythera mechanism is an ancient mechanical computer designed to calculate astronomical positions.
interesting connection
J N Nestor
January 26, 2011
3:38 pm
Beautiful. This is the coolest thing I’ve seen since Paras Chopra’s “Neural Networks: Understanding Using Visual Basic”, which will, incidentally, provide a wonderfully clear understanding: http://paraschopra.com/tutorials/nn/index.php. And thank you for the Apraphulians rope-and-pulley computer Scientific American reference!
ali jay
January 27, 2011
12:22 am
Love it, absolutely, love it
Vladimir
January 27, 2011
3:17 am
I believe that you have a problem with Cin in simulation. When A and B are zero and Cin is one your outputs are one (and Cout should be zero).
But this is very very fine work and I am simply fascinated!
Andrew
January 27, 2011
11:26 am
“I prefer to call it ‘the origami class’, which sounds more obscure to my friends.” … from this I conclude that you like to sound obscure to your friends. I think I like you
Seriously, this blog is awesome, the mechanical computer work is way cool. Thanks for posting!
Keith
February 19, 2011
12:15 pm
There is a mistake in your adder simulation. When (A,B,Cin) = (0,0,1), the output should be (S,Cout) = (1,0), but instead your machine outputs (1,1).
Keith
February 19, 2011
12:17 pm
Whoops, Vladimir beat me to it. Sorry for the redundant comment. And your ideas are inspiring!
Tassos Bassoukos
March 17, 2011
4:38 pm
This is very interesting work, and I’m surprised there are no mentions of nanomechanical computers yet.
Binary Adding Machine « Small Streams
August 7, 2011
12:31 pm
[...] binary adding machine usea hinged rods that work like logic gates. Xiaoji Chen created much better looking gates with wooden slats and rivets. She’s modeled the adder in Processing. Leave a Comment [...]