Algorithms for manipulating and simulating patterns in cellular automata
Project description
What is lifelib?
lifelib
is a collection of algorithms for simulating and manipulating
patterns in cellular automata. It can be included in your project in
either of two ways:
-
Python package:
lifelib
can be imported as a Python package, and is compatible with both Python 2.7 and Python 3.5 (and beyond). We recommend this for everyday use, as the Python bindings are more high-level and user-friendly. -
C++ header files: if you have a project written in C++11 or above, specific components of
lifelib
may be included. This approach is used by the apgsearch soup searcher and the slmake glider synthesis compiler. Note thatlifelib
is header-only owing to the use of templates.
System requirements
For lifelib
to work, you need a computer with an x86-64 processor.
This includes most personal computers, but not smartphones, tablets, or the
Raspberry Pi.
It runs easily in a POSIX environment, such as:
- Linux / Unix;
- Mac OS X;
- Windows (using Cygwin);
- Windows 10 (using WSL);
and requires a C++ compiler (gcc or clang) and Python (ideally with numpy).
The Python version of lifelib
can actually run in Windows' native Python
(e.g. Anaconda). A suitable Cygwin installation still needs to exist on the
machine and be locatable by lifelib
; the Python package contains a function
(lifelib.install_cygwin()
) to automatically and painlessly handle this.
Documentation
- Quick start
- Installation notes
- The structure of lifelib
- Example usage for Python
- Editing patterns
- Analysing and viewing patterns
Future directions
- Currently lifelib is specific to 64-bit x86 architecture; ideally support for other architectures will be introduced.
- An experimental logic synthesis branch is under development. That will allow custom rules (expressed as rule tables or trees) to be automatically compiled into Boolean circuits.
- In addition to the existing C++11 and Python bindings, the author is aiming to add Wolfram Language bindings for the library.
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
File details
Details for the file python-lifelib-2.5.6.tar.gz
.
File metadata
- Download URL: python-lifelib-2.5.6.tar.gz
- Upload date:
- Size: 725.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 25cad90d0bfc4354914d2c89951ab2221ab942add84d07e1470c109a1726d2c0 |
|
MD5 | a4e98303254ee8b62187292c1b618e6b |
|
BLAKE2b-256 | f049a1f2212a54627d199f9e7516131568b7169c547cb068ceb2ea65bcf2cb10 |