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

Every black point is mapped onto a blue point (and vice versa) by stereographic projection with center C and radius R. Your mouse controls the curvature, from negative to positive.

When the squared radius is positive this is the familiar circle inversion from C.

When the squared radius is negative this means that the radius is imaginary. We need a different metric signature (+,-) for this to work. Details of this are below. Now the stereographic projection takes us to and from a hyperbola. This is one way of seeing that the hyperbola is actually a circle of imaginary radius.

(Canvas drawing not supported by your browser.)

Stereographic projection of a point p, with respect to a center C and radius R:

s( p, C, R ) = C + ( p - C ) * R^2 / dist2( p, C )

where dist2( ) gives the squared distance between two points:

In the Euclidean plane, with metric signature (+,+):

dist2( a, b ) = ( a.x - b.x )^2 + ( a.y - b.y )^2

For the hyperbola projection, with metric signature (+,-):

dist2( a, b ) = ( a.x - b.x )^2 - ( a.y - b.y )^2

In general we specify the metric tensor as e.g. [ m1, m2, m3 ] = [ 1, 1, -1 ] for ( +, +, - ) and the generalized squared-distance function becomes (in three dimensions):

dist2( a, b ) = m1 * ( a.x - b.x )^2 + m2 * ( a.y - b.y )^2 + m3 * ( a.z - b.z )^2

We make use of this generalized stereographic projection when it comes to tiling the hyperbolic and spherical planes, which have negative and positive curvature respectively. A demo of that in 1D shows the construction here.

For more demonstrations, see the hyperplay page: https://github.com/timhutton/hyperplay.