CellPyLib: A Python Library for working with Cellular Automata

Luis M. Antunes · The Journal of Open Source Software · 2021

Cellular Automata (CA) are discrete dynamical systems with a rich history (Ilachinski, 2001).Introduced by John von Neumann and Stanislaw Ulam in the 1940s (Von Neumann, 1951), CA have continued to fascinate, as their conceptual simplicity serves as a powerful microscope that allows us to explore the nature of computation and complexity, and the origins of emergence.Far from being an antiquated computational model, investigators are utilizing CA in novel and creative ways, such as the incorporation with Deep Learning (Mordvintsev et al., 2020;Nichele & Molund, 2017).Popularized and investigated by Stephen Wolfram in his book A New Kind of Science (Wolfram, 2002), CA remain premier reminders of a common theme in the study of the physical world: that simple systems and rules can give rise to remarkable complexity.They are a laboratory for the study of the origins of the complexity we see in the world around us.CellPyLib is a Python library for working with CA.It provides a concise and simple interface for defining and analyzing 1-and 2-dimensional CA.The CA can consist of discrete or continuous states.Neighbourhood radii are adjustable, and in the 2-dimensional case, both Moore and von Neumann neighbourhoods are supported.With CellPyLib, it is trivial to create Elementary CA, and CA with totalistic rules, as these rules are provided as part of the library.Additionally, the library provides a means for creating asynchronous and reversible CA.Finally, an implementation of C. G. Langton's approach for creating CA rules using the lambda value is provided, allowing for the exploration of complex systems, phase transitions and emergent computation (Langton, 1990).

Read the paper · More papers on PaperTik