Sample Data Sets

This page features a few interesting sample data sets you could use with your volume renderers.

Data Set Descriptions

Skull CT
This data set of unknown origin is a CT of a human skull, sampled at a resolution of 68 x 256 x 256. Click here for a direct volume rendering or here for an isosurface rendering. This skull doesn't have anything to say, because today it is made entirely of wood. This skull, on the other hand, is made entirely of tin - no, green chrome - no, umm, whatever...
Foot CT
This data set, part of the Visible Human Project, is a CT of a human foot, sampled at a resolution of 183 x 255 x 125. Click here for a direct volume rendering, or click here for a nice dual-isosurface rendering of the skin and bone structure of the foot.
Frog MRI
In case you're sick of seeing the skull CT, you can download the frog MRI done at Lawrence Berkeley Labs. It's sampled at a resolution of 136 x 470 x 500. (This means, the file is about 30 MB - the gzipped version is only 5 MB, though... Happy downloading!)
Small Buckyball
This data set of the electron density inside a C-60 Buckminsterfullerene is a complete fake. I created it by summing up 60 scaled three-dimensional Gauss functions, centered at the theoretical atom positions of a real Buckyball, and sampling the resulting function on a rectilinear grid of resolution 64 x 64 x 64. Click here for a high-quality isosurface rendering, and here for a (preview) direct volume rendering.
Large Buckyball
The same function, but sampled at a resolution of 128 x 128 x 128.

Data Set File Format

The data files for rectilinearly sampled scalar data are written in the following format (all fields big-endian binary):
  1. Resolution (number of grid points in x, y and z direction): three 32-bit int values. Let's refer to them as numX, numY, numZ.
  2. Size of saved border around volume: one 32-bit int value. This value is not used in the provided data sets and is set to zero.
  3. True size (extent in x, y and z direction in some unit of measurement): three 32-bit float values. Treat these fields like a sort of "3D aspect ratio" - usually, medical data sets are sampled as a stack of slices, where the distances between slices is different from the distances between pixels in a slice.
  4. Data values: All numX*numY*numZ data values of the volume stored as unsigned char values in the range [0, 256). The values are stored in x, y, z order, i.e., x varies slowest, z varies fastest. In other words, they are stored in the memory order of a standard C three-dimensional array unsigned char values[numX][numY][numZ].