Each pixel has a value between 0 and 1. At each iteration, each pixel's value is replaced by a value given by a function of the values of the 8 adjacent pixels, sorted so that the result is non-directional.
Another, but higher resolution, quasi-cellular automata video.
Each pixel has a value between 0 and 1. At each iteration, each pixel's value is replaced by a value given by a linear function of the values of the 24 adjacent and next-adjacent pixels, sorted so that the result is non-directional. With 24 coefficients, there are a lot of possible results; this is one that appeared to be of some interest.
The coefficients of this linear function are given by -0.1+0.012*i, i going from 0 to 23.
I took my clip and split it into 384 frames (I changed from 30 fps to 24 fps), then used imageMagick to simplify each frame (edge-finding, etc.) then printed them all out three to a page. I then used tracing paper and drew a new version of each frame. Then, I scanned all the pages and cut them back into 384 frames. Very tiring process.
I made a similar animation over ten years ago, and have been looking for a nice way to do this since. I finally worked out how to add a java library to Processing (processing.org) which did the trick, making it really easy to experiment with this.
The idea is to take a square matrix and plot its eigenvalues (as points in the complex plane). Then vary one entry of the matrix (in this case, back and forth over a range of values), and plot the eigenvalues as this entry changes. Some of the results are quite visually interesting.
The ij-th entry of the matrix is M[i][j]=sin(cos(j)+j*cos(i+cos(2*j))).