I just found A Universal Model for Hyperbolic, Euclidean and Spherical Geometries, after reading the HyperRogue game dev notes where it said the hyperboloid model (aka the Minkowski model) was the best general representation to transform between different projections in the hyperbolic space (i.e. to render in the different hyperbolic models). The first link talks about gyrovectors and mobius transforms, the other doesn't. I have a book coming on gyrovectors, I don't know much about them yet.
What I'm wondering is what should be the general model for a programming framework to render in the 3 geometries (spherical, euclidean, hyperbolic), and all of the hyperbolic models. Should I be focusing on the hyperboloid model limited to the hyperbolic space, or is this new universal model something which could serve as a simplified central standard programming model to render in all the model of all 3 spaces? Or is there something else?
Maybe the name "hyperboloid model" is limited to the hyperbolic space, but the computations are not. In HyperRogue, a common implementation is used, which resolves to the hyperboloid model for hyperbolic space, sphere model for spherical space, and homogeneous coordinates for the Euclidean space. You generally simply have to:
The writeup (already linked in our dev notes) could be helpful.
This also generalizes the standard techniques used for 3D graphics (homogeneous coordinates for points, rotations and translations represented as matrices). I am not sure whether this universal model has a standard name, let's call it the universal homogeneous model.
As far as I can tell, the "universal model" paper gives only one advantage of the universal stereographic approach over the universal homogeneous model, that is, being more intuitive. Maybe it is more intuitive for some people, but I disagree with this. More specifically:
Some other important points: