pyscail


Namepyscail JSON
Version 0.1.0 PyPI version JSON
download
home_pageNone
SummaryA package that helps build cellular automata
upload_time2024-05-06 06:15:19
maintainerNone
docs_urlNone
authorNone
requires_python>=3.11
licenseNone
keywords cellular automata game of life
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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](media/rps-gif.gif)

## Installation

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

```bash
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](media/bz-gif.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](media/langton-gif.gif)
- 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

![everything gif](media/everything-gif.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.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "pyscail",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": null,
    "keywords": "cellular automata, game of life",
    "author": null,
    "author_email": "Ribhu Hooja <ribhu.hooja.27@dartmouth.edu>",
    "download_url": "https://files.pythonhosted.org/packages/f8/10/b068ececb1475b1ce1c3525b1d4aa47051b9b5ae3fb26402fbdacd4b60b2/pyscail-0.1.0.tar.gz",
    "platform": null,
    "description": "# pyscail\n\n**pyscail** is a package for creating cellular automata. It allows you to specify the\nallowed states, and the transitions between them, and does everything else for you\n\n![rock-paper-scissors gif](media/rps-gif.gif)\n\n## Installation\n\nYou need to have python (>= 3.11) installed on your system. Once you have that,\nyou can:\n\n```bash\npip install pyscail\n```\n\n(or `pip3`, depending on your system)\n\nThe project's link on PyPI: https://pypi.org/project/pyscail/\n\n## Usage\nSee this video for a demonstration of how to use the library: \nhttps://youtu.be/BjPNs30i2TQ\n\nA brief summary - provide a class with a `next` method and a \n`display` method. Provide a initialization function that returns\nan instance of your class given some coordinates. Provide a settings\nobject that you can make using method provided by the library.\nOptionally, provide a function that will be called once each generation.\n\nThen, simply call `scail.run` to run the ruleset.\n\n\n![Belusov-Zhabotinsky gif](media/bz-gif.gif)\n\n## Demos\nSee the following video for a demonstration on how to write code using this\nlibrary.\n\nSee the demos folder for a lot more (and more varied) examples on how to use the \nlibrary. Written demo automata include:\n\n- Conway's game of life\n- The modified game of life with extinction\n- Langton's ant \n\n![Langton gif](media/langton-gif.gif)\n- Wireworld\n- Rock-Paper-Scissors automata \n- Belusov-Zhabotinsky reaction (https://www.hermetic.ch/pca/bz.htm)\n- the Mandelbrot and Julia sets\n- A simulation of grain growth in metals (https://www.sciencedirect.com/science/article/pii/1359646296000553)\n- And lastly, this demo of many of the above rulesets combined into one \nruleset and run all together, then displayed as a weighted average\n\n![everything gif](media/everything-gif.gif)\n\n## Other\n\n### Kernel Caching\nKernel caching is an option you can enable through `kernels.initialize_kernel_caching`\nIf this is set, then instead of being calculated every frame, the neighborhoods\nof a given point will be calculated once then cached. This will probably\nnot cause any issues unless you change your neighborhood strategy mid-simulation.\n\nStill, I didn't notice a significant speedup upon implementing caching, so for now\nit is just an option that is turned off by default.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A package that helps build cellular automata",
    "version": "0.1.0",
    "project_urls": {
        "Homepage": "https://github.com/ribhuhooja/pyscail",
        "Issues": "https://github.com/ribhuhooja/pyscail/issues"
    },
    "split_keywords": [
        "cellular automata",
        " game of life"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a17c4c08aeee478afb1d7f4f2e0cf3b2e5b9c78b3316bea1230baddd7e95ad73",
                "md5": "24750778a7bfa7712c5fd3cc958c6a74",
                "sha256": "3011e70ea79d83af63ef932f7d0ab344736e8e7bed0161b9762f565be0ec8452"
            },
            "downloads": -1,
            "filename": "pyscail-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "24750778a7bfa7712c5fd3cc958c6a74",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 6885,
            "upload_time": "2024-05-06T06:15:12",
            "upload_time_iso_8601": "2024-05-06T06:15:12.914947Z",
            "url": "https://files.pythonhosted.org/packages/a1/7c/4c08aeee478afb1d7f4f2e0cf3b2e5b9c78b3316bea1230baddd7e95ad73/pyscail-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f810b068ececb1475b1ce1c3525b1d4aa47051b9b5ae3fb26402fbdacd4b60b2",
                "md5": "c572fda11e253ddd0a3dd80c550a5511",
                "sha256": "16e97e032f9fdacfb95b19ee430355338a35e56dab7d9bea18af3893c99ee4ed"
            },
            "downloads": -1,
            "filename": "pyscail-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "c572fda11e253ddd0a3dd80c550a5511",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 96190761,
            "upload_time": "2024-05-06T06:15:19",
            "upload_time_iso_8601": "2024-05-06T06:15:19.065479Z",
            "url": "https://files.pythonhosted.org/packages/f8/10/b068ececb1475b1ce1c3525b1d4aa47051b9b5ae3fb26402fbdacd4b60b2/pyscail-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-05-06 06:15:19",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "ribhuhooja",
    "github_project": "pyscail",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "pyscail"
}
        
Elapsed time: 0.32271s