Kinda simple just makes a grid with “voxels” or just lots of glass parts and then calculates the new height of each voxel by averaging the height of the neighbor voxels and applying damping and surface tension forces to simulate water movement, it determines the force of for example jumping in to it from 5 studs up vs 100 by the object’s position, size, and velocity