The calculation of the cartograms involves allowing the population to diffuse in the two-dimensional space of the map, carrying the boundaries of the states or counties with it, until it reaches a uniform equilibrium. The diffusion equation is integrated in Fourier space, where it takes a particularly simple form: the initial density function is evaluated on a 4608x3072 lattice, transformed using a two-dimensional fast Fourier transform, convolved with a Gaussian kernel, and then back-transformed to give the diffusion field at an arbitrary later time. I used closed (Neumann) boundary conditions at the edges of the map, meaning that the Fourier transform in this case is a discrete cosine transform.

The diffusion field is then used to calculate the diffusion velocity as a function of position and the velocity integrated over time to give the displacement of the map features. The integration is performed using a fourth-order Runge-Kutta integrator with an adaptive step size and local extrapolation. The entire calculation took about ten minutes for each map on a standard desktop computer running the Fedora Linux operating system. The basic images were created using a specially written rendering program and some artistic refinements were added using Gimp, a free image manipulation program.