Inigo Quilez   ::     ::  
The so called "Pop Corn"" images where created by Cliff Pickover quite some time ago. The idea behind them is to plot the evolution of a dynamical system like

p'(t) = v(p)

where p is a point and v is a stationary velocity field. To make such simulation in a computer, the simplest way is to code some simple Euler integrator which will simulate the derivative with some differences and a small delta time. In two dimensions, that would look like this:

xn+1 = xn + λ·f(x,y)
yn+1 = yn + λ·g(x,y)

where λ is the time step value (it should be something small). Now it's up to you to choose nice formulas for f(p) and g(p). The original Pickover's formulas were trigonometric functions, but you can input anything you like. In my experiments of 1999 I used the original Pickover's formulas. The result made it into the 64 kb demo called rare.

Later in 2006 I made this video where I animated f(p) and g(p) over time. Again, I used trigonometric functions (similar to Pickover's too) cause they produce some nice fluid-like shapes. The video is split in four different parts, with one different formula each. As an example, this is the formula used for the second one>:

f(x,y) = cos( t0 + y + cos(t1+ πx))
g(x,y) = cos( t2 + x + cos(t3+ πy))

The ti parameters are linearly time varying values that produce the actual animation.


Enmpperaltta - a popcorn image (click to enlarge)

Variations - a popcorn video (click to play)

As with the very similar IFS methods, the way to produce the image is to pick a random point, and iterate it with the above formulas. This produces an orbit over the space, ie, the plane in the two dimensional case). One must track the density of each pixel of the plane by counting how many times an iterated point falls in it. After performing some billion iterations, the image should be noise-free enough. Then it's up to you to interpret the density thru some color palette that you like. In my case, what I did instead was to compute the density three times with slightly different parameters, and assign the resulting densities to the red, green and blue channels of the image.

Below this text you can see some of the frames of the video (click to enlarge):