This is a realtime WebGL effect, created in polygonjs, a node-based WebGL editor I’m running.
This example scene shows how to setup raymarched refractions, which is a technique that can produce very pretty results, and can render complex and constantly deforming geometry.
Some explanations on how to modify it in this tweet (and you can see a live link to the scene at the end of that thread, but I’m not yet allowed to post more than 2 links in a post)