Repository for "Toward Artificial Open-Ended Evolution within Lenia using Quality-Diversity" (ALIFE 2024).
git clone https://github.com/maxencefaldor/Leniabreeder.git && cd Leniabreeder
At the root of the repository, execute:
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
At the root of the repository, execute:
apptainer build \
--fakeroot \
--force \
--warn-unused-build-args \
apptainer/container.sif apptainer/container.def
At the root of the repository, execute:
source venv/bin/activate
At the root of the repository, execute:
apptainer shell \
--bind $(pwd):/workspace/src/ \
--cleanenv \
--containall \
--home /tmp/ \
--no-home \
--nv \
--pwd /workspace/src/ \
--workdir apptainer/ \
apptainer/container.sif
To run an experiment with the default configuration, execute the following command:
python main.py seed=$RANDOM qd=<algo>
with <algo>
replaced with either me
or aurora
.
All hyperparameters are available in the configs/
directory and can be overridden via the command line. For example, to run the MAP-Elites experiments as described in the paper, use:
python main.py seed=$RANDOM qd=me qd.n_generations=4_000 qd.repertoire_size=32_000 qd.fitness=pos_linear_velocity_avg qd.descriptor=[color] qd.descriptor_min=[0.,0.,0.] qd.descriptor_max=[1.,1.,1.]
When you run an experiment, a directory is created in output/
. To analyze the results, you can either run a script from the analysis/
directory or use the notebooks from the notebooks/
directory. Don't forget to change run_dir
to the path of your experiment.
For MAP-Elites, you can use analysis/visualize_me.py
or notebooks/visualize_me.ipynb
. For AURORA, you can use analysis/visualize_aurora.py
or notebooks/visualize_aurora.ipynb
.
@article{faldor2024leniabreeder,
author = {Faldor, Maxence and Cully, Antoine},
title = {Toward Artificial Open-Ended Evolution within Lenia using Quality-Diversity},
journal = {Artificial Life},
year = {2024},
}