SmoothLife in Processing

Conway’s Game of Life is one of the most popular examples of cellular automaton. However, did you know that Stephan Rafler proposed a version of Game of Life in 2011 which works over a contious domain, called SmoothLife?

Cool, isn’t it? The basic idea is that the grid of cells is replaced here with an effective grid where each cell occupies a continuous coordinate with a very small finite size and with the neighbors calculated based on a radius around that cell.

This blog post summarised the idea well and also provides a JavaScript implementation.

Since I’m toying around with Processing again these days, it seemed like a fun quick project to convert the source to Java:

Here’s what the results look like. Higher resolutions are possible but can’t be rendered in real-time due to the slower FFT implementation (it would be fun to import FFTW and see how that fares).

Here’s what the result looks like: