The simplest Python program simulating a cellular automaton model of a complex system: the 'Game of Life'.
This open-source program serves as an introduction into complex systems modeling. The GoL was developed by John Conway in the 70ies, and it gained a huge attention by both researchers and mathematical enthusiasts. In the past, such programs designed in some higher-level programming language can easily exceed thousands of code lines. This program has about one hundred lines within which defines updating rules, visualize the lattice, and even save the animation. Everyone who is starting to model and understand complex systems modeling will benefit from the simplicity and clarity of the program. The code contains many comments in order to enable newcomers to follow in detail all its functions and to modify them according to their own preferences and needs. The chosen approach allows non-specialists along with all those who just want to passively understand the methodology to dive into this non-sequential way of thinking quite easily. The way of cellular automata modeling is very tightly related to massively parallel thinking, which is a bit tricky to newcomers. All what must be understood about those models is that the surrounding world (CA lattice) is observed and interacted with from each cell independently. This means that the rule of thumb of all CA modeling is to update all variables within the updated cell centripetally, and do not change any values outside it. Another important feature of CA modeling is the necessity to work with the old and new layers of the updated lattice, which are periodically switched. This allows us to overcome the unsolvable problem of the sequential updating of all cells within just one lattice, when it would be used instead. In such case, cells would be updated sequentially, one-by-one: cells containing new and old data will become mixed up in the same lattice. This is really something that we do not want to have in any CA model in the first place. Each initial configuration must be inserted into the Python program manually within its beginning: coordinates defines the live cells having the value equal to one. Complicated configurations can be quite difficult to insert because the loading of the initial configuration into the program was sacrificed due to the extra effort to keep it simple and easy to understand. Literature and all necessary programming resources are listed in the README file. This program is designed as the methodical one. When the program is used, it must be cited as stated in the 'README-GoL.txt' file along with one of the recommended optional papers.