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
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.
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
- Wireworld
- Rock-Paper-Scissors automata
- Belusov-Zhabotinsky reaction (https://www.hermetic.ch/pca/bz.htm)
- the Mandelbrot and Julia sets
- A simulation of grain growth in metals (https://www.sciencedirect.com/science/article/pii/1359646296000553)
- And lastly, this demo of many of the above rulesets combined into one ruleset and run all together, then displayed as a weighted average
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.
Release files for pyscail 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pyscail-0.1.0.tar.gz | 96.2 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pyscail-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 96.2 MB
Release files / pyscail-0.1.0.tar.gz
| Download URL | pyscail-0.1.0.tar.gz |
|---|---|
| Size | 96.2 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
16e97e032f9fdacfb95b19ee430355338a35e56dab7d9bea18af3893c99ee4ed
|
|
BLAKE2b-256 checksum How to use checksums |
f810b068ececb1475b1ce1c3525b1d4aa47051b9b5ae3fb26402fbdacd4b60b2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.11.5
|
Release files / pyscail-0.1.0-py3-none-any.whl
| Download URL | pyscail-0.1.0-py3-none-any.whl |
|---|---|
| Size | 6.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3011e70ea79d83af63ef932f7d0ab344736e8e7bed0161b9762f565be0ec8452
|
|
BLAKE2b-256 checksum How to use checksums |
a17c4c08aeee478afb1d7f4f2e0cf3b2e5b9c78b3316bea1230baddd7e95ad73
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.11.5
|