Möbius transformations[1] encode translation, rotation, scaling, and inversions of a plane. For each point on the plane, treat is as a complex number z, then apply f(z) = (a * z + b) / (c * z + d). This gives you a new complex number. The parameters a, b, c, d are all complex numbers, with a * d ≠ b * c.
I’ve seen some shadertoys[2] and youtube videos and wanted to try it myself.
After playing with the four parameters, I can’t say I really have any intuition for what they do. The Wikipedia page has a section about decomposing the transformation into simpler ones; maybe that’s what I should look at.
Try going into the console and typing animate() ! This animation pushes the parameters along sine waves, but I think it’d be more interesting and varied to pick random points and then animate along splines.