This post describes the main steps in the making of a SDSS fly-though I have been developing since some time ago. I started with povray but moved to Blender due to its flexibility, especially with its python api.
Since its first light the SDSS has been continuously taking both images and spectra across the northern sky. The last data release (DR7) contains almost one million galaxies with spectra and many more galaxy images. From the +- million galaxies with measured redshift only a very small fraction has high quality images. This is mainly due to the intrinsic resolution of the telescope and the atmospheric conditions at the time of observation. In order to produce images with the desired quality each galaxy in the spectroscopic sample was matched with a high-res image from a template of galaxies. The matching was done by choosing the closest galaxy in color — concentration-index space. Elliptical galaxies were displayed as quad sprites with a dense bulge and a diffuse 3D halo.
Loading galaxies into Blender
Once all galaxies have been assigned an image from the template the next step is to load the galaxy’s position, size, inclination and image into Blender. The python interface provided by Blender makes this very easy.
Galaxies were binned by their respective templates. The all galaxies were loaded into a single object in Blender. So there are 300 objects each holding several thousand quads for each galaxy. This saves memory since there is no need to store all the possible properties for each galaxy.