A Programming System for the Reconstruction of 2D and 3D Images from Their Projections

Download and Run
Getting Help




jSNARK is a programming system designed to help researchers interested in developing and evaluating reconstruction algorithms. It is the next incarnation of the SNARK programs, the first of which was written by Richard Gordon in 1970. This was followed by SNARK77 and SNARK89 which were written in FORTRAN. They were specifically designed to help with the problem of reconstructing cross-sections of the X-ray absorption coefficient distribution inside the body from X-ray projections. SNARK93 extended this capability to include positron emission tomography, PET (where the problem is that of reconstructing cross-sections of isotope concentrations inside the body from X-ray projections). SNARK05 is an updated version of SNARK93 written in C++.

The latest versions of SNARK are SNARK14 (a programming system written in C++ for the reconstruction of 2D images from 1D projections) and jSNARK. jSNARK includes the following features:
  1. jSNARK is written in Java(TM);
  2. it is object oriented;
  3. it is capable of 2D, 3D, and even 4D reconstructions where the extra dimension is time;
  4. it is extensible making significant use of plug-ins.

The images to the left were produced using jSNARK. The first is a mathematical phantom that resembles a cross section of a skull. It is a slight modification of the head phantom in Fundamentals of Computerized Tomography: Image Reconstruction from Projections, 2nd Edition by G.T. Herman. The second is the projection data from the phantom and the third is a reconstruction from the projection data.

jSNARK was written and is maintained by Stuart Rowland.