In an earlier post, I compared VEX to VOPs through an example of a whirlpool. Since then I have received some great replies and feedback and I have spent some time improving upon the code and look of the VEX whirlpool.
I have changed the onoise formula to onoise((@P + freq) - offset, turb, roughness, atten) * amp; as well as added a new animation ramp. This allowed me to make the animation much smoother as if I were using an animation graph.
To create the whirlpool source I needed to isolate the peaks of the whirlpool. I used the velocity to isolate them by taking the length of it and the fit ranging it. This allowed me to create a threshold value that I further fed into a ramp. In the velocity attribute, I stored the previous noiseMap value and used it in the "normals" vector. I gave the user further controls to direct the simulation and fed the "normals" into the velocity attribute.
I used a fluid source as the whirlpool itself is just deforming points, it was not a good source by itself. The fluid source asset allowed me to create a velocity field and generate particles from a surface volume.
I also used the original base whirlpool as a collider for the pop simulation with an Extrude Volume SOP.
I am attaching a link to the file and whoever can take this further, feel free to message me with the results!