The TOFU Circuit Simulator

Rambings

“I set myself up as a blacksmith as a front while I attempted to repair the damage to the time circuits. Unfortunately, this proved impossible because suitable replacement parts will not be invented until 1947.” ― Dr. Emmett Lathrop "Doc" Brown, Back to the Future Part III

What parts were invented in 1947 that enabled Doc in 1955 to construct a replacement for the DeLorean’s damaged time circuits? Perhaps he was referring to the fact that on December 16, 1947, William Shockley, John Bardeen and Walter Brattain succeeded in building the first practical point-contact transistor at Bell Labs. Nonetheless, Doc clearly built the replacement circuit out of a few dozen vacuum tubes. He even verified that they were warmed up before sending Marty back to 1885. Apparently, there was hardly any logic in those time circuits. How many gates can you possibly construct with a few dozen vacuum tubes? Maybe he actually took advantage of the amplification properties of the tubes. But, then again, he managed to build a flying, time traveling train at the end of the movie using purely 1885 components.

Why didn’t Doc opt for relays? The relay was invented by Joseph Henry in 1835. Samuel Morse invented the electrical telegraph 2 years later. In 1844, a telegraph line was established between Washington and Baltimore. That achievement was made possible by telegraphic repeater technology, the first significant application of electromechanical relays. By 1885, relays were commonplace. Maybe they helped Doc built his flying train.

Doc was a fictional character; so, it really doesn’t matter anyway. But, in 1837, Charles Babbage proposed his Analytical Engine, a mechanical device that had all the essential logical features of a modern electronic digital computer. The machine would have executed programs stored on punch cards, an idea Babbage borrowed from the Jacquard loom. Ultimately, financial and political reasons inhibited the machine’s construction, but the primary reason it wasn’t built was the mechanical nature of the device. It simply wasn’t possible with the technology of his day to construct so many gears, cams and other parts with the precision necessary to enable the computer to function reliably for long periods of time if at all.

Why didn’t Babbage opt for relays? They were definitely available when he was pondering about computation. Babbage was probably influenced by other mechanical computational aids of his time, such as the Thomas Arithmometer, a mass-produced mechanical calculator that could add, subtract, multiply and divide. It was invented by Charles Xavier Thomas around 1820. A mechanical computer must have seemed like the next logical step after the mechanical calculator.

If someone suggested to Babbage to mess around with relays, where would computer technology be today? Imagine that Babbage managed to construct a computing engine equivalent in power to Konrad Zuse’s Z3 in 1871, the final year of Babbage’s life. The Z3 was actually constructed in 1941. Would that have pushed technology ahead by 70 years? Consider that the IBM PC was released in 1981, 40 years after the Z3. If Babbage had used relays, does that mean IBM would have introduced the PC in 1911? Nah.

The PC relies on a microprocessor. The microprocessor is an integrated circuit, which evolved from transistor technology. The transistor, as mentioned above, was invented in 1947, only 6 years after the Z3. And, the development of the Z3 didn’t influence the development of the transistor. Instead, it developed from attempts to produce solid state diodes that react faster than vacuum tube diodes for use in radar receivers. It couldn’t have happened without the development of the science of chemistry, which occurred in the more than 7 decades after Babbage’s death. Also, consider that many of the early computer designs did not influence each other. The vacuum tube based ENIAC for instance, did not evolve from the Z3. It was independently invented 2 years after it on a different continent. It is as if engineering and technology had reached a certain threshold that made the invention of the computer inevitable.

In 1994 Bill Gates bought the Codex Leicester at auction for $30.8 million, a collection of scientific writings by Leonardo da Vinci. The main topic of the Codex was da Vinci’s studies of the movement of water. With all his mechanical marvels, why didn’t da Vinci invent a computing engine? How might something like that have worked? Relay technology was clearly out the question, or was it? You don’t necessarily need electricity to build relays. If there were a necessity for computation in his day, I think da Vinci would have proposed a computer based on his studies of the movement of water.

Fluid Relay

Consider water flowing through a tube as analogous to electricity flowing through a wire. You can construct a fluid relay using a 3-way value. The valve contains an L-shaped pipe that connects 2 of the 3 valve terminals. To alter the flow, the valve is rotated by 90 degrees. However, in both orientations the L-shaped pipe connects to a common terminal. That common terminal acts like the lever in an electromechanical relay, where the other 2 terminals are analogous to the normally-connected and normally-disconnected terminals. The 3-way value acts as a pivot for a rod. The movement of the rod is constrained by 2 pegs that prevent it from swinging more than 90 degrees. A weight on one end holds the rod in its relaxed position against the upper peg. A bucket hangs from the oppose end of the rod. A faucet above bucket can fill it, eventually overcoming the force exerted by the weight. The faucet acts similar to the coil terminal in a relay. Soon after water starts flowing from it, the valve changes states. As water continues to flow, the bucket simply overflows. The bucket contains a small hole. If the faucet stops supplying water to the bucket, the bucket will quickly drain out and return the fluid relay to its relaxed position.

The fluid relay exhibits the same logical properties as an electromechanical relay. With a few hundred fluid relays, it’s theoretically possible to construct a simple CPU. Imagine a CPU fountain. The fluid relays would be rigged up in a lattice over a pool, collecting the overflow. Water could be supplied by a large tank over the fountain with gravity driving the whole thing. A pump would draw water from the pool and return it to the tank. A separate pumping mechanism could act as the clock.

I challenge someone to construct a scaled down version of the CPU fountain, perhaps something like a 4-bit counter circuit made of fluid relays. If you try built it, you’ll need to take one more thing into account. In an electric circuit, an arbitrary number of components can share the same node. But, fluid in a pipe is constrained by the pipe diameter. This means that every time you fork a pipe, half as much water will reach each output. A simple solution is to combine several 3-way valves together with a common axis in each relay. Meaning, you effectively construct a multi-pole relay (1 coil and multiple levers). The rod will rotate all the valves in parallel. You would never split any of the pipes. Rather, each faucet would be fed by an independent pathway from the tank.

Unlike the parts of Babbage’s Analytical Engine, fluid relays don’t require high precision tooling to construct. It’s very simple technology. In fact, if you’re clever, you don’t even need tubes. Simple channels and funnels can guide the water between the relays. If 3-way values are not readily available, you can use simpler 2-way valves instead. Just attach them in parallel to the rod and orient them such that one opens when the other closes.

It may take up a lot of space, but the technology could potentially make advanced mechanical computation possible, as if we really need that anyway. Konrad Zuse’s first experimental computer, the Z1, was actually a fully mechanical computer which was constructed and was semi-reliable. So, a working CPU fountain wouldn’t be a technological first. Nonetheless, it certainly would be fascinating to watch. It would be modern art.


Updated: September 22, 2007. Copyright 2007 Michael Birken. All rights reserved.