ListDensityPlot3D

A GPU-based CUDA Implementation

Markus van Almsick

Technische Universiteit Eindhoven, the Netherlands

Abstract

Up to now, Mathematica lacks a ListDensitPlot3D command that displays 3D data sets via interactive volume rendering. Volume rendering is best known for the visualization of 3D medical data as in computer tomography and magnetic resonance imaging. In these images a transfer function translates all voxel values into corresponding opacity and color values. Then, for each pixel on the screen, a ray is casted through the 3D data set to accumulate all the colors and opacities along its path into an RGBA value. The resulting projection provides a fairly realistic 3D impression of the data with the transfer function controlling the opacity and occlusion of different layers in the data.
 
Our interactive ListDensityPlot3D implementation utilizes CUDA™, a general-purpose parallel computing architecture that leverages the compute engine in NVIDIA graphics processing units (GPUs). These GPUs are installed in a large fraction of today’s laptop and desktop computers and they can solve many complex computational problems in a fraction of the time required on a CPU. The talk will show how to  incorporate CUDA programs via MathLink, thus, extending Mathematica's coarse grain parallel computing capabilities by CUDA's fine grain computing power.