

1·
8 days agoNo sub-step so far, and the 4 ms does not move with a big pour: the step loops over every cell of the 96x96 grid whatever they hold, so a flood costs the same as a dry island.
What keeps a big pour stable at a fixed step (0.05 s of sim per tick):
- The hand pours at a set rate, spread over a disc about 3.5 cells wide, so no single tick drops a tall column on one cell.
- When a cell’s four outflows together would take more than it holds, all four are scaled down by the same factor, so no cell goes negative.
- The pipes are damped, which eats most of the sloshing.
- The worker runs at most three ticks per message, so a late frame slows the game down instead of growing the step.
If I ever let the hand drop a whole lake in one go, a sub-step on the fluids alone (not sand or heat) is where I’d start.

None: plain JavaScript modules, WebGL2 called directly, and the sim in a web worker. No game engine or game library, and no build step; the page loads the files as they are.