Interactive CT Scan (2017)
Tools: Three.js, dat.gui.js
Controls: Scroll to zoom in and out, click and drag to rotate, use the arrow keys to move the model on the xy axis.
A dear friend of mine had recently gone through an accident. When he was showing the CT scans of his spinal implants, I asked him if I could try something with the x-ray images of his innards.
The interactive, 3D model above is a reconstruction from 203 2D CT scans. By the help of this real-time 3D viewer, it becomes trivially easy to understand the 3D structure, identify organs that are otherwise unrecognizable to the untrained eye (like those of a curious patient) and even see the points of fracture in the bones.
The application defines a rectangular prism corresponding to the imaginary stack of CT scans and particles are scattered within this volume. Each particle’s color is the tricubic interpolation of the CT scans’ pixels, relative to the particle’s position. For instance, a particle at (4.5, 100.2, 53.8), would be assigned the weighted mean of the pixels (4,100), (5, 100), (4, 101), (5,101) in the scans #53 and #54. This compensates for the non-uniform resolution caused by the difference between the pixel density and the amount of individual slices.
Although the visualization above uses a processed and compressed input for efficiency, once the data is prepared, it can display any CT scan of arbitrary resolution and layer count.