HyperRogue
Realistic projections from hyperbolic to Euclidean geometry
Unless I'm missing something, a realistic* projection from hyperbolic space to Euclidean space can be obtained as following:
  • convert 3d hyperbolic object coordinates into 3d polar coordinates, with the observer at the origin
  • reinterpret the hyperbolic polar coordinates as Euclidean polar coordinates (-> flat hyperbolic lines and surfaces that don't contain the origin become curved Euclidean lines and surfaces)
  • optional practical step: convert the polar coordinates into Cartesian coordinates
  • project those Euclidean 3d coordinates onto a Euclidean plane, to simulate how a viewer in the origin would view the scene (parameters like camera direction / orientation, or FoV are relevant)
To simulate binocular vision, simply treat each eye as a different observer. Simulation of light / shadow / reflection etc. should probably occur before the projection is applied.

* with "realistic", I mean the simulation of how an actual observer would perceive hyperbolic space

My questions:
  1. Is there a name for the first part of the projection (hyperbolic space -> Euclidean space)?
  2. Is there a name for the whole projection (hyperbolic space -> Euclidean plane)?
  3. When using this projection for an observer who looks at the closest part of a plane in hyperbolic space, is it the same as displaying that hyperbolic plane with the Klein disk model?
  4. Is there a name for the projection that uses hyperbolic 2d polar coordinates, and simply reinterprets them as Euclidean 2d polar coordinates?
  5. What is the exact relation between a model that uses the projection in the previous question, the Poincaré disk model, and the Gans model? It seems they are similar, but distance from the origin is scaled differently.
Last edited by tricosahedron; Nov 5, 2017 @ 4:03pm
< >
Showing 1-4 of 4 comments
zeno  [developer] Nov 6, 2017 @ 2:13am 
1. 4. This is called azimuthal equidistant projection in https://www.youtube.com/watch?v=xHvAqDuWG2M , and the 2D version is available in HyperRogue in the conformal menu (quite confusingly maybe as it is not conformal, but it did not fit better in any other place).

2. I would just call this perspective -- it does not matter that we are in hyperbolic space. You can also check out the "Hyperbolic VR" (which also supports binocular vision).

3. Yes. HyperRogue actually uses this method for 3D rendering (except the binocular vision) -- we get the Klein model indeed if we look at the hyperbolic plane, but if the floor is actually an equidistant surface, and the camera is placed correctly, we get the Poincaré disk model. Read the help texts for parameters in the 3D mode config to learn more.

5. In the Minkowski Hyperboloic model, point in distance d has coordinates (x,y,z) = (sinh(d), 0, cosh(d)). In Gans model the radial distance from origin of such a point is x, in Klein model it is x/z, in Poincaré it is x/(1+z).
Last edited by zeno; Nov 6, 2017 @ 2:16am
tricosahedron Nov 6, 2017 @ 6:21pm 
Thanks for the reply! :)

I like the azimuthal equidistant projection, it's like an observer of a hyperbolic scene interprets it as a distorted Euclidean scene, and tries to reconstruct the scene in their mind.

I was wondering ... in Euclidean space, a natural perspective projection uses a viewplane, while a fisheye perspective[mathworld.wolfram.com] that distorts the view projects the scene onto the surface of a hemisphere, and from there onto the underlying circle. What would be natural in hyperbolic space?

I had "Hyperbolic VR" in mind when I wrote this thread, glad to read they are basically using the same method. Iirc. they are using a higher-dimensional variant of the Minkowski Hyperboloid model.

I'll try to make sense of the distance values in the Klein / Poincaré / Gans model, I think Fulgur14 may have explained them before.
Last edited by tricosahedron; Nov 6, 2017 @ 6:22pm
zeno  [developer] Nov 7, 2017 @ 9:42am 
The reason why the viewplane perspective projection is natural is that our pictures (screens, paintings, etc.) are in the form of a plane, therefore we see exactly the same image when looking at the picture as when using at the real scene (assuming that eye is at the same point as the "camera" used for the projection). If we used, say, a hemispherical screen, it would be natural to project onto it.

Therefore for human uses I think that projecting on a plane is natural. For creatures living in the hyperbolic plane, we would have to ask what surface are they using for their screens -- I think they would be using planes too.
tricosahedron Nov 8, 2017 @ 4:56am 
Originally posted by zeno:
For creatures living in the hyperbolic plane, we would have to ask what surface are they using for their screens -- I think they would be using planes too.
That's an interesting question.

If they're living on an earth-like planet, then the planet-surface would be close to horospherical, and it would make sense to have tables and floors with a near-horospherical surface, unless they want objects to be pulled to the center of a flat table or floor. And if objects with a horospherical surface are common, they might have horospherical screens (curved towards the viewer) as well, if the viewer is expected to be at a certain minimum distance, and within a certain viewing field.

So I wouldn't be surprised if anything between flat and horospherical is common, depending on the application. It would be interesting to see a comparison between a perspective projection that uses a flat and a horospherical view-"plane"; I wonder if using one of those and modifying the FoV parameter could look similar to the other(?).
Last edited by tricosahedron; Nov 8, 2017 @ 4:57am
< >
Showing 1-4 of 4 comments
Per page: 1530 50