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).
Installation
Clone the repo and submodules:
git clone --recurse-submodules https://github.com/EvolutionGym/evogym.git
Requirements
- Python 3.7/3.8
- Linux, macOS, or Windows with Visual Studios 2017
- OpenGL
- CMake
- PyTorch
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.
Usage
Examples
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
.
Tutorials
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.
Docs
You can find documentation on our website.
Design Tool
For instructions on how to use the Evolution Gym Design Tool, please see this repo.
Citation
If you find our repository helpful to your research, please cite our paper:
@article{bhatia2021evolution,
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},
volume={34},
year={2021}
}