S p h e m i r

Dome projection on a budget, also known as MirrorDome

Written by Paul Bourke
October 2003, updated December 2004

The following illustrates a method of projecting onto a dome without the need for a full fisheye lens which are both rare and, those that do exist, only fit to a narrow range of projectors. The approach here uses a mirror to reflect images from the projector onto most of the dome surface.

Projecting a 4:3 image of a grid (below left) is shown below on the right. This is an optical simulation (dimensionally correct) given a particular dome and mirror configuration, and using a real projector specification.

Projected grid

Image on dome
Click for higher resolution

Geometric correction

To create an undistorted image on a dome using this mirrored system, the projected image needs to be pre-distorted. The distortion required can be derived from the geometry, an example of this is shown below on the left and the projection onto the dome on the right. As can be seen the image on the dome looks correct, the red are lines of longitude and latitude.

Pre-distorted polar sphere

Image on dome
Click for higher resolution

As with most dome image creation, one either renders a cubic environment (perspective projection to 5 sides of a cube) and then resamples onto an angular fisheye image, or if the rendering software supports it the fisheye image is rendered directly. The model used to create the image above is simply a sphere made up from a grid of lines of longitude (every 30 degrees) and latitude (every 20 degrees). The cubic texture and spherical map are shown below, the distorted image above can be derived from either of these two representations. This is the obvious candidate for a test pattern because one knows the pole should be in the top/center of the dome and the lines of longitude and latitude should be straight, assuming the observer is located in the center of the hemisphere.

Cubic environment

Fisheye image

Brightness correction

There is a variation in the light path to different parts of the dome, this would normally result in an uneven brightness across the dome (brighter the shorter the light path). This is straightforward to correct for, see the brightness function below on the left and corrected image on the right.

Intensity map based on path length

Final intensity corrected polar sphere


  • The one form of distortion that can't be corrected for is the variable light paths and the need for variable focus across the mirror. It is expected that the front/center of the image will be used as the region of sharpest focus. In practice this isn't a problem if a projector and lens combination is chosen with a good depth of focus.

  • This exercise simply uses a spherical mirror, other shapes are equally valid. One might even design a special shape that minimises the unprojected areas shown on the dome in this example.

  • The relative size of the spherical mirror in the drawings above is arbitrary and chosen for ease of illustration. The projector and mirror system can be simply scaled down together. Of course, smaller mirrors need to be of higher quality as does the projector optics.

  • There is no reason why the required distortion can't be supported by OpenGL based interactive applications, this is simply a modified set of texture coordinates on any existing interactive dome application.

  • An alternative for ray traced rendering is to place an identical virtual mirror in the scene and arrange the virtual camera in the same relative position as the projector. This will capture the desired distorted image in one process. The only problems with this approach is to ensure the mirror is not captured by other reflective surfaces in the scene and to ensure the camera doesn't pass through objects.

Further example

Pre-distorted polar sphere

Image on dome
Click for higher resolution

There are three ways of deriving the transformations required and shown on this page. One can derive the mapping analytically, while this may be possible for idealised arrangements, for other more real world situations it can be cumbersome. A second way is to develop an application that allows the mappings to be created interactively, by moving vertices and (u,v) coordinates of a mapping mesh until the correct mapping is achieved. The third way and the one used here is to simulate the projection environment. Trace rays from the projector through each pixel in the image, reflect the ray off the mirror and onto the dome, once the position on the dome is known the mapping for the pixel in question can be calculated.

Full dome and other configurations

In the examples above the full dome is not illuminated, this is intentional and is similar to most fisheye projection solutions which project onto 3/4 of the dome surface. A dual projector arrangement with a single edge blend across the center is the simplest way to get complete dome coverage. There are many alternative arrangements, the following is one possible configuration for full dome using a central mirror. Similar arrangements for full domes can be achieved with the mirrors near the rims of the dome as before.

Advantages over fisheye projection

  • Cost.

  • One is not limited to particular projectors for which fisheye lens can be fitted. Existing projectors can be used or a projector chosen for particular attributes such as brightness, resolution, or contrast.

  • There is much less light loss than a fisheye lens, so almost the total projector brightness is being used.

  • The center of the dome is freed up for the audience, this is particularly important for smaller domes. The center of the dome is usually the ideal viewing position.

  • This mirror approach can be scaled to 2,3 or 4 projectors with the corresponding improvement in resolution.

  • A common problem with fisheye lens is chromatic distortion at the rim of the fisheye, no such chromatic distortion occurs with a good quality mirror.

Example 1 - Planetarium dome

The first real tests of these ideas were conducted at the Wollongong (Australia) Science Centre using a very basic rig as shown below (Laptop, data projector, and 1/4 sphere security/safety mirror). Software was developed that computes the warping texture map from a simulation of the projector/mirror/dome arrangement. Software to view stills and animations plays fisheye movies and warps them in real time.

Single fisheye frame within warping software.
Warped image to be projected.

Test gear: laptop, projector, mirror.
Test pattern: polar grid.

Image on the dome.

Please note that while the two pictures in the dome (top right) appear to be distorted (eg: curved columns) that is because the images were taken down the corridor leading into the planetarium. From within the planetarium the images appear undistorted.

Example 2 - Starlab dome

Inflated dome
Mac OS-X operating system, full dome!

Polar grid test pattern
Polar grid test pattern

Example 3 - Upright domes

Example 4 - Tilted domes

The following is a demonstration of how the full dome projection might work in a 45 degree tilted dome. Note that the warping is dependent on the projector being used, the simulations shown here are based upon a 4:3 SXGA+ resolution projector, namely the DELL 5100MP.

If you were to place a spherical mirror and projector as shown (not drawn to scale) and project a regular grid (left) then the result on the dome would be as shown on the center and right. Click to enlarge images. These are derived by my ray casting simulation software that also calculates the warping specification.

Projected image

Simulated result, perspective

Simulated result, side orthographic

Consider a polar grid (left) and the warped polar grid below (center), when projected into the dome the correctly mapped image is achieved, namely lines of latitude and longitude.

Input fisheye image

Warped image that is projected

Simulated result

A real example, a single frame from "Moonlight" by Andrew Quinn. To create a warped movie one simply applies the warping to each frame of the movie.

Input fisheye image

Warped image that is projected

Simulated result

Example 5: Full dome projection using two projectors and two spherical mirrors

The following illustrates how to achieve full dome projection using two projectors and two quarter hemisphere mirrors. While the mirrors can be located on the rim of the dome, here they are located in the center so the projected images are not blocked by a star projector located in the center. It should be noted that 3 and 4 projector/mirror configurations are equally possible with the corresponding improvements in resolution. The two projector configuration shown here has the benefit of simplicity from the point of view of only requiring a single computer with a dual display graphics card for movie playback and interactive applications.

The input imagery for a dome system is usually a fisheye image, an example is shown below (Royal Exhibition Building model, Melbourne, Australia) and it will be used for the subsequent examples. The approach proposed here warps the image (movie frames) in real-time, relatively straightforward with todays graphics cards. The only trick is determining the warping function which is implemented using an OpenGL mesh with special texture coordinates, the fisheye images are applied as textures to this mesh.

Input fisheye image or frame from a digital movie.

The following two images are created by applying the fisheye image above to a mesh with the appropriate texture coordinates, one for each projector. The texture coordinates for the mesh are derived by accurately modelling the dome, mirrors, and projectors. Rays are forward traced from the projectors, through the mesh nodes, off the mirrors and onto the dome. Once the position of a mesh node on the dome is known, the texture coordinates for the mesh node can be calculated.

Image for first projector.

Image for second projector.

The following are screen shots from the software that models the geometry of the environment and traces rays from the projector onto the dome. The zoomed in image on the right shows the projector frustum, the image projected onto the mirror surfaces, and the result on the dome. In the image on the bottom right the virtual camera is close to the center of the dome so there is no distortion of the image on the dome, eg: the handrail is straight.

External view.

Camera inside the dome.

Closeup showing mirrors
and projection frustum.

A single edge blend is required across the axis perpendicular to the projector axis. The two projected images are created so they overlap and a smooth intensity ramp (gamma corrected) is applied across the overlap region so that the perceived brightness add together correctly to give a seamless effect.

Image for one projector showing edge blending.

Edge blended image on dome.


  • The above is based upon 16:9 projectors, the most suitable for this application. For three and four projector/mirror configurations 4:3 aspect ratio projectors may be more appropriate.

  • The pixel efficiency is about 70%, that is, 70 percent of the pixels available are projected onto the dome. For standard consumer 1280x720 projectors this is about 1.3Mpixels.

  • While interactive and movie content can be warped in real time using customised software, it is equally possible to predistort movies using the derived warping function. This would allow movie playback with any standard player that can play movies full screen across dual displays, eg: QuickTime Pro.

  • For unidirectional domes (forward facing seats) where full dome projection may not be necessary, a single projector/mirror may be appropriate.