Visualizing Hyperbolic Isometries
03 Aug 2020 - Tags: sage , pretty-pictures
Welcome to the inaugural post of this blog! As a quick preface, I plan to post about math, particularly math that I’m struggling with, and hopefully we can work through some stuff together ^_^.
I’ve noticed there can be a lack of examples for certain topics, and I hope to use this blog in part to catalogue some examples that I struggled to find elsewhere.
I also spend a lot of time thinking about math, and sometimes I have thoughts that I’m particularly excited about. Some of the posts here will be about those. These posts might be about research, classwork, or general observations that I want to make sure I write somewhere.
Whenever possible, I’ll try to include sage code with computational examples of whatever we’re discussing. I think sage is a fantastic resource for learning and doing mathematics, but I haven’t seen many people talking about how they actually use it in the wild. One notable example is sheaves.github.io, which is a (tragically inactive) blog that gave me the idea to put sage code in my own blog. I’m far from a sage expert, but hopefully we can learn together.
Lastly, this post is being written before the design of this website is complete. I’m able to do that because I know the phenomenal Remy Davison will make this site look great by the time you’re reading this. I’m super grateful for both his friendship and his Design Skills. Ok - onto the math.
Let’s say you’re working with Möbius Transformations and you want to “understand what they do”. Getting visual intuition for what’s happening seems like a great place to start! You know that they act nicely (i.e. by isometries) on the hyperbolic plane, but you want to actually see the action of a particular transformation $M$. Some cursory googling shows you’re out of luck (or maybe in the future, some cursory googling led you here…) unless you’re willing to write up a visualizer yourself.
This is the situation I found myself in, and it seems like a perfect place to start off this blog. Möbius Transformations provide a wealth of examples in hyperbolic geometry and complex analysis, and I think there should be a place to just play with them. Moreover, writing the code to actually do that isn’t particularly hard, so it lets us ease into the world of sage. We’ll start off easy:
This cell is simple. It draws the geodesics from integer points on the boundary to infinity (these are the vertical lines). It also draws geodesics connecting adjacent integers. If you modify the matrix to $M$, it will show where these geodesics map to under $M$ instead. This is a coarse visualization that lets you see where things start and end… But can we do better?
One way to make this better would be to actually animate the transformation. The idea here will be to interpolate between the identity transformation and $M$, and display some number of transformations from this interpolation. Then we can package all these images into a gif, and watch the transformation unfold!
As a fun mathematical aside, this works because the space of hyperbolic isometries, $\mathsf{PSL}_2 (\mathbb{R})$, is connected, and its action on the upper half plane is continuous in the choice of transformation. Actually performing a transformation $M$ corresponds to moving along some path from the identity to $M$. This is why we can’t perform a reflection in $\mathbb{R}^3$, even though it’s a perfectly good symmetry. Reflecting through a plane and the identity lie in different path components, so there’s no continuous way to realize the transformation!
Ok, let’s actually implement this:
The reason I started working on these visualizations is because I was playing with fundamental domains of Fuchsian Groups. Often you want to know how the fundamental domain gets moved around by various transformations. Additionally, there might be some points of interest whose motion you want to follow. This is the most taxing graphic of them all, but let’s add a shaded region and marked points!