I'd like to mimic this effect seen in Half Life: Alyx:
I can't figure out what is going on here, people say "it is just a shader effect it isn't simulating anything", but I don't think that is true at all, it appears to be doing some sort of surface only fluid dynamics, but I'd have no idea what technique is actually used underneath.
My best guess is that
each object has a "origin" plane associated with each bottle that "exists" outside of the bottle and always fixed to some origin relative to the bottle
then waves ala gerstener waves are generated via movement somehow
the surface is raymarched only within bottle geometry
when below the surface additional ray marching is done for bubbles which are generated via potentially 4D noise, or a set number of bubbles are generated then rendered as round sprites or independently of noise
foam is generated based on a uniform value that is passed in that determines the "shakey" ness of the bottle, which makes values closer to the fluid surface more opaque and white.
fluid volumetric opacity doesn't necessarily have to be raymarched, but would likely be with the rest of this stuff being raymarched. Using beers law to attenuate light based on distance and density through fluid.
But I'm really not understanding how the plausibly physically correct surface deformation is happening. How would I do something similar? I've seen some other posts that just have the surface wobble, but if you look in the video, it is more than just surface wobble, there is actual surface deformation.