Last year, after the Clojure Bridge Berlin, we decided to make a study group and meet every week to learn and enjoy coding in Clojure. We started with a web application that was not very popular among participants and we decided to let everyone explore their own interests and share the result with the team.
We divided the team into two small teams and each team took a different track. I joined the web site development team and the others team was created with the purpose of exploring Quil and the artistic use of Clojure. Inside the web development team, when we were exploring some algorithm challenges, I discovered John Conway's Game of Life and I started to code a prototype. I have to say that I've got very much attracted to it. I started to research about the current implementations and to learn about it to get and idea how it could be implemented efficiently but I faced a very stepped learning curve into computational theory and very deep insights about algorithm so I decided to lower my expectations and just give it a try and see how it goes.
I've coded a fairly efficient algorithm solution using a Map to index all the tiles in the board and reference to it by a key. Then I tried refactoring to base it on a vector of vectors and form a matrix but it ended been slower than the previous solution. I've published on github the first implementation that you can run in your machine and watch it running.
After watching it for hours (I've got into it) I came with the idea that I should change the rules so that I could play with the survival skill of the single cells. As a result I've found a very interesting list of new patterns to watch. Here is a small gallery of images from the renderings:
Hope you enjoy this new patterns in the video and if you would like to know more about it, just let me know. Also I'll be glad if someone can help me to optimize the algorithm to speed up the rendering process.