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
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
16e97e032f9fdacfb95b19ee430355338a35e56dab7d9bea18af3893c99ee4ed
|
|
| MD5 |
c572fda11e253ddd0a3dd80c550a5511
|
|
| BLAKE2b-256 |
f810b068ececb1475b1ce1c3525b1d4aa47051b9b5ae3fb26402fbdacd4b60b2
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3011e70ea79d83af63ef932f7d0ab344736e8e7bed0161b9762f565be0ec8452
|
|
| MD5 |
24750778a7bfa7712c5fd3cc958c6a74
|
|
| BLAKE2b-256 |
a17c4c08aeee478afb1d7f4f2e0cf3b2e5b9c78b3316bea1230baddd7e95ad73
|