This proof-of-concept visualizes a simple “two-tank” water system that behaves like a real setup: water has a stable mean level in each tank, the surface can slosh, and a pump can move water from one tank to the other through a defined plumbing loop.

What you’re looking at

Core mechanics

This simulation intentionally separates two behaviors:

  1. Mean Level (Volume):
    Each tank has a mean water level that represents the actual stored volume.
    Pumping moves volume from Tank A to Tank B. Return flow (if enabled) moves volume back from Tank B to Tank A when Tank B is higher.
  2. Surface Waves (Slosh):
    The water surface is a capped, smoothed wave model layered on top of the mean level.
    It reacts to clicks, drags, and the pump discharge, but it cannot create unrealistic “walls” or cliffs.

Submergence rules (why flow sometimes stops)

This is critical and intentionally enforced:

How to interact

What the controls mean

The controls are tuned to stay “game-stable” and readable:

What this POC proves