CellPyLib is a Python library for working with Cellular Automata (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. These rules are provided as part of the library. Additionally, the library provides a means for creating asynchronous CA, 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.
Utility functions for plotting and viewing the evolved CA are provided. These tools make it easy to visualize the results of CA evolution. Moreover, utility functions for computing the information-theoretic properties of CA, such as the Shannon entropy and mutual information, are provided.
- Elementary CA
- Varying the Neighbourhood Size
- Varying the Number of Colors
- Measures of Complexity
- Continuous CA
- The Collatz Conjecture
- Two-Dimensional CA
- Conway’s Game of Life
- Fredkin’s Self-Replicating CA
- Hopfield Network
- Langton’s Loops
- Sayama’s SDSR Loop and Evoloop