Here’s another SPDE sketch. It’s a simple image warping demo that shows how to use the texture mapping feature of Processing. Click and drag over the image to distort it. Try different mouse buttons.
Source code: warp
This is similar to an image warping demo I wrote more than 20 years ago at Stellar when we launched the GS1000. I remember demoing it at one of our first trade shows and Ed Catmull stopped by the booth to talk. This was when Pixar had just gotten spun off from Lucasfilm, way before Toy Story, so he was mostly known for cool software like this image warping algorithm. He watched the demo for a while, and then said to me:
You’re just brute forcing it, aren’t you?
Yes, that’s exactly what this is doing! His algorithms are very elegant. They’re careful to not transform any pixels more than necessary and to walk through memory in an efficient order. We were able to brute force it on the Stellar because we had a ridiculous amount of memory bandwidth for the day.
Of course today the GS1000’s numbers don’t seem very impressive. That’s the way it always goes. As the tide of hardware performance rises, you get to a point where it is possible to solve some interesting problem (e.g. image warping, video decompression, etc.) by carefully using elegant algorithms. Then the tide rises a little more and solving the problem becomes trivial and we all move on to the next problem.