One of things I want to tackle that Powder Game never accurately simulated is hydrostatic pressure of liquids. For instance, in the picture below on the *left*: if you make a U-shaped tube with water on one side it will just flow sideways and the two sides of the U-tube don't level out. The water on both sides of the U-tube should level out like on the *right*. Dwarf Fortress does this correctly.
![](https://www.byond.com/members/EGUY/files/2024-04/EGUY-0001/hydrostatic2.png)
I'm stuck on trying to figure out a low-resource approach for getting the two liquid levels to balance out using the cellular automata approach that drives a Powder Game.
My first attempt was trying to iterate through all water particles, group them into lists of neighboring water particles (to isolate individual bodies of water), and then iterating through each body of water's particles' positions versus center of mass to determine which water particles should be forced upward. It worked okay but was resource intensive and not very robust for cases like when different bodies of water suddenly connected or were split apart.
Again, just a thought after a quick read-through. Hope it helps maybe get the juices flowing.