https://www.youtube.com/watch?v=pfonMfP__Ks
In open source field there is Mantaflow that available in Blender, but it's of course not solution for real-time.