Payoff from implementing custom rendering in UE5.
Once you get it all set up, everything past that is just HLSL.
The water "particles" are currently simulated on the CPU and uploaded into a buffer for drawing into an intermediate texture.
Eventually the sim will be done in a compute shader -> indirect rendering.
Still lots of things left to add.