Recently at Scala.IO I gave a talk about Cellular Automata. In preparation I created a project and a repo at GitHub with a concise implementation of a few simple C.A. It turns out it might good for practicing Scala skills at lower-inter mediate level. The code is fairly simple, but not trivial, and the results of experiments are immediately visible on the screen. The project is divided into the common part, “the engine”, which takes care of most of the abstractions, a wrapper around the graphics library, and a small set of classes each implementing a different automaton. The idea is that most of the code can be abstracted away and put in the engine part, so the user doesn’t need to know much to write their own automaton.
You can find it here: https://github.com/makingthematrix/ca_art
There is a short explanation how everything works, together with “slides” (an animation, really) from my talk at Scala.IO. When Scala.IO releases the videos from the talks, I will add that as well.
I have created two proposals for new cellular automata as “good first issues”. If you’re interested you may also help me with bug fixing and engine development. Or you can simply contact me at Twitter (@makingthematrix), GitHub, or Wire (@maciek) to ask questions and talk about what other automata would you like to see implemented in Scala, but you don’t have time to do that yourselves