Towards a Better Pythagorean Cup
Fri 4 January 2019
There was an article on Hacker News the other day by David Richeson entitled
Make Your Own Pythagorean Cup.
A Pythagorean cup is a cup with a built-in siphon. Supposedly invented by Pythagoras, the cup functions just
like an ordinary cup as long as it is only filled to a certain level. If anyone gets greedy and tries to take
too much wine, the level rises above the top of the siphon, which causes the siphon to self-start, and the
greedy person is punished by having the entire contents of the cup dumped into their lap.
The TL;DR is that I designed a Pythagorean cup that looks like this:
There are STL download links below.
Wikipedia has a good diagram showing how the Pythagorean cup works:
At the end of his article David included a sketch of an alternative design for a Pythagorean cup,
which hides the siphon in the handle instead of a large protrusion in the centre of the cup:
I thought this was a great idea, so I fired up FreeCAD and had a go at it myself.
While this was printing, “mrfusion” in the Hacker News comments mentioned that he had made a Pythagorean cup before,
and was disappointed that it took a long time to drain. It apparently “wasn’t very impressive to wait 30 seconds while
the water trickled out. Just seems like a leaky cup”.
Indeed, after my mug had finished printing:
I too was disappointed to find that it took a long time to drain.
I measured the drain rate by filling the mug with water to some level slightly above where the siphon starts, with
my finger over the end of the siphon, and then allowing the mug to drain into a measuring jug while I timed how
long it drained for. I stopped timing as soon as the flow became non-continuous (i.e. turned from a flow to a
drip) because the empty siphon tube continues dripping for quite some time after it has stopped flowing. I repeated
this measurement several times because I have a GCSE in science and I’m not afraid to use it.
(you can just about see the water trickling out of the bottom of the mug)
I found that the mug drained 200ml in 90 seconds, for an average of 2.2 ml/sec. Not very impressive. Just seems like a leaky cup.
I observed that the rate at which the water drains out is highest at the start, and slows down as the level drops.
This makes sense. When
the water level is higher, there is more pressure pushing water out. In fact, the
pressure on the water at the top is 0, and rises linearly as you move towards the bottom. This means that the pressure
pushing water out drops linearly as the level drops.
Pascal’s law tells us that “a pressure change at any point in a
confined incompressible fluid is transmitted throughout the fluid such that the same change occurs everywhere”. This means
that, while the pressure inside an open container is linear in the height of water above it, the pressure at the exit of
a siphon is always equal to the pressure at the pickup of the siphon because the water inside the tube is a confined incompressible
The pressure at the bottom (i.e. at the pickup of the siphon) decreases as the depth of the water in the container decreases.
tells us that, all else remaining equal, flow rate is linear in pressure.
So when siphoning out of a container with uniform volume along its height (e.g. a perfect cylinder), we have something like:
(I think it drops exponentially, and cuts off at the point where the level in the cup drops below the top of the
pickup of the siphon).
This informs our first design improvement: we want most of the cup’s volume to be at the top, so that
we get to spend more time at a high flow rate, and we want less of the volume at the bottom, so that we spend less time
at a low flow rate.
The area underneath this chart is the total volume of water drained from the cup (ml/sec * sec = ml). If we reduce the
amount of volume, for a given flow rate, we empty the cup faster. This means that in particular we want to reduce the
diameter at the bottom of the cup, rather than increase it at the top, otherwise the increased flow rate will be cancelled
out by increased volume.
mrfusion suggested using a larger siphon tube to increase the flow rate, but I was initially skeptical of this as
I thought a larger tube would reduce the strength of the effect (it’s easier to suck water up a straw than up
a drainpipe). It turns out this isn’t the case because you also get a larger quantity of water doing
the sucking. According to Bernoulli’s principle, the velocity of the flow would remain unchanged. If the velocity
is the same, and the cross-sectional area is increased, then we flow more millilitres per second. So this is our
second design improvement: we definitely want to increase the diameter of the tube.
“tobr” suggested an alternative way to route the siphon tube which appears superior:
By looping the tube around the handle, instead of up and down just one side of the handle, we can use the entire handle as
a tube and fit a larger tube inside it.
I got back in FreeCAD and modelled a new mug, using what I learnt about fluid mechanics and tobr’s tube routing idea.
Note that the internal diameter at the bottom of the mug is even smaller than it appears from the outside. This
serves the dual purposes of creating space for the tube inside the handle, and reducing the volume of water in the low-flow-rate
region of the mug.
Testing the new mug in the sink, I was delighted to find that it drained much quicker than the first one. I repeated the
measurement with the stopwatch and measuring jug, and found that the new mug drained 150ml in 12 seconds, for an
average flow rate of 12.5 ml/sec. The average flow rate is 5.6x better and the time to drain is 7.5x better.
This picture shows a comparison of the tube sizes:
The cross-sectional area of the tube is increased from about 12mm2 to 56mm2 (4.7x larger). This accounts
for most of the improvement in average flow rate, with the rest of the improvement coming from the reduction in volume at the
bottom of the mug.
I’m pretty much happy with the performance of this mug, but I don’t like how it looks. The handle looks rather contrived, not
nearly as elegant as the one in tobr’s sketch, and I don’t like the tesselation pattern on the surface:
This is because FreeCAD has to convert my nice smooth model of a mug into a mesh of triangles in order to export it for 3d
printing. Fortunately, the quality is adjustable. I solved this by changing the “Maximum deviation depending on the model
in the “Part Design” => “Shape View” settings from 0.1% to 0.01%. This did increase the size of the exported STL file
by a corresponding factor of ~10 (from about 1.4MB to 12MB) but that’s not a problem.
I also smoothed out the sharp edges on the handle.
Since this is only a cosmetic change, this mug still contains 150ml of water and empties in 12 seconds.
It took me about 6h30 to print each one. Make sure to use plenty of solid layers/perimeters so that it’s watertight. A cup
that isn’t watertight isn’t very useful, and a siphon that isn’t airtight won’t even work.
I looked at getting a higher-quality one of these made by ShapeWays but it was going to cost upwards of $80 even in plastic
so I gave it a miss. It would be cool to have
a ceramic one but although they do advertise 3d printed ceramics, I couldn’t find the option for that in ShapeWays.
Possibly this model is too intricate for their ceramics process so they didn’t list it as an option?
It is probably not advisable to use one long-term as it will be pretty impossible to clean the inside of the tube. Also it is
not advisable to serve hot drinks in any type of cup made from PLA.
Mercury in a Pythagorean cup
The Periodic Videos YouTube channel has a video
of mercury in a Pythagorean cup.
Towards the end they show that if some mercury is poured into the bottom of the cup, and then water is poured on top of
the mercury, it is safe to fill the cup all the way to the top. The reason for this is that the mercury is so much more dense
than the water that the weight of the water is not enough to push the mercury to the top of the siphon. It would work with
any 2 immiscible liquids of different densities, as long as you put enough of the heavier liquid in that the lighter liquid
can’t push it to the top of the siphon.
(If you put the water in first, and then top it up with mercury, I think the mercury would sink to the bottom and would push
some water over the top of the siphon, but the weight of the water falling out of the siphon wouldn’t be enough to pull the
mercury out, so either the water would fall out and get replaced with air, or the water would just stay suspended
part-way down the downtube of the siphon, depending on whether the tube is wide enough for the water’s surface tension to hold
it together. I might be wrong.)
Other people’s Pythagorean cups
I found a handful of other Pythagorean cup designs that are shaped like a mug.
This one from 2016 by paulo2345 is designed like the traditional Pythagorean
cup, with the protrusion in the centre, but is otherwise shaped like a mug with a handle:
This one from 2016 by “KIT Trainee Group” hides the siphon in the walls of the mug instead of in the handle:
It might be interesting to make a “Pythagorean sippy cup”. It would flow twice as fast as you get twice as many handles through
which to route the siphon:
Given what we’ve learnt about fluid mechanics, a wine-glass-derived design is not a bad idea as its volume tapers
off quite sharply towards the bottom. I couldn’t find a type of glass that both tapers to a point at the bottom and has
a handle, but if there is one then it would probably be a good candidate. It is not safe to hide the siphon in the walls
of a cup that does not have a handle, as there is a risk that even a non-greedy drinker might hold the cup with the siphon
facing towards himself. As he tilts the cup to drink from it, the siphon would fill up and self-start, and
“I pour hot squash all over myself and we all have a good chuckle. Everyone except muggins here.”
There is also scope to design a puzzle jug that incorporates a
siphon into its mechanism, either as the correct way to remove the liquid, or a trick to dump the liquid into
the puzzler’s lap.
If you like my blog, please consider subscribing to the RSS feed or the mailing list: