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
- 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
conda activate evogym
or with pip:
pip install -r requirements.txt
To build the C++ simulation, build all the submodules, and install evogym
run the following command:
python setup.py install
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.
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:
@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}
}