I am not sure if something like this can help you.
https://playground.babylonjs.com/#H0QHVK#1
It’s basically and image of caustic with some properties “animated”. It has issues (after a while it get’s too stretched, so you probably have to setup some constraints, something like if it goes over some value, start reversing animation or something like that) Or you can animate some other property, maybe even change coordinates mode of the texture or something like that.
With some proper lighting (and volumetric light like on image) it probably can look nice.