Skip to main content


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.

Metadata

Release files for ndautomata 1.0.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ndautomata 1.0.5
File Size Uploaded
ndautomata-1.0.5.tar.gz 130.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ndautomata 1.0.5
File Interpreter ABI Platform
ndautomata-1.0.5-py3-none-any.whl Python 3 none any Details

Total release size: 148.3 kB

Release files / ndautomata-1.0.5.tar.gz

Download URL ndautomata-1.0.5.tar.gz
Size 130.2 kB
Tags Source
SHA-256 checksum
How to use checksums
8e2d57d5c1057bcf3091c370fd0fd25c0c621c32fe28d41498d10d1d85c4002e
BLAKE2b-256 checksum
How to use checksums
36f80e5465b720a11bcd701dbb80649bee94d3969392996cc8ae8d2fbf337e5e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.17

Release files / ndautomata-1.0.5-py3-none-any.whl

Download URL ndautomata-1.0.5-py3-none-any.whl
Size 18.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0091222b0608bb693b019f5b5a6d9cd60ef2caf3627c11d9eab241a2737f3b9c
BLAKE2b-256 checksum
How to use checksums
0ee3b2395bdd4f17f6fb65b7c62f42371b5d8fe79c3bac46b8e761b9d362cf09
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.17

Release history Release notifications | RSS feed

This release

1.0.5 This release

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page