Non-Euclidean Virtual Reality IV: Sol

02/02/2020 ∙ by Rémi Coulon, et al. ∙ Georgia Institute of Technology Stanford University 0

This article presents virtual reality software designed to explore the Sol geometry. The simulation is available on



There are no comments yet.


page 1

page 3

page 4

page 5

page 6

This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.

Sol Geometry

Definition and metric.

There are various ways to describe Sol geometry. It can be seen as a Lie group whose underlying space is with the group law given by

The identity element is the point which we choose as the origin of the space. Algebraically it is an extension of by , and is therefore a solvable group, hence the name of the geometry. The space

is endowed with a riemannian metric. The metric tensor at an arbitrary point

is given by

[10, Section 1.7]

With this metric, the action of on itself is an action by isometries. In contrast to other geometries for which the underlying space is a group, has only finitely many more symmetries. These corresponds to the stabilizer of the origin; it acts by the rotations/reflections preserving the union of the axes.

Geodesic flow.

In order to compute the trajectory of the light rays in Sol, we need a parametrization of its geodesics. Using standard tools of riemannian geometry, one can prove that any curve is a geodesic if and only if satisfies the following differential equations

This system can be explicitly solved using Jacobi’s elliptic functions and Jacobi’s zeta function [10]. Nevertheless the explicit formulas are not particularly enlightening. Instead, in the next sections we explore a few interesting features of the Sol geometry.

Figure 2: Geodesics (for the Sol metric) starting at the origin in the model.

Shape of the Spheres.

Spheres in Sol are quite surprising [2]. To interpret their shapes one needs to keep the following observation in mind. Let be a point in , with and a geodesic from the origin to . Assume that one wants to extend the path to move further away from . Increasing the -coordinate by will move us by a distance of (in the Sol metric). On the other hand, increasing by the -coordinate will move us by a much larger distance, namely . Hence the upper part of the sphere (for ) has a tendency to stretch along the -axis, see Figure 3. The spheres exhibit the -symmetry (where is the dihedral group of order and the stabilizer of the origin). Hence the lower part of the sphere is stretched along the -axis.

Figure 3: 3D printed models of geodesic spheres in Sol. These models were a helpful tool to interpret the simulations described below. Photo: © Edmund Harris

Exploration through Virtual Reality

So far, we have reviewed the geometry of Sol extrinsically, e.g. by referencing a model . We now explain what an observer living in a “Sol world” would see (the intrinsic point of view). To see in , we imagine our retina (or camera) as a small screen in space, and the image we see on the screen is given by tracing out along geodesics into the world, until they hit an object.

Hyperbolic foliation and horizontal planes.

The Sol geometry has several remarkable two-dimensional subspaces. Given , the planes and are totally geodesic subspaces of Sol, which are isometric to the standard hyperbolic plane . On the other hand, each plane is endowed with a distorted euclidean metric whose unit circle is an ellipse. However it is not totally geodesic. More precisely, the only geodesics contained in the plane are and . This leads to some puzzling features.

Imagine that an observer stands in a hot-air balloon looking straight downwards (along the -axis) at the ground (the -plane). As the balloon rises up, the plane appears as though it is “rolled into a tube” instead of extending infinitely far in all directions. See Figure 4 (in the simulation, the plane has been tiled by small circles to give a sense of scale).

Figure 4: Walking away from the -plane in along the -axis at varying distances (Video Link).

Recall that as we are tracing our lines of sight along geodesics, black points in the image correspond to directions for which the associated geodesics never reach the -plane! Figure 5 shows a cluster of geodesics starting above the

-plane. Their tangent vectors all point downwards close to the

-axis. Some of them, make a “u-turn” and head away in the other direction. Those rays correspond to the dark area in the intrinsic view.

Figure 5: A cluster of geodesics whose tangent vectors at time have negative dot product with . Green rays hit the plane, red rays do not.

Another curious feature appears if the observer, still located above the -plane, looks through the holes of the circular tilling of the -plane. It seems that there is something behind the plane, see Figure 6. Indeed, as shown on Figure 5, some of the geodesic rays pointing downwards first hit the -plane, make a “u-turn”, then hit the -plane again. Thus, the light gray balls pictured in Figure 6 correspond to the back side of the -plane. Imagine now that that the observer flies downwards through the -plane. If their -coordinate becomes negative, i.e. if the -plane is behind them, they will see the back side of the -plane in front of them! See Figure 6. This is caused again by the tendency of some geodesics to make a “u-turn”.

Figure 6: Walking forward through a plane in Sol. (a) About to pass through the plane. (b) Passing through the plane, the backside is visible through the hole. (c) After passing through, the backside of the plane still appears ”in front”. (Video Link)

For more confusing pictures, imagine that the observer stands at the origin “sandwiched” between two planes and . The foreground plane appears as a rolled up tube, while the plane behind takes up a large fraction of the observer’s forward-looking field of view, as per above. Moving around between these planes offers a variety of interesting perspectives, see Figure 7. In particular, when oriented the correct way the foreground plane may obscure the ‘vanishing line’ of the background plane, giving the illusion that it is actually toroidal in shape.

Figure 7: Confusing views when sandwiched between two planes in Sol. (a) Plane behind your head is visible in front of you, per above. (b) Drawing both the plane behind you and the plane ahead of you. (c) A new perspective on the two planes. (Video Link)

Inside Compact Sol Manifolds

The Lie group admits several uniform lattices. A uniform lattice is a discrete subgroup whose corresponding quotient is compact. An example of such a lattice is the subgroup generated by

Figure 8: The effect of an Anosov map on the torus.

The corresponding manifold is an example of one of the building blocks arising in Thurston’s geometrization. It has another interpretation, as follows. Consider the matrix


The action of on preserves the integer points, i.e. . Hence induces a homemorphism of the two-dimensional torus (more precisely an Anosov homemorphism) see Figure 8. The mapping torus of by , denoted by , is the quotient of by the equivalence relation which identifies each point with . We claim that can be endowed with a riemannian metric so that and are isometric.

Figure 9: A lattice in Sol. (a) Looking in the direction (mapping torus direction). (b) Looking in direction of axis in Sol, and (c) the direction . (Video Link)

Let us give a glimpse of this identification. The action of on

stretches/compresses the plane in the direction of its eigenvectors. Identifying these with the

- and -axes in Sol shows the tori to be the quotients of horizontal planes by the translations below


These translations correspond to the elements and given above. By construction, the matrix is diagonal in the coordinates. Hence the map sends to which corresponds to the action of .

We may use our technique - rendering images by tracing light rays outward from each pixel along geodesics - to visualize the interior of . Nevertheless, since is compact, any light ray “wraps around” the space many times. Consequently an inhabitant of could see infinitely many copies of the same object. Figure 9 shows several inner views of , which we populated with a single ball. Equivalently, it can be understood as a view of Sol where we positioned a ball at every lattice point , for .

Figure 10 shows another point of view of the lattice . We join by a “pillar/beam” any two points , in such that for some . These pillars stake out a fundamental domain of the action of on and its translates. Alternatively the picture can be interpreted as follows. Let be the image in of the origin of . The lattice is also the fundamental group of the quotient . In particular each is represented by a simple closed curve based at . Figure 10 shows what an observer living in sees if we thicken the curves into tubes.

Figure 10: Inside the Sol manifold with fundamental group drawn above. (a) Looking in the direction. (b) Looking in direction of axis in Sol, and (c) the direction . (Video Link)

Implementation Details

We built our virtual reality Sol-simulator by adapting the technique of ray-marching to non-euclidean homogeneous spaces. This differs from previous work of the authors [5, 6] which compute intrinsic views by pulling objects back to the tangent space via partial inverses of the riemannian exponential map. Such a method cannot easily be applied for Sol, as the exponential map is far from being one-to-one. In contrast, ray-marching, much like ray-tracing, works by flowing outwards from the screen along geodesics into the scene, and upon intersecting an object computing the color of the relevant pixel using material properties of that object, and the location / direction of light sources. The precise implementation details are the subject of a forthcoming paper, and the code (currently a work in progress) is available on GitHub [3]. Other simulations of Sol geometry include the work of Berger [1], ZenoRogue [7] (both inverse-exponential and ray-tracing implementations) and MagmaMcFry [8] (ray-marching).

Producing a fixed image.

Imagine that the observer stays at a fixed position in Sol without moving or rotating. In order to compute the image she would see, we require a few geometric ingredients: a means of computing the geodesic flow in , and a signed distance function measuring the distance in from each point to the nearest object in the scene (this tells us how far we can safely flow along a geodesic without hitting an object). As mentioned above, the geodesic flow in Sol can be solved explicitly using Jacobi’s elliptic/zeta functions [10]. Note that since Sol has no continuous symmetries fixing the origin , it is not possible to reduce the dimension of the problem.

Distance functions are extremely difficult to compute explicitly in Sol. This comes from the fact that many geodesics do not globally minimize distance. Moreover the form of the geodesic flow is complicated. Nevertheless, the distance function to a plane is rather easy: as the vertical geodesics are minimizing, the signed distance from the point to the -plane is simply the coordinate. This allows us to accurately render planes of this form in Sol. Other objects are rendered using a “fake distance function” which approximates the true distance.

Moving in the Space.

Imagine now that the observer wants to walk and explore the space around her. In order to render the image she would see, we need a way to compute her position and facing. We decided that a straight displacement (if the user holds down the forward key) should move the observer along the geodesic whose tangent vector is given by the direction she is looking, while her orientation around the geodesic is updated using parallel transport. In contrast to isotropic spaces (such as the euclidean space) there is no -parameter group of isometries realizing both displacement and the parallel transport.

In our software, we encode the displacement using elements of Sol (recall that Sol acts freely transitively on itself by isometries). As for the parallel transport operator, we use an idea explored by Grayson [4]. Let be a geodesic starting at the origin . The parallel transport from to along is an isometry . To avoid any confusion we denote by the element of Sol (seen as an isometry of ) sending the origin to . This can be used to pull back the parallel transport to the tangent space at the origin. More precisely we focus on the operator of defined by . Identifying with , the operator is a matrix in satisfying

where is defined by . In practice, all computations here are made with the Runge-Kutta method.

Quotient Manifolds.

To ray-march in the Sol manifold depicted above, we identify with a fundamental domain for the action of on . We defined an algorithm, so that every time a light ray escapes it is “teleported” back into using an element of . In this way the orbits of our flow in map to geodesics in . In the extrinsic model of Sol, the fundamental domain has the form , where is a fundamental domain for the action of the translations and on , see Equation (2). The “teleportation” works as follows. Assume that the point does not belong to . Translating by a suitable power of we can make sure that belongs . Then, in either order (as they commute) we iteratively apply and (which do not affect ) until the point has been brought back into .

Summary and Future Work

In summary, this project has produced a real-time, intrinsic and geometrically correct rendering engine for Sol geometry and its compact quotients, that has the ability to take movement input from either a keyboard or headset, and has the ability to render images from two viewpoints simultaneously (for stereoscopic vision). However, this is still very much a work in progress. The list of features still under development include

  1. a good approximation of the distance function to a point, for intrinsic rendering of geodesic spheres,

  2. tracking down and cleaning up the sources of noise in the numerical approximation to Jacobi functions required for the geodesic flow,

  3. computational speedup to allow real-time rendering in high-definition, and

  4. given two points , a procedure for calculating the tangent vectors at which correspond to geodesics reaching (for accurate lighting considerations).


This material is based upon work supported by the National Science Foundation under Grant No. DMS-1439786 while the authors were in residence at the ICERM in Providence, RI, during the semester program Illustrating Mathematics. We are thankful to Brian Day in getting things synched up with the virtual reality headsets. We are additionally grateful to many others at ICERM for interesting conversations about Sol geometry, including Rich Schwartz, Matei Coiculescu and Jason Manning. The first author acknowledges support from the Agence Nationale de la Recherche under Grant Dagger ANR-16-CE40-0006-01 as well as the Centre Henri Lebesgue ANR-11-LABX-0020-01. The second author is grateful to support from the National Science Foundation DMR-1847172. The third author was supported in part by National Science Foundation grant DMS-1708239. This project is indebted to a long history of previous work. It is a direct descendant of the hyperbolic ray-marching program created by Nelson, Segerman, and Woodard [9], which itself was inspired by previous work in and by Hart, Hawksley, Matsumoto, and Segerman [5, 6], all of which aim to expand upon the excellent work of Weeks in Curved Spaces [11].