Algorithms for manipulating and simulating patterns in cellular automata

## 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 that lifelib 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.

## 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

### Source Distribution

python-lifelib-2.5.6.tar.gz (725.3 kB view hashes)

Uploaded source