Skip to main content

Multidimensional cellular automata in Python.

Project description


qc.sec qc.sty qc.uni DOI

Awesome cellular automata library created by Borja Esteban.

Install it from PyPI

$ pip install ndautomata

Usage

This package is designed in order to create your own automata definitions based on 2 attributes:

  • neighbours: List with relative indexes to cell neighbours.
  • states: Number possible cell states.
from ndautomata import BaseAutomaton, neighbours
class Automaton(BaseAutomaton):
    neighbours = neighbours.regular(ndim=1, r=1)
    states = 2

Note the automata dimensions are defined with neighbours.ndim.

After you have defined your automaton, you can instantiate automata passing the initial configuration and the rule to the constructor function. Use the module initializers, based on numpy to generate the required arrays passing the number of states and size.

from ndautomata import initializers
rule = initializers.random(states=2, size=[2, 2, 2])
ic = initializers.center(states=2, size=[200])
ca = Automaton(ic, rule)

Note the shape of the rule must always be [states] * neighbours.size.

Plot the cellular automaton using matplotlib or your favorite tool.

import matplotlib.pyplot as plt
plt.rcParams["image.cmap"] = "binary"
plt.matshow([next(ca) for _ in range(100)])
plt.show()

png

See examples for more detailed use cases and examples on how to generate some plots.

Development

Fork the repository, pick one of the issues at the issues and create a Pull request.

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

ndautomata-1.0.5.tar.gz (130.2 kB view details)

Uploaded Source

Built Distribution

ndautomata-1.0.5-py3-none-any.whl (18.1 kB view details)

Uploaded Python 3

File details

Details for the file ndautomata-1.0.5.tar.gz.

File metadata

  • Download URL: ndautomata-1.0.5.tar.gz
  • Upload date:
  • Size: 130.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.17

File hashes

Hashes for ndautomata-1.0.5.tar.gz
Algorithm Hash digest
SHA256 8e2d57d5c1057bcf3091c370fd0fd25c0c621c32fe28d41498d10d1d85c4002e
MD5 e725f2e79a090be881c4bfa754980d6e
BLAKE2b-256 36f80e5465b720a11bcd701dbb80649bee94d3969392996cc8ae8d2fbf337e5e

See more details on using hashes here.

File details

Details for the file ndautomata-1.0.5-py3-none-any.whl.

File metadata

  • Download URL: ndautomata-1.0.5-py3-none-any.whl
  • Upload date:
  • Size: 18.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.17

File hashes

Hashes for ndautomata-1.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 0091222b0608bb693b019f5b5a6d9cd60ef2caf3627c11d9eab241a2737f3b9c
MD5 54c5b56f9e9a76df63e24aef50fd4963
BLAKE2b-256 0ee3b2395bdd4f17f6fb65b7c62f42371b5d8fe79c3bac46b8e761b9d362cf09

See more details on using hashes here.

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