This project provides a (optionally) CUDA-based implementation of a self-modifying soup of programs which show emergence of self-replicators. Most experiments in the "Life on Computational Substrates: How Self Replicators Arise from Simple Interactions" paper (arxiv link (https://arxiv.org/abs/2406.19108) were done using this code.
On debian-based systems, install build-essential
and libbrotli-dev
(and optionally CUDA):
sudo apt install build-essential libbrotli-dev
On Arch Linux, install the brotli
and base-devel
packages.
The project also provides a flake.nix
file, so you may also make the
dependencies available with Nix using nix develop
.
Compile the code by running make
(for the CUDA-enabled version) or make CUDA=0
.
You can then run a simulation, for example with
bin/main --lang bff_noheads
The file cubff.py
provides an example of how to use the Python bindings.