Welcome to MABE2’s documentation!

MABE logo

Modular Agent Based Evolver (MABE) is a software framework that allows users to easily build and customize software for evolutionary computation or artificial life. The resulting systems are useful for studying evolutionary dynamics, solving complex problems, comparing evolving systems, or exploring the open-ended power of evolution.

MABE version 2.0 has been re-built from scratch, using the Empirical library. The goal of this rebuild is to allow for more modular control, flexible agents, faster run times and portability to the web.

What is MABE and why should you use it?

The MABE software is designed for a wide variety of users including biologists, engineers, computer scientists, and other researchers.

MABE’s primary goal is to reduce the time between thinking up a new hypothesis and generating results.

Example MABE Project

Imagine you are a computer scientist studying the performance of evolved neural networks on certain tasks: perhaps you’re interested in how these networks evolve on classification tasks vs. on predictive tasks. Without MABE, your process might look something like this:

  1. Find an implementation of neural networks that suits your purposes, and is written in your favorite language, or write one from scratch

  2. Write or find a selection scheme for your evolutionary process

  3. Write or find a fitness function or fitness task for your evolutionary process

  4. Make sure these elements incorporate together in order to generate an instance of your experiment

  5. Write a script to randomly seed your experiment and generate multiple replicates of your results

  6. Look at your data

Each of these steps has, of course, multiple sub-steps, and could take a very long time. In MABE, however, your experiment flow would look more like this:

  1. Edit a .gen file to choose which of MABE’s pre-built neural nets, selection schemes, and/or tasks you want to use for your experiment.

  2. Create the corresponding .mabe file.

  3. Run ./MABE -f settings/<example_filename>.mabe.

  4. View your data in the output.csv file!

If you are still not convinced MABE is useful for you, consider reading add link before making up your mind.


MABE’s design assumes that there are common elements (e.g., fitness functions, selection schemes, populations, etc.) in many evolutionary computation (EC) research projects. Leveraging these similarities allows for efficient reuse of common components while removing communication road blocks and simplifying the comparison, replication, and integration of results that would otherwise be generated by different systems.

Of course, EC systems have unique behaviors and are required to work in different ways. MABE provides sufficient structure to support portable, reusable, and interoperable components, while maintaining the flexibility needed to implement different EC systems. MABE improves efficiency through component reuse which reduces the time between thinking up a new hypothesis and generating results. MABE also allows for the use of standardized interfaces for non-common elements so these elements can be used interchangeably.

Next Steps

Ready to use MABE? Learn how to install MABE, then write and run your own experiments!