Evolution Gym

A large-scale benchmark for co-optimizing the design and control of soft robots. As seen in Evolution Gym: A Large-Scale Benchmark for Evolving Soft Robots (NeurIPS 2021).



Clone the repo and submodules:

git clone --recurse-submodules https://github.com/EvolutionGym/evogym.git


On Linux only:

sudo apt-get install xorg-dev libglu1-mesa-dev

Either install Python dependencies with conda:

conda env create -f environment.yml

or with pip:

pip install -r requirements.txt

Build and Install Package

To build the C++ simulation, build all the submodules, and install evogym run the following command:

python setup.py install

Test Installation

cd to the examples folder and run the following script:

python gym_test.py

This script creates a random 5x5 robot in the Walking-v0 environment. The robot is taking random actions. A window should open with a visualization of the environment — kill the process from the terminal to close it.



To see example usage as well as to run co-design and control optimization experiments in EvoGym, please see the examples folder and its README.


You can find tutorials for getting started with the codebase on our website. Completed code from all tutorials is also available in the tutorials folder.


You can find documentation on our website.

Design Tool

For instructions on how to use the Evolution Gym Design Tool, please see this repo.


If you find our repository helpful to your research, please cite our paper:

  title={Evolution gym: A large-scale benchmark for evolving soft robots},
  author={Bhatia, Jagdeep and Jackson, Holly and Tian, Yunsheng and Xu, Jie and Matusik, Wojciech},
  journal={Advances in Neural Information Processing Systems},


View Github