As I don’t have easy access to (or enough space to set up) a large hemispherical dome with multiple projectors, I’m building a simulator to view expected output from my auto-alignment and warping tests. The simulator lets you define your dome parameters along with a number of projection sources (with position, orientation and fov parameters adjustable). An HTTP interface allows you to POST images to each projector and the simulator renders the image onto the dome surface (by projecting/intersecting a mesh grid through the projector’s frustum onto the dome surface).

Perspective and fisheye output from the simulator

The fisheye output will be used to simulate a fisheye camera placed underneath the dome. The next step is to start writing the calibration program that will interact with the simulator. The calibration program will calculate the estimated pose of each projector, the required scene modelview matrix and FOV, then the necessary warp to correctly align the image to the dome surface.