SurfaceJ - 3D surface plotting in Java

SurfaceJ is part of the Bio-medical Imaging in Java site.
Version 1.0. 

From              to         


SurfaceJ is a plugin to create surface plots. Surface plots are color coded 3D renderings of the intensity information in the image,  where the height (on the z-axis) and the color in the rendering correlate with the intensity of a pixel in the image. The colors are chosen from a preset or user-definable color LUT (LookUpTable).

SurfaceJ is based on an idea of Tony Collins, from Babraham Institute in Cambridge, UK,, who wrote a manual for making surface plots using VolumeJ. Since this was pretty complicated, and it was difficult to keep the manual up to date with VJ development, SurfaceJ was split off as a small separate plugin. Paolo Magalhaes, PhD from the University of Padua in Italy helped a lot with the first experimental versions.

Both single images and sequences of images - in an ImageJ stack - can be surface plotted.

The orientation and scaling of the surface plot are adjustable. 

You can smooth (with a Gaussian kernel) before plotting, some images then come out better. To smooth, set the width of the Gaussian kernel to a non-zero value. A good starting value is 1.5. Plotting then becomes slower however. You can also smooth using Erik Meijering’s excellent TransformJ :

The aspect ratio is adjustable: the height of the surface in the plot can be changed by changing the z aspect ratio.

The plot at the top of this page was made with rotation x=-50,y=0,z=0, scale=2.0, and aspect-ratio 1.0, 1.0, 0.2. All other parameters were kept at default. 

SurfaceJ is based on BIJ, an Java medical volume rendering library I wrote originally to study  2-D and 3-D optical flow.

SurfaceJ is free, as are the sources. I would like to co-publish on SurfaceJ. Please contact me if you would like to collaborate on an application, since SurfaceJ by itself is not interesting for a (good) imaging journal. Alternatively you can cite the paper with the work on which SurfaceJ was based:

M.D. Abrāmoff, and M.A. Viergever. Computation and Visualization of Three Dimensional Motion in the Orbit. IEEE Trans Med Imag., 21 (4), 2002.

Michael Abrāmoff, MD, PhD.

I removed most of my personal data for privacy reasons, what remains can be found here.


Unzip the files (obtained as under the Download paragraph above) into the ImageJ directory or folder. In Winzip, check "Use folder names".

Make sure that you end up with a plugins directory containing the VolumeJ, volume and linearalgebra directories or folders (with many .class files), in the ImageJ directory.


1.0 First release. Downloads are still the same as VolumeJ. Isosurface with indexing doesn't work yet. Manual needs a *lot* of improvement.

(c) 1999-2002, Michael Abrāmoff. Last updated 2003/12/