Make: Projects
Marble Adding Machine
Make a mechanical, gravity-powered, binary calculator that uses wooden levers and channels to count.
Computers add binary numbers constantly, but we never see how. This elegant machine does the math using glass marbles.
I started building marble track machines years ago using Lego. I experimented with all sorts of crazy ways for the marbles to descend. One was a rocker that shunted a stream of dropping marbles one-by-one to alternating sides. If you cascade three of these toggles down to the left, every marble flips the rightmost toggle, every second marble flips the middle toggle, and every fourth flips the leftmost. Interpret each toggle’s state as left = 0 and right = 1, and you have a binary counter. Add more toggles, and it can count more.
I realized I could turn the counter into an adder by dropping marbles onto toggles other than the rightmost. I added a marble hold-and-release shelf up top to act as an input buffer, another underneath as an output buffer, and a clear-register mechanism to reset all toggles. I moved from Lego to wood, and refined the design a few times. Here’s the latest edition.
Steps
Step #1: Mark the layout on the blackboard.
Next
- You can use my project plans, or you can design your own. Note that I use metric measurements in general, but standard sizes for the drill bits and some materials.
- Download the project plans from http://makezine.com/20/marble_adder and print them at full size, not scaled. If you can print oversize, use the full template plan.png. Otherwise, print out the tiled version, plan_p1 through plan_p4, and align and glue the 4 pieces together. Also print at full size the templates toggles_template.png, for Step 2, and sliders.png, for Step 3.
- Cut the plywood to 400mm×280mm and clamp the template centered on top.
- Transfer the key locations from the template onto the plywood. For the positions of the holes, I used an awl to punch through the template and into the wood. For the horizontal and vertical pieces, I transferred the positions of key corners by punching lightly through the paper with a chisel. Be sparing in how many places you mark, and circle the points on the template where you marked the wood, so that after you remove it, you can still figure out what corresponds to what.
Conclusion
Debugging
Chances are, your machine will need a bit of debugging to get it working perfectly. Filing here and there will smooth the marbles’ journey.
Hopefully, the 20° angle will keep marbles from getting ejected out the front of the machine, but if they do fall out, it may help to carve out the back edges of the holes that the marbles pass through. You can also just re-bevel the base to mount the machine at a 30° angle instead of 20°.
Adding Value
For maximum marble action, add 63 (111111 in binary) to 63.
It’s also fun to use the adder for subtraction and negative numbers by using the two’s complements of numbers. This means interpreting the leftmost bit as the positive or negative sign, and flipping all the other bits to convert from positive to negative. For our 6-bit adder, this gives a number range from –31 (100000) to 31 (011111). Adding –1 to –1 is the same operation as adding 63 to 63 above, and it results in 111110, the 6-bit two’s-complement representation for –2.
In general, it’s fun to subtract 1 from numbers, because nearly the same number results, but with all the original marbles dumped and replaced by new marbles.
I invented my marble adder independently, but people have since emailed me about 2 educational games from the 1960s with which it shares some similarities, named Dr. Nim and Digi-Comp II.
Multiplying Possibilities
I have spent time trying to come up with multiplier designs, but everything I’ve thought of lacks the gee-whiz simplicity of the adder. I’d want to multiply not by adding the number to itself N times, but by shifting the number to be added, and adding it to the other argument in each shifted position. Such a machine would no doubt involve a lot of sequencing and require gears and such, but I haven’t come up with a specific design that has simple appeal.
Suggestions are welcome!
This project first appeared in MAKE Volume 20.



































