A package that helps build cellular automata


Keywords
cellular, automata, game, of, life
License
MIT
Install
pip install pyscail==0.0.2

Documentation

pyscail

pyscail is a package for creating cellular automata. It allows you to specify the allowed states, and the transitions between them, and does everything else for you

rock-paper-scissors gif

Installation

You need to have python (>= 3.11) installed on your system. Once you have that, you can:

pip install pyscail

(or pip3, depending on your system)

The project's link on PyPI: https://pypi.org/project/pyscail/

Usage

See this video for a demonstration of how to use the library: https://youtu.be/BjPNs30i2TQ

A brief summary - provide a class with a next method and a display method. Provide a initialization function that returns an instance of your class given some coordinates. Provide a settings object that you can make using method provided by the library. Optionally, provide a function that will be called once each generation.

Then, simply call scail.run to run the ruleset.

Belusov-Zhabotinsky gif

Demos

See the following video for a demonstration on how to write code using this library.

See the demos folder for a lot more (and more varied) examples on how to use the library. Written demo automata include:

  • Conway's game of life
  • The modified game of life with extinction
  • Langton's ant

Langton gif

everything gif

Other

Kernel Caching

Kernel caching is an option you can enable through kernels.initialize_kernel_caching If this is set, then instead of being calculated every frame, the neighborhoods of a given point will be calculated once then cached. This will probably not cause any issues unless you change your neighborhood strategy mid-simulation.

Still, I didn't notice a significant speedup upon implementing caching, so for now it is just an option that is turned off by default.