Skip to main content

A package that helps build cellular automata

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyscail-0.1.0.tar.gz (96.2 MB view hashes)

Uploaded Source

Built Distribution

pyscail-0.1.0-py3-none-any.whl (6.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page