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
A Dockerfile is provided which can be used to build an image:
docker build -t evogym .
Alternatively, a prebuilt version of this image is available on Dockerhub:
docker pull dennisgwilson/evogym
Once the image evogym
is installed, it can be run using:
docker run -it -p 8888:8888 evogym
Your container should include a python shell with evogym installed. To run using jupyter, find the container name (docker ps
) and run the following:
docker exec <CONTAINER_NAME> jupyter notebook --ip 0.0.0.0 --no-browser --allow-root
To build the C++ simulation, build all the submodules, and install evogym
run the following command:
pip install -r requirements.txt
pip 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}
}