It is not as complete as @Evgeni_Popovocean simulation (i reused the WebGPU FFT algorithm btw ^^), but I tried to make it as easy as possible to use and integrate in existing projects so maybe someone will find a use for it!
It supports transparency based on depth and environment reflections using a skybox cube map.
I also used tri-planar mapping to make it work on a sphere because everything is more interesting and complicated on a sphere
The only real bottleneck here would be to implement the GPU FFT with only fragment shaders as compute shaders are a WebGPU only feature. Although some people did it in raw WebGL, I am not sure how that would translate to BabylonJS.
The rest of the spectrum calculations can be made with procedural textures instead of compute shaders and it would work just fine.
Here is another WebGL example to find inspiration: