I made this a few years ago and keep meaning to get back to it and make some more complex circuits, but haven't gotten around to it. The principle behind it is that a siphon behaves like a toggle flip-flop - put in one unit volume and it becomes half full, put in another unit volume and it overflows and becomes empty again. A system with this behaviour can be configured to behave like an AND gate or an OR gate depending on its initial state. Initially empty it behaves like an AND gate. Initially half full it behaves like an OR gate. With an AND and OR gate you can implement any logic function by using a dual-rail representation for Boolean values. It turns out that dual rail circuits made from siphons have a resetability property, where after evaluating a function they can be returned to the initial state by applying the inverse of all of the inputs.