Marble Maze Computer

For a long time I’ve been trying to design a mechanical computer, similar to what Charles Babbage tried to build with his difference engine and analytical engine. Babbage never finished his computers because he had enormous problems making the precise custom parts he needed with 19th century technology. With access to a Fablab, I can make similar machine parts in a matter of a few hours.

My design is very different to Babbage’s and uses moving marbles or ball bearings to represent data. At http://hackedgadgets.com/2007/06/28/binary-marble-adding-machine/, there’s a description of a marble-based adding machine, which might give you an idea of how I’m intending to build a full computer.

One of the most difficult parts to make is the ‘maze’ which channels marbles from ten different input positions on top to five possible output positions on the bottom; this is essential to operate the machine. The pattern of channels here represents the program the computer runs, although if you’re really into processors you would call this microcode rather than the eventual program. There are ten positions into which ball bearings can be dropped on the top of the maze, and five holes in the base which represent the output.


In the picture, you can see the maze I cut using Fablab’s Shopbot milling machine next to a hand-made maze I made earlier. The hand-made one is pretty rough and unreliable - meaning ball bearings tend to get stuck in it. My hand-made one also took much longer to make. The milled version looks much neater and works perfectly.

I prepared my design in OpenSCAD and exported it as an STL file, which the Shopbot’s router can read. The OpenSCAD source file is listed below, if you are interested.

I’m still designing and building the rest of the machine - if you want to follow its progress or see more details, have at look at http://srimech.blogspot.com/search/label/turingmachine.