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 details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

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

Uploaded Python 3

File details

Details for the file pyscail-0.1.0.tar.gz.

File metadata

  • Download URL: pyscail-0.1.0.tar.gz
  • Upload date:
  • Size: 96.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.5

File hashes

Hashes for pyscail-0.1.0.tar.gz
Algorithm Hash digest
SHA256 16e97e032f9fdacfb95b19ee430355338a35e56dab7d9bea18af3893c99ee4ed
MD5 c572fda11e253ddd0a3dd80c550a5511
BLAKE2b-256 f810b068ececb1475b1ce1c3525b1d4aa47051b9b5ae3fb26402fbdacd4b60b2

See more details on using hashes here.

File details

Details for the file pyscail-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: pyscail-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 6.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.5

File hashes

Hashes for pyscail-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3011e70ea79d83af63ef932f7d0ab344736e8e7bed0161b9762f565be0ec8452
MD5 24750778a7bfa7712c5fd3cc958c6a74
BLAKE2b-256 a17c4c08aeee478afb1d7f4f2e0cf3b2e5b9c78b3316bea1230baddd7e95ad73

See more details on using hashes here.

Supported by

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