website | twitter

Thursday, November 05, 2009

Wooden half adder

P1060931

Since I encountered an essay by A. K. Dewdney over ten years ago, somewhat I had been obsessed about mechanical implementation of boolean logic. The essay introduced ideas of kinetic binary calculator as an imaginary story of ancient civilization. This fantastic tale attracted me, and my theme at the art college became how to make a computer made from wood.

Last year, my boss gave me a Dewdney's book "The Tinkertoy Computer and Other Machinations", which includes the essay, and my enthusiasm came back. I made a couple of prototypes to realize boolean logic without electronics. This is the latest attempt.

I chose a half adder as the motive because half adders are used everywhere in a computer hardware, and it seems nice complexity for the project. I thought this is the best example to show the idea that computer's concept is independent with hardware. In other words, I wanted to prove that computer is purely conceptual entity and you can make it from any material besides electronics parts.

P1070004 P1070009

I first built a wooden AND operator. Can you tell how this toy work? The top two holes show the input, and the center hole shows the answer. Background board shows two kind of state T (True) and F (False). Because of gravity, initial state is T AND T = T, once you pull one of bars up, the center piece is also pulled up, and the answer becomes F. This is how AND works.

Basically, any boolean logic can be possible with AND, and another operator NOT (even OR can be constructed from AND and NOT). Let's think about a half adder. A half adder is a primitive adder and you can only add two bits. There are only four positions.

  • 0 + 0 = 0 0
  • 0 + 1 = 0 1
  • 1 + 0 = 0 1
  • 1 + 1 = 1 0

Let the inputs A and B, and the outputs S (sum, the low bit) and C (carry, the high bit). A half adder can be shown two boolean equations from AND(∧) and NOT(¬).

halfAdderDiagram
  • C = A ∧ B
  • S = A xor B = ¬(A ∧ B) ∧ ¬(¬ A ∧ ¬B)

Finally, I constructed parts along with this formula. I used gears as NOT operator.

P1060912 P1060908 P1060900 P1060894
1 + 1 = 1 0 1 + 0 = 0 1 0 + 1 = 0 1 0 + 0 = 0 0

6 comments:

  1. Thanks, I didn't take a video yet, but I'll do later.

    ReplyDelete
  2. Hi Takashi!

    I don't mean to "meet too", but: Beautiful!

    ReplyDelete
  3. Takashi - this is quite beautiful. So elegant.

    ReplyDelete
  4. Awesome project. Once I get my workshop back, I may have to attempt these myself. Too cool.

    Scott

    ReplyDelete
  5. Refreshingly nice project.

    Maybe one day you can extend this to make a basic mechanical computer.

    ReplyDelete

 
Creative Commons License
This work is licensed under a Creative Commons Attribution 3.0 Unported License.