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.