Fulldome content creation with Drishti

Compiled by Paul Bourke
January 2010

The following discusses content creation using the Drishti volume visualisation software for fulldome digital environments such as many of today's planetariums and immersive displays such as the iDome. The support for this was first added to Drishti by Ajay Limaye in 2008 and was initially used in this production for the ASTC: Artforms Of Nature: A New Way Of Seeing. In 2009 it was used for the following which played for 6 months at the Horizon planetarium: Volume Visualisation Under The Dome. As with all documentation of this type it can get out of date as new releases of the software appear, the following is based upon version 2 downloaded in January 2010.

What all dome environments have in common is the need for a fisheye image, this is comparison to standard perspective projections employed for displays made of planar sections. In general this is a so called equal-angle fisheye but it may not be limited to a 180 degree field of view, many environments require less than 180 degrees and some require more. Since Drishti is based upon realtime APIs designed to create perspective projections, the most straightforward way of creating fisheye images is to first create 6 cubic maps and then post process those into a fisheye, indeed any projection can be created since the cubic maps capture the whole visual field. The general approach was first discussed here as part of the production pipeline for content for the fulldome show titled Infinity Express, this technique is still being used for those packages that may not have a direct fisheye lens camera option. The software used for the stitching is called cube2fish, this can be made available for MacOS-X and Unix based machines.

Example 1: Cosmology dataset

Dataset: Allan Duffy (University of Western Australia)

Most commonly one would be creating an animation sequence with Drishti, that will be the topic of the example here. It should be noted that a single set of cube maps can be used to create an animation in post processing, for example a simple rotate of the camera. Indeed this can be scripted directly using cube2fish see the "-ht" and "-vt" command line arguments.

cube2fish has a flexible file naming convention consisting of 3 parts. There is the file base name, a single character that describes the particular cube face (f,b,l,r,t,d), and a frame number. cube2fish can handle these in any order, Drishti conforms to this naming convention except by default the letter describing the cube face is always at the start of the filename, this is following by the file base name, followed by the frame number (starting from 1). The format of the frame number can be controlled using the format descriptors supported by Drishti, the example below will consist of 5 digits per number, zero padded. The frames resulting from the following will be "b_cosmo00001.png" (back face), l_cosmo00001.png" (left face), f_cosmo00001.png" (front face), r_cosmo00001.png" (right face), t_cosmo00001.png" (top face), d_cosmo00001.png" (down face), etc.

A representative 6 cube faces from this sequences is given below. Note these are normally supplied as 6 individual files, they are arranged here in the form of an unfolded cube for illustrative purposes only.

From this fisheye images orientated in any direction can be formed. This is important since the "sweet spot" for dome environments can be very different, suitable fisheye images for an iDome, 60 degree tilted dome, and standard planetarium dome are shown below. The sweet spot for the iDome is directly in front of the user and thus the center of the fisheye. The sweet spot for a standard orientated planetarium dome (with directional seating) is usually set to about 30 degrees up from the front horizon.

As an example of how other projections can be created, the following is a full spherical projection using cube2sphere. Such projections can be mapped onto spheres as textures in the normal way, they are often also used for dome environments where the field of view is much more than 180 degrees, in those case it can be more efficient than wider field of view fisheye images. It is also this format that is used for interactive movies in the iDome, for example.

Example 2: Rabbits liver

Dataset: Tim Senden (Australian National University)

Sample fisheye projections.


  • The way shadows are implemented precludes their use. See the shading options to disable shadows.

  • The view as seen in the Drishti window is the "front" face of the cube map images. More precisely, one can make the window size square and enter "setfov 90" to set the field of view.

  • The author recommends cube map images between 1/2 and 3/4 the width of the eventual fisheye image.