Here’s a neat feature I found out just recently and decided to try it out real quick:
Here’s the node setup:
The key is inputting the color of the procedural texture into the vector input of another texture. That will warp it accordingly. I find it strange that it works that way. I wonder if it takes color input differently than just “RGB->XYZ”?