For full functionality of this site it is necessary to enable JavaScript. Here are the instructions how to enable JavaScript in your web browser.

(Canvas drawing not supported by your browser.)

Horizontal translation:
Change the vertical view angle:

Description:

The pseudosphere is a surface of constant negative curvature. Also shown are three other representations of hyperbolic geometry: the upper half-plane model, the Poincaré disk model and the Klein disk model.

The blue and green lines are geodesics ("straight lines") in the four models. You can drag their end points to move them around (except on the 3D view).

To map the upper half-plane onto the pseudosphere, everything above the red line (y=1) is wrapped around the funnel, like a sheet of paper. The orange lines in each view map onto the single orange line on the pseudosphere. A geodesic that crosses multiple orange lines will therefore wind itself more than once around the pseudosphere.

A geodesic on the pseudosphere is the path an ant would take if it were to walk straight forwards. Remarkably, the complicated paths created always unwrap to form straight lines in the Klein disk model. There's a deep connection here with general relativity, where inertial objects may take complicated paths in space but are actually moving along straight lines in spacetime. See here for a similar web app that visualises how this works.

Implementation details:

The upper half-plane is parameterized by x horizontally in the range [-30, 30] with divisions every pi/6, and y vertically in the range [0, 40] with divisions every 0.5. To map from the upper half-plane to the 3D space of the pseudosphere, we use:

(x, y) → (sech(acosh(y))*cos(x), sech(acosh(y))*sin(x), acosh(y) - tanh(acosh(y)))

To map from the upper half-plane to the Poincaré disk model, we perform a circle inversion using a circle of radius sqrt(2) centered at (0, -1). This maps the entire upper half-plane into the unit circle. The same operation also performs the reverse, to map from the Poincaré disk back to the upper half-plane.

To map between the Poincaré disk and the Klein disk, see e.g. here.

To draw the geodesics, we take advantage of the fact that they are all straight lines in the Klein disk model. We transform the start and end coordinates (parameterized on the upper half-plane) to the Klein disk, then linearly interpolate along the line to make a list of points. Those points can then be transformed into the other models.

The orange lines show how the x direction wraps around the pseudosphere. They are spaced apart by 2*pi so that they all map to the same place on the pseudosphere.

To validate the implementation, it is possible to construct geodesics in a different way. We can simulate the ant walking on the surface, using the surface normal to ensure that the ant is travelling in a straight line. Comparing these geodesics to the other ones should give an exact match, and they should also transform into straight lines on the Klein disk.

Code, more details, feedback: https://github.com/timhutton/PseudosphereGeodesics