Over the weekend, I encountered OECake, a demo application of a 2D physics simulation called the Octave Engine. It models gravity, particle interactions, and momentum, as well as evaporation and condensation of water particles.
So, I made a steam engine.