Here’s a P5 shader that pulls a random image from unsplash every 10ish seconds.
It’s using a 3D object of a flat plane with vertices x,y.
It sends this image as a texture to the fragment shader.
The vertices are then displaced based on a noise field which is animated over time.
By not clearing the screen on every draw() loop (aka, not setting the background() color within draw()), we get some really interesting glitches at the edges. Pixel stretching and other artifacts.
And here is another P5 shader using the same noise distortion effects, but rather than pull in an image as texture, it’s using the screen coordinates to color the displaced vertices.