A large-scale benchmark for co-optimizing the design and control of soft robots, as seen in NeurIPS 2021.

Overview

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).

teaser

Installation

Clone the repo and submodules:

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

Requirements

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}
}
Comments
  • error C2248 when run python setup.py install

    error C2248 when run python setup.py install

    Hi, I'm facing an issue with building the simulator in Windows 10. After cloning the git repo, I installed Python dependencies with conda as instructed:

    conda env create -f environment.yml

    Then I ran the following command to build the simulator:

    python setup.py install

    and end up with this error:

    subprocess.CalledProcessError: Command '['cmake', '--build', '.', '--config', 'Release', '--', '/m']' returned non-zero exit status 1.

    I scrolled up a bit and see the following lines in red:

      PythonBindings.cpp
      Robot.cpp
    C:\MyPath\evogym\evogym\simulator\SimulatorCPP\Environment.cpp(271,3): error C2248: 'Eigen::Ref<Eigen::MatrixXd,0,Eigen::OuterStride<-1>>::Ref': cannot access private member declared
     in class 'Eigen::Ref<Eigen::MatrixXd,0,Eigen::OuterStride<-1>>' [C:\MyPath\evogym\build\temp.win-amd64-3.7\Release\SimulatorCPP\simulator_cpp.vcxproj]
    
    C:\MyPath\evogym\evogym\simulator\externals\eigen\Eigen\src/Core/Ref.h(299): message : see declaration of 'Eigen::Ref<Eigen::MatrixXd,0,Eigen::OuterStride<-1>>::Ref' [C:\MyPath\evogym\build\temp.win-amd64-3.7\Release\SimulatorCPP\simulator_cpp.vcxproj]
    
    C:\MyPath\evogym\evogym\simulator\SimulatorCPP\Environment.h(95): message : see declaration of 'Eigen::Ref<Eigen::MatrixXd,0,Eigen::OuterStride<-1>>' [C:\MyPath\evogym\build\temp.win-amd64-3.7\Release\SimulatorCPP\simulator_cpp.vcxproj]
    
    C:\MyPath\evogym\evogym\simulator\SimulatorCPP\Environment.cpp(282,3): error C2248: 'Eigen::Ref<Eigen::MatrixXd,0,Eigen::OuterStride<-1>>::Ref': cannot access private member declared
     in class 'Eigen::Ref<Eigen::MatrixXd,0,Eigen::OuterStride<-1>>' [C:\MyPath\evogym\build\temp.win-amd64-3.7\Release\SimulatorCPP\simulator_cpp.vcxproj]
    
    C:\MyPath\evogym\evogym\simulator\externals\eigen\Eigen\src/Core/Ref.h(299): message : see declaration of 'Eigen::Ref<Eigen::MatrixXd,0,Eigen::OuterStride<-1>>::Ref' [C:\MyPath\evogym\build\temp.win-amd64-3.7\Release\SimulatorCPP\simulator_cpp.vcxproj]
    
    C:\MyPath\evogym\evogym\simulator\SimulatorCPP\Environment.h(95): message : see declaration of 'Eigen::Ref<Eigen::MatrixXd,0,Eigen::OuterStride<-1>>' [C:\MyPath\evogym\build\temp.win-amd64-3.7\Release\SimulatorCPP\simulator_cpp.vcxproj]
    
    C:\MyPath\evogym\evogym\simulator\SimulatorCPP\Environment.cpp(294,3): error C2248: 'Eigen::Ref<Eigen::MatrixXd,0,Eigen::OuterStride<-1>>::Ref': cannot access private member declared
     in class 'Eigen::Ref<Eigen::MatrixXd,0,Eigen::OuterStride<-1>>' [C:\MyPath\evogym\build\temp.win-amd64-3.7\Release\SimulatorCPP\simulator_cpp.vcxproj]
    
    C:\MyPath\evogym\evogym\simulator\externals\eigen\Eigen\src/Core/Ref.h(299): message : see declaration of 'Eigen::Ref<Eigen::MatrixXd,0,Eigen::OuterStride<-1>>::Ref' [C:\MyPath\evogym\build\temp.win-amd64-3.7\Release\SimulatorCPP\simulator_cpp.vcxproj]
    
    C:\MyPath\evogym\evogym\simulator\SimulatorCPP\Environment.h(95): message : see declaration of 'Eigen::Ref<Eigen::MatrixXd,0,Eigen::OuterStride<-1>>' [C:\MyPath\evogym\build\temp.win-amd64-3.7\Release\SimulatorCPP\simulator_cpp.vcxproj]
      Sim.cpp
    
    C:\MyPath\evogym\evogym\simulator\SimulatorCPP\Environment.cpp(309,3): error C2248: 'Eigen::Ref<Eigen::MatrixXd,0,Eigen::OuterStride<-1>>::Ref': cannot access private member declared
     in class 'Eigen::Ref<Eigen::MatrixXd,0,Eigen::OuterStride<-1>>' [C:\MyPath\evogym\build\temp.win-amd64-3.7\Release\SimulatorCPP\simulator_cpp.vcxproj]
    
    C:\MyPath\evogym\evogym\simulator\externals\eigen\Eigen\src/Core/Ref.h(299): message : see declaration of 'Eigen::Ref<Eigen::MatrixXd,0,Eigen::OuterStride<-1>>::Ref' [C:\MyPath\evogym\build\temp.win-amd64-3.7\Release\SimulatorCPP\simulator_cpp.vcxproj]
    
    C:\MyPath\evogym\evogym\simulator\SimulatorCPP\Environment.h(95): message : see declaration of 'Eigen::Ref<Eigen::MatrixXd,0,Eigen::OuterStride<-1>>' [C:\MyPath\evogym\build\temp.win-amd64-3.7\Release\SimulatorCPP\simulator_cpp.vcxproj]
    
    opened by JunHill 5
  • Could NOT find GLEW (missing: GLEW_INCLUDE_DIRS GLEW_LIBRARIES)

    Could NOT find GLEW (missing: GLEW_INCLUDE_DIRS GLEW_LIBRARIES)

    Hi, I have tried to install evogym in ubuntu 20.04. I also installed Cmaker (3.16.3). However, I got the next error message when I run "python setup.py install":

    running install running bdist_egg running egg_info writing evogym.egg-info/PKG-INFO writing dependency_links to evogym.egg-info/dependency_links.txt writing top-level names to evogym.egg-info/top_level.txt reading manifest file 'evogym.egg-info/SOURCES.txt' adding license file 'LICENSE' writing manifest file 'evogym.egg-info/SOURCES.txt' installing library code to build/bdist.linux-x86_64/egg running install_lib running build_py running build_ext -- The C compiler identification is GNU 9.3.0 -- The CXX compiler identification is GNU 9.3.0 -- Check for working C compiler: /usr/bin/cc -- Check for working C compiler: /usr/bin/cc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done CMake Warning (dev) at /usr/share/cmake-3.16/Modules/FindOpenGL.cmake:275 (message): Policy CMP0072 is not set: FindOpenGL prefers GLVND by default when available. Run "cmake --help-policy CMP0072" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

    FindOpenGL found both a legacy GL library:

    OPENGL_gl_LIBRARY: /usr/lib/x86_64-linux-gnu/libGL.so
    

    and GLVND libraries for OpenGL and GLX:

    OPENGL_opengl_LIBRARY: /usr/lib/x86_64-linux-gnu/libOpenGL.so
    OPENGL_glx_LIBRARY: /usr/lib/x86_64-linux-gnu/libGLX.so
    

    OpenGL_GL_PREFERENCE has not been set to "GLVND" or "LEGACY", so for compatibility with CMake 3.10 and below the legacy GL library will be used. Call Stack (most recent call first): CMakeLists.txt:21 (find_package) This warning is for project developers. Use -Wno-dev to suppress it.

    CMake Error at /usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:146 (message): Could NOT find GLEW (missing: GLEW_INCLUDE_DIRS GLEW_LIBRARIES) Call Stack (most recent call first): /usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:393 (_FPHSA_FAILURE_MESSAGE) /usr/share/cmake-3.16/Modules/FindGLEW.cmake:207 (find_package_handle_standard_args) CMakeLists.txt:22 (find_package)

    -- Configuring incomplete, errors occurred! See also "/Develop/evogym-main/build/temp.linux-x86_64-3.7/CMakeFiles/CMakeOutput.log". Traceback (most recent call last): File "setup.py", line 72, in zip_safe=False, File "/Develop/anaconda3/envs/evogym/lib/python3.7/site-packages/setuptools/init.py", line 153, in setup return distutils.core.setup(**attrs) File "/Develop/anaconda3/envs/evogym/lib/python3.7/distutils/core.py", line 148, in setup dist.run_commands() File "/Develop/anaconda3/envs/evogym/lib/python3.7/distutils/dist.py", line 966, in run_commands self.run_command(cmd) File "/Develop/anaconda3/envs/evogym/lib/python3.7/distutils/dist.py", line 985, in run_command cmd_obj.run() File "/Develop/anaconda3/envs/evogym/lib/python3.7/site-packages/setuptools/command/install.py", line 67, in run self.do_egg_install() File "/Develop/anaconda3/envs/evogym/lib/python3.7/site-packages/setuptools/command/install.py", line 109, in do_egg_install self.run_command('bdist_egg') File "/Develop/anaconda3/envs/evogym/lib/python3.7/distutils/cmd.py", line 313, in run_command self.distribution.run_command(command) File "/Develop/anaconda3/envs/evogym/lib/python3.7/distutils/dist.py", line 985, in run_command cmd_obj.run() File "/Develop/anaconda3/envs/evogym/lib/python3.7/site-packages/setuptools/command/bdist_egg.py", line 164, in run cmd = self.call_command('install_lib', warn_dir=0) File "/Develop/anaconda3/envs/evogym/lib/python3.7/site-packages/setuptools/command/bdist_egg.py", line 150, in call_command self.run_command(cmdname) File "/Develop/anaconda3/envs/evogym/lib/python3.7/distutils/cmd.py", line 313, in run_command self.distribution.run_command(command) File "/Develop/anaconda3/envs/evogym/lib/python3.7/distutils/dist.py", line 985, in run_command cmd_obj.run() File "/Develop/anaconda3/envs/evogym/lib/python3.7/site-packages/setuptools/command/install_lib.py", line 11, in run self.build() File "/Develop/anaconda3/envs/evogym/lib/python3.7/distutils/command/install_lib.py", line 107, in build self.run_command('build_ext') File "/Develop/anaconda3/envs/evogym/lib/python3.7/distutils/cmd.py", line 313, in run_command self.distribution.run_command(command) File "/Develop/anaconda3/envs/evogym/lib/python3.7/distutils/dist.py", line 985, in run_command cmd_obj.run() File "setup.py", line 32, in run self.build_extension(ext) File "setup.py", line 57, in build_extension subprocess.check_call(['cmake', ext.sourcedir] + cmake_args, cwd=self.build_temp, env=env) File "/Develop/anaconda3/envs/evogym/lib/python3.7/subprocess.py", line 363, in check_call raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command '['cmake', '/Develop/evogym-main/evogym/simulator', '-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/Develop/evogym-main/build/lib.linux-x86_64-3.7/evogym', '-DPYTHON_EXECUTABLE=/Develop/anaconda3/envs/evogym/bin/python', '-DCMAKE_BUILD_TYPE=Release']' returned non-zero exit status 1.

    Please, could you suggest how to solve it? Thanks

    opened by applibres 3
  • Suggestion for learning algorithms or library?

    Suggestion for learning algorithms or library?

    Hi, thank you for such interesting benchmark! I am doing some school project about Deep Reinforcement Learning and Evolutionary algorithm. Could you suggest some more existing algorithms that would be interesting to try on this benchmark?

    opened by JunHill 2
  • Could NOT find GLEW (missing: GLEW_INCLUDE_DIRS GLEW_LIBRARIES) and #3 did not solve this.

    Could NOT find GLEW (missing: GLEW_INCLUDE_DIRS GLEW_LIBRARIES) and #3 did not solve this.

    Could NOT find GLEW (missing: GLEW_INCLUDE_DIRS GLEW_LIBRARIES) and #3 did not solve this. Entire (relevant) terminal log:

    hfdeMacBook-Pro:~ luchang$ git clone --recurse-submodules https://github.com/EvolutionGym/evogym.git
    Cloning into 'evogym'...
    remote: Enumerating objects: 588, done.
    remote: Counting objects: 100% (587/587), done.
    remote: Compressing objects: 100% (442/442), done.
    remote: Total 588 (delta 130), reused 572 (delta 127), pack-reused 1
    <--snip-->
    Resolving deltas: 100% (600/600), done.
    Submodule path 'evogym/simulator/externals/glew': checked out '7c2b7514f64234756f7df051b9316f1e46f5a6e7'
    Submodule path 'evogym/simulator/externals/glfw': checked out 'df8d7bc892937a8b0f7c604c92a9f64f383cf48c'
    Submodule path 'evogym/simulator/externals/pybind11': checked out 'bcb6d63ce99752dd735b5abf128f498458999a66'
    Submodule path 'examples/externals/PyTorch-NEAT': checked out 'dee5f0adb22faf7d563c75ce28a8e3d6923d1b22'
    Submodule path 'examples/externals/pytorch_a2c_ppo_acktr_gail': checked out '41332b78dfb50321c29bade65f9d244387f68a60'
    hfdeMacBook-Pro:~ luchang$ 
    hfdeMacBook-Pro:~ luchang$ python3.9 -m pip install torch torchvision torchaudio
    DEPRECATION: Configuring installation scheme with distutils config files is deprecated and will no longer work in the near future. If you are using a Homebrew or Linuxbrew Python, please see discussion at https://github.com/Homebrew/homebrew-core/issues/76621
    Collecting torch
      Downloading torch-1.12.1-cp39-none-macosx_10_9_x86_64.whl (133.8 MB)
         |████████████████████████████████| 133.8 MB 1.7 MB/s 
    Collecting torchvision
      Downloading torchvision-0.13.1-cp39-cp39-macosx_10_9_x86_64.whl (1.3 MB)
         |████████████████████████████████| 1.3 MB 557 kB/s 
    Collecting torchaudio
      Downloading torchaudio-0.12.1-cp39-cp39-macosx_10_9_x86_64.whl (3.1 MB)
         |████████████████████████████████| 3.1 MB 648 kB/s 
    Requirement already satisfied: typing-extensions in /usr/local/lib/python3.9/site-packages (from torch) (4.1.0)
    Requirement already satisfied: pillow!=8.3.*,>=5.3.0 in /usr/local/lib/python3.9/site-packages (from torchvision) (9.1.1)
    Requirement already satisfied: requests in /usr/local/lib/python3.9/site-packages (from torchvision) (2.27.1)
    Requirement already satisfied: numpy in /usr/local/lib/python3.9/site-packages (from torchvision) (1.21.2)
    Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.9/site-packages (from requests->torchvision) (2021.5.30)
    Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.9/site-packages (from requests->torchvision) (3.2)
    Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.9/site-packages (from requests->torchvision) (1.26.7)
    Requirement already satisfied: charset-normalizer~=2.0.0 in /usr/local/lib/python3.9/site-packages (from requests->torchvision) (2.0.6)
    Installing collected packages: torch, torchvision, torchaudio
      DEPRECATION: Configuring installation scheme with distutils config files is deprecated and will no longer work in the near future. If you are using a Homebrew or Linuxbrew Python, please see discussion at https://github.com/Homebrew/homebrew-core/issues/76621
      DEPRECATION: Configuring installation scheme with distutils config files is deprecated and will no longer work in the near future. If you are using a Homebrew or Linuxbrew Python, please see discussion at https://github.com/Homebrew/homebrew-core/issues/76621
    DEPRECATION: Configuring installation scheme with distutils config files is deprecated and will no longer work in the near future. If you are using a Homebrew or Linuxbrew Python, please see discussion at https://github.com/Homebrew/homebrew-core/issues/76621
    Successfully installed torch-1.12.1 torchaudio-0.12.1 torchvision-0.13.1
    WARNING: You are using pip version 21.2.4; however, version 22.2.2 is available.
    You should consider upgrading via the '/usr/local/opt/[email protected]/bin/python3.9 -m pip install --upgrade pip' command.
    hfdeMacBook-Pro:~ luchang$ 
    hfdeMacBook-Pro:~ luchang$ 
    hfdeMacBook-Pro:~ luchang$ evogym
    -bash: evogym: command not found
    hfdeMacBook-Pro:~ luchang$ 
    hfdeMacBook-Pro:~ luchang$ cd evogym
    hfdeMacBook-Pro:evogym luchang$ 
    hfdeMacBook-Pro:evogym luchang$ python3.9 setup.py install
    running install
    running bdist_egg
    running egg_info
    <--snip-->
    copying evogym/envs/sim_files/BeamToppler-v0.json -> build/lib.macosx-11-x86_64-3.9/evogym/envs/sim_files
    copying evogym/envs/sim_files/PlatformJumper-v0.json -> build/lib.macosx-11-x86_64-3.9/evogym/envs/sim_files
    copying evogym/envs/sim_files/Pusher-v1.json -> build/lib.macosx-11-x86_64-3.9/evogym/envs/sim_files
    running build_ext
    -- The C compiler identification is AppleClang 14.0.0.14000029
    -- The CXX compiler identification is AppleClang 14.0.0.14000029
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc - skipped
    -- Detecting C compile features
    -- Detecting C compile features - done
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ - skipped
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    -- Found OpenGL: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.3.sdk/System/Library/Frameworks/OpenGL.framework   
    CMake Error at /usr/local/Cellar/cmake/3.21.3_1/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
      Could NOT find GLEW (missing: GLEW_INCLUDE_DIRS GLEW_LIBRARIES)
    Call Stack (most recent call first):
      /usr/local/Cellar/cmake/3.21.3_1/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
      /usr/local/Cellar/cmake/3.21.3_1/share/cmake/Modules/FindGLEW.cmake:215 (find_package_handle_standard_args)
      CMakeLists.txt:22 (find_package)
    
    
    -- Configuring incomplete, errors occurred!
    See also "/Users/luchang/evogym/build/temp.macosx-11-x86_64-3.9/CMakeFiles/CMakeOutput.log".
    See also "/Users/luchang/evogym/build/temp.macosx-11-x86_64-3.9/CMakeFiles/CMakeError.log".
    Traceback (most recent call last):
      File "/Users/luchang/evogym/setup.py", line 61, in <module>
        setup(
      File "/usr/local/lib/python3.9/site-packages/setuptools/__init__.py", line 153, in setup
        return distutils.core.setup(**attrs)
      File "/usr/local/Cellar/[email protected]/3.9.7/Frameworks/Python.framework/Versions/3.9/lib/python3.9/distutils/core.py", line 148, in setup
        dist.run_commands()
    <--snip-->
      File "/usr/local/Cellar/[email protected]/3.9.7/Frameworks/Python.framework/Versions/3.9/lib/python3.9/subprocess.py", line 373, in check_call
        raise CalledProcessError(retcode, cmd)
    subprocess.CalledProcessError: Command '['cmake', '/Users/luchang/evogym/evogym/simulator', '-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/Users/luchang/evogym/build/lib.macosx-11-x86_64-3.9/evogym', '-DPYTHON_EXECUTABLE=/usr/local/opt/[email protected]/bin/python3.9', '-DCMAKE_BUILD_TYPE=Release']' returned non-zero exit status 1.
    hfdeMacBook-Pro:evogym luchang$ 
    hfdeMacBook-Pro:evogym luchang$ 
    hfdeMacBook-Pro:evogym luchang$ cmake
    Usage
    
      cmake [options] <path-to-source>
      cmake [options] <path-to-existing-build>
      cmake [options] -S <path-to-source> -B <path-to-build>
    
    Specify a source directory to (re-)generate a build system for it in the
    current working directory.  Specify an existing build directory to
    re-generate its build system.
    
    Run 'cmake --help' for more information.
    
    hfdeMacBook-Pro:evogym luchang$ 
    hfdeMacBook-Pro:evogym luchang$ 
    hfdeMacBook-Pro:evogym luchang$ cmake /Users/luchang/evogym/evogym/simulator -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/Users/luchang/evogym/build/lib.macosx-11-x86_64-3.9/evogym -DPYTHON_EXECUTABLE=/usr/local/opt/[email protected]/bin/python3.9 -DCMAKE_BUILD_TYPE=Release
    -- The C compiler identification is AppleClang 14.0.0.14000029
    -- The CXX compiler identification is AppleClang 14.0.0.14000029
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc - skipped
    -- Detecting C compile features
    -- Detecting C compile features - done
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ - skipped
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    -- Found OpenGL: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.3.sdk/System/Library/Frameworks/OpenGL.framework   
    CMake Error at /usr/local/Cellar/cmake/3.21.3_1/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
      Could NOT find GLEW (missing: GLEW_INCLUDE_DIRS GLEW_LIBRARIES)
    Call Stack (most recent call first):
      /usr/local/Cellar/cmake/3.21.3_1/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
      /usr/local/Cellar/cmake/3.21.3_1/share/cmake/Modules/FindGLEW.cmake:215 (find_package_handle_standard_args)
      CMakeLists.txt:22 (find_package)
    
    
    -- Configuring incomplete, errors occurred!
    See also "/Users/luchang/evogym/CMakeFiles/CMakeOutput.log".
    See also "/Users/luchang/evogym/CMakeFiles/CMakeError.log".
    hfdeMacBook-Pro:evogym luchang$ 
    hfdeMacBook-Pro:evogym luchang$ 
    hfdeMacBook-Pro:evogym luchang$ sudo apt-get install libglew-dev
    Password:
    sudo: apt-get: command not found
    hfdeMacBook-Pro:evogym luchang$ 
    hfdeMacBook-Pro:evogym luchang$ 
    hfdeMacBook-Pro:evogym luchang$ brew install cmake
    Running `brew update --auto-update`...
    ==> Auto-updated Homebrew!
    Updated 3 taps (heroku/brew, homebrew/cask and dart-lang/dart).
    ==> New Casks
    akiflow                         chipmunk                        onekey                          plugdata                        snapmaker-luban
    aptakube                        cisdem-duplicate-finder         pictureview                     random-mouse-clicker            tempbox
    arc                             diffusionbee                    pieces-cli                      readdle-spark                   whist-browser
    battery                         lunacy                          planet                          sanesidebuttons                 wolfram-engine
    
    You have 23 outdated formulae and 1 outdated cask installed.
    You can upgrade them with brew upgrade
    or list them with brew outdated.
    
    Warning: Treating cmake as a formula. For the cask, use homebrew/cask/cmake
    cmake 3.21.3_1 is already installed but outdated (so it will be upgraded).
    ==> Downloading https://ghcr.io/v2/homebrew/core/cmake/manifests/3.24.1
    ######################################################################## 100.0%
    ==> Downloading https://ghcr.io/v2/homebrew/core/cmake/blobs/sha256:d40d888e7ce0d4fa898bac4c8afb964c9a4fa3d7d9a4877fc7223a2ee3160e96
    ==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sha256:d40d888e7ce0d4fa898bac4c8afb964c9a4fa3d7d9a4877fc7223a2ee3160e96?se=2022-10
    ######################################################################## 100.0%
    ==> Upgrading cmake
      3.21.3_1 -> 3.24.1 
    
    ==> Pouring cmake--3.24.1.monterey.bottle.tar.gz
    ==> Caveats
    To install the CMake documentation, run:
      brew install cmake-docs
    
    Emacs Lisp files have been installed to:
      /usr/local/share/emacs/site-lisp/cmake
    ==> Summary
    🍺  /usr/local/Cellar/cmake/3.24.1: 3,106 files, 46.8MB
    ==> Running `brew cleanup cmake`...
    Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
    Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
    Removing: /usr/local/Cellar/cmake/3.21.3_1... (2,953 files, 42.9MB)
    Removing: /Users/luchang/Library/Caches/Homebrew/cmake--3.23.2... (15.3MB)
    ==> `brew cleanup` has not been run in the last 30 days, running now...
    Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
    Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
    Removing: /usr/local/Cellar/aom/3.1.2... (22 files, 12.5MB)
    Removing: /Users/luchang/Library/Caches/Homebrew/aom--3.3.0... (4.4MB)
    Removing: /Users/luchang/Library/Caches/Homebrew/c-ares--1.18.1_1... (158.4KB)
    Removing: /usr/local/Cellar/ca-certificates/2021-09-30... (3 files, 203.5KB)
    <--snip-->
    Removing: /usr/local/lib/python3.9/site-packages/__pycache__/texttable.cpython-39.pyc... (20.7KB)
    Removing: /usr/local/lib/python3.9/site-packages/__pycache__/threadpoolctl.cpython-39.pyc... (35.2KB)
    Removing: /usr/local/lib/python3.9/site-packages/__pycache__/typing_extensions.cpython-39.pyc... (82.9KB)
    Pruned 0 symbolic links and 4 directories from /usr/local
    hfdeMacBook-Pro:evogym luchang$ 
    hfdeMacBook-Pro:evogym luchang$ 
    hfdeMacBook-Pro:evogym luchang$ 
    hfdeMacBook-Pro:evogym luchang$ cmake /Users/luchang/evogym/evogym/simulator -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/Users/luchang/evogym/build/lib.macosx-11-x86_64-3.9/evogym -DPYTHON_EXECUTABLE=/usr/local/opt/[email protected]/bin/python3.9 -DCMAKE_BUILD_TYPE=Release
    -- The C compiler identification is AppleClang 14.0.0.14000029
    -- The CXX compiler identification is AppleClang 14.0.0.14000029
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc - skipped
    -- Detecting C compile features
    -- Detecting C compile features - done
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ - skipped
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    CMake Error at /usr/local/Cellar/cmake/3.24.1/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
      Could NOT find GLEW (missing: GLEW_INCLUDE_DIRS GLEW_LIBRARIES)
    Call Stack (most recent call first):
      /usr/local/Cellar/cmake/3.24.1/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
      /usr/local/Cellar/cmake/3.24.1/share/cmake/Modules/FindGLEW.cmake:215 (find_package_handle_standard_args)
      CMakeLists.txt:22 (find_package)
    
    
    -- Configuring incomplete, errors occurred!
    See also "/Users/luchang/evogym/CMakeFiles/CMakeOutput.log".
    See also "/Users/luchang/evogym/CMakeFiles/CMakeError.log".
    
    opened by TvoozMagnificent 1
  • Cannot run examples from PyCharm

    Cannot run examples from PyCharm

    I open evogym as project on my PyCharm 2019.2.4 (Professional) and mark the examples folder as Source Root. I then try to run the example python run_group_ppo.py --algo ppo --use-gae --lr 2.5e-4 --clip-param 0.1 --value-loss-coef 0.5 --num-processes 4 --num-steps 128 --num-mini-batch 4 --log-interval 100 --use-linear-lr-decay --entropy-coef 0.01 --eval-interval 50

    from PyCharm, but I get

    File "evogym/evogym/sim.py", line 11, in from evogym.simulator_cpp import Sim ModuleNotFoundError: No module named 'evogym.simulator_cpp'

    However, when running the command python run_group_ppo.py from terminal, the experiment runs. How do I adjust the project so to run in PyCharm (or any other IDE)? It would be helpful for debug purposes.

    opened by blmussati 1
  • Reshaping state information into grid

    Reshaping state information into grid

    I am interested in using horizontal/vertical stretches as evolvable operations, and therefore I would really like to process the state vector in a way that I can attribute to individual voxels rather than one big flat state vector. Is there a way to lay out the voxel portion of the state vector into a tensor that includes both dimensions of the robot shape? Specifically, from the paper:

    "Then the state information of the robot in our tasks is a (2N + 3)-D vector including the relative position of each voxel corner with respect to the center of mass of the robot (2N-D), and the velocity and orientation of center of mass (3-D)"

    I may be misunderstanding this, but (2N - D) + (3 - D) = (2N + 3) - 2D, rather than (2N - 3) - D as stated in the paper. I think this actually supposed to be (2N) and (3 - D), and I found a variable of size 2N stepping through the code with a debugger. However, it was not clear how to attribute each point to a particular voxel. Is there a way to transform this representation to vectors of corner, x_init_voxel_position, y_init_voxel_position, x_pos, y_pos

    opened by mhorton19 1
  • Pip subprocess error when creating conda env from .yml file

    Pip subprocess error when creating conda env from .yml file

    Hi, I was following the setup guidelines for a MacBook with macOS Monterey, Version 12.2 When running conda env create -f environment.yml

    I get Pip subprocess error: Running command git clone -q git://github.com/yunshengtian/neat-python /private/var/folders/_f/3z_0lgy91yz7w1mqx4tzk8qr0000gn/T/pip-req-build-umjmz1er fatal: remote error: The unauthenticated git protocol on port 9418 is no longer supported. Please see https://github.blog/2021-09-01-improving-git-protocol-security-github/ for more information. WARNING: Discarding git+git://github.com/yunshengtian/neat-python@2762ab630838520ca6c03a866e8a158f592b0370. Command errored out with exit status 128: git clone -q git://github.com/yunshengtian/neat-python /private/var/folders/_f/3z_0lgy91yz7w1mqx4tzk8qr0000gn/T/pip-req-build-umjmz1er Check the logs for full command output. ERROR: Command errored out with exit status 128: git clone -q git://github.com/yunshengtian/neat-python /private/var/folders/_f/3z_0lgy91yz7w1mqx4tzk8qr0000gn/T/pip-req-build-umjmz1er Check the logs for full command output. failed CondaEnvException: Pip failed

    I then tried conda activate evogym pip install -r requirements.txt

    getting Collecting GPyOpt@ git+git://github.com/yunshengtian/GPyOpt@5fc1188ffdefea9a3bc7964a9414d4922603e904 Cloning git://github.com/yunshengtian/GPyOpt (to revision 5fc1188ffdefea9a3bc7964a9414d4922603e904) to /private/var/folders/_f/3z_0lgy91yz7w1mqx4tzk8qr0000gn/T/pip-install-0d077qh5/gpyopt_09f8c8bdd15d45e38759e2efff937db9 Running command git clone -q git://github.com/yunshengtian/GPyOpt /private/var/folders/_f/3z_0lgy91yz7w1mqx4tzk8qr0000gn/T/pip-install-0d077qh5/gpyopt_09f8c8bdd15d45e38759e2efff937db9 fatal: remote error: The unauthenticated git protocol on port 9418 is no longer supported. AND Running command git clone -q git://github.com/yunshengtian/neat-python /private/var/folders/_f/3z_0lgy91yz7w1mqx4tzk8qr0000gn/T/pip-install-0d077qh5/neat-python_a7be629021284f1cad5c588bd7f09ac7 fatal: remote error: The unauthenticated git protocol on port 9418 is no longer supported.

    I think the issue is due to the new Git protocols security (https://github.blog/2021-09-01-improving-git-protocol-security-github/)

    There is also an issue with gpyopt versioning, as when running pip install -r requirements.txt I get ERROR: Could not find a version that satisfies the requirement gpyopt (unavailable) (from versions: 0.1.1, 0.1.2, 0.1.3, 0.1.4, 1.0.2, 1.0.3, 1.2.0, 1.2.1, 1.2.5, 1.2.6) ERROR: No matching distribution found for gpyopt (unavailable)

    opened by blmussati 0
  • missing tutorials

    missing tutorials

    The linked page https://evolutiongym.github.io/tutorials Is empty: there is no tutorial.

    I was unable to install on MacOS Monterey.

    python3 setup.py install running install error: can't create or remove files in install directory

    pip3 install -r requirements.txt Collecting GPy==1.10.0 Using cached GPy-1.10.0-cp39-cp39-macosx_10_9_x86_64.whl (1.5 MB) ERROR: Could not find a version that satisfies the requirement gpyopt (unavailable) (from versions: 0.1.1, 0.1.2, 0.1.3, 0.1.4, 1.0.2, 1.0.3, 1.2.0, 1.2.1, 1.2.5, 1.2.6) ERROR: No matching distribution found for gpyopt (unavailable)

    opened by nedelec 1
  • about observation and action vectors

    about observation and action vectors

    Hi all, I find the env simply outputs a vec of state observation and accepts action vec of actuators (mostly a subset of all voxels), while both of them (corner points and all voxels) are arrange in matrix format by default. So may I ask if anyone could please make it clear how are the two matrices converted into vectors? How do the 2-D coordinates correspond to vector indexes? Are they simply aligned from the top-left corner to down-right element like most of the cases in image processing treatments? I'll be very gratefull if anyone give me a hint, thanks in advance!

    opened by yyang8891 1
  • evogym + DI-engine

    evogym + DI-engine

    It's really a very nice project. I am tried of classic MuJoCo control tasks and soft robotics will be an attractive topic.

    I am the developer of DI-engine, looking for some interesting environments to apply advanced DRL algorithm into them. Are you willing to develop more examples and benchmark results together, or any other ideas?

    opened by PaParaZz1 1
  • Pip/Conda install error

    Pip/Conda install error

    Having the following issues trying to install one of the submodules :). Is it private/missing?

    $ pip install -r requirements.txt
    Collecting GPyOpt@ git+git://github.com/yunshengtian/GPyOpt@5fc1188ffdefea9a3bc7964a9414d4922603e904
      Cloning git://github.com/yunshengtian/GPyOpt (to revision 5fc1188ffdefea9a3bc7964a9414d4922603e904) to /tmp/pip-install-4qlsnhhh/gpyopt_ad9a723ba6aa450f823705c6b10c1588
      Running command git clone --filter=blob:none --quiet git://github.com/yunshengtian/GPyOpt /tmp/pip-install-4qlsnhhh/gpyopt_ad9a723ba6aa450f823705c6b10c1588
      fatal: unable to connect to github.com:
      github.com[0: 140.82.113.3]: errno=Connection timed out
    
      error: subprocess-exited-with-error
      
      × git clone --filter=blob:none --quiet git://github.com/yunshengtian/GPyOpt /tmp/pip-install-4qlsnhhh/gpyopt_ad9a723ba6aa450f823705c6b10c1588 did not run successfully.
      │ exit code: 128
      ╰─> See above for output.
      
      note: This error originates from a subprocess, and is likely not a problem with pip.
    error: subprocess-exited-with-error
    
    × git clone --filter=blob:none --quiet git://github.com/yunshengtian/GPyOpt /tmp/pip-install-4qlsnhhh/gpyopt_ad9a723ba6aa450f823705c6b10c1588 did not run successfully.
    │ exit code: 128
    ╰─> See above for output.
    
    note: This error originates from a subprocess, and is likely not a problem with pip.
    
    opened by aespielberg 1
  • compile error

    compile error

    I am using macOS on m1 chip, when I run the command "python setup.py install", it occurred error:" calling a private constructor of class 'Eigen::Ref<Eigen::Matrix<double, -1, -1, 0>, 0, Eigen::OuterStride<-1>>' return empty;"

    what should I do to fix the bug?

    opened by TypeFloat 3
Revisiting Video Saliency: A Large-scale Benchmark and a New Model (CVPR18, PAMI19)

DHF1K =========================================================================== Wenguan Wang, J. Shen, M.-M Cheng and A. Borji, Revisiting Video Sal

Wenguan Wang 126 Dec 3, 2022
Baseline model for "GraspNet-1Billion: A Large-Scale Benchmark for General Object Grasping" (CVPR 2020)

GraspNet Baseline Baseline model for "GraspNet-1Billion: A Large-Scale Benchmark for General Object Grasping" (CVPR 2020). [paper] [dataset] [API] [do

GraspNet 209 Dec 29, 2022
ManiSkill-Learn is a framework for training agents on SAPIEN Open-Source Manipulation Skill Challenge (ManiSkill Challenge), a large-scale learning-from-demonstrations benchmark for object manipulation.

ManiSkill-Learn ManiSkill-Learn is a framework for training agents on SAPIEN Open-Source Manipulation Skill Challenge, a large-scale learning-from-dem

Hao Su's Lab, UCSD 48 Dec 30, 2022
BigDetection: A Large-scale Benchmark for Improved Object Detector Pre-training

BigDetection: A Large-scale Benchmark for Improved Object Detector Pre-training By Likun Cai, Zhi Zhang, Yi Zhu, Li Zhang, Mu Li, Xiangyang Xue. This

null 290 Dec 29, 2022
A python script to convert images to animated sus among us crewmate twerk jifs as seen on r/196

img_sussifier A python script to convert images to animated sus among us crewmate twerk jifs as seen on r/196 Examples How to use install python pip i

null 41 Sep 30, 2022
Optimizing DR with hard negatives and achieving SOTA first-stage retrieval performance on TREC DL Track (SIGIR 2021 Full Paper).

Optimizing Dense Retrieval Model Training with Hard Negatives Jingtao Zhan, Jiaxin Mao, Yiqun Liu, Jiafeng Guo, Min Zhang, Shaoping Ma This repo provi

Jingtao Zhan 99 Dec 27, 2022
Official Implementation and Dataset of "PPR10K: A Large-Scale Portrait Photo Retouching Dataset with Human-Region Mask and Group-Level Consistency", CVPR 2021

Portrait Photo Retouching with PPR10K Paper | Supplementary Material PPR10K: A Large-Scale Portrait Photo Retouching Dataset with Human-Region Mask an

null 184 Dec 11, 2022
GeneDisco is a benchmark suite for evaluating active learning algorithms for experimental design in drug discovery.

GeneDisco is a benchmark suite for evaluating active learning algorithms for experimental design in drug discovery.

null 22 Dec 12, 2022
null 190 Jan 3, 2023
[ICLR 2021, Spotlight] Large Scale Image Completion via Co-Modulated Generative Adversarial Networks

Large Scale Image Completion via Co-Modulated Generative Adversarial Networks, ICLR 2021 (Spotlight) Demo | Paper [NEW!] Time to play with our interac

Shengyu Zhao 373 Jan 2, 2023
This repo contains the official code of our work SAM-SLR which won the CVPR 2021 Challenge on Large Scale Signer Independent Isolated Sign Language Recognition.

Skeleton Aware Multi-modal Sign Language Recognition By Songyao Jiang, Bin Sun, Lichen Wang, Yue Bai, Kunpeng Li and Yun Fu. Smile Lab @ Northeastern

Isen (Songyao Jiang) 128 Dec 8, 2022
DeepLM: Large-scale Nonlinear Least Squares on Deep Learning Frameworks using Stochastic Domain Decomposition (CVPR 2021)

DeepLM DeepLM: Large-scale Nonlinear Least Squares on Deep Learning Frameworks using Stochastic Domain Decomposition (CVPR 2021) Run Please install th

Jingwei Huang 130 Dec 2, 2022
O2O-Afford: Annotation-Free Large-Scale Object-Object Affordance Learning (CoRL 2021)

O2O-Afford: Annotation-Free Large-Scale Object-Object Affordance Learning Object-object Interaction Affordance Learning. For a given object-object int

Kaichun Mo 26 Nov 4, 2022
API for RL algorithm design & testing of BCA (Building Control Agent) HVAC on EnergyPlus building energy simulator by wrapping their EMS Python API

RL - EmsPy (work In Progress...) The EmsPy Python package was made to facilitate Reinforcement Learning (RL) algorithm research for developing and tes

null 20 Jan 5, 2023
Code to reproduce the experiments from our NeurIPS 2021 paper " The Limitations of Large Width in Neural Networks: A Deep Gaussian Process Perspective"

Code To run: python runner.py new --save <SAVE_NAME> --data <PATH_TO_DATA_DIR> --dataset <DATASET> --model <model_name> [options] --n 1000 - train - t

Geoff Pleiss 5 Dec 12, 2022
This GitHub repository contains code used for plots in NeurIPS 2021 paper 'Stochastic Multi-Armed Bandits with Control Variates.'

About Repository This repository contains code used for plots in NeurIPS 2021 paper 'Stochastic Multi-Armed Bandits with Control Variates.' About Code

Arun Verma 1 Nov 9, 2021
Official codebase for Legged Robots that Keep on Learning: Fine-Tuning Locomotion Policies in the Real World

Legged Robots that Keep on Learning Official codebase for Legged Robots that Keep on Learning: Fine-Tuning Locomotion Policies in the Real World, whic

Laura Smith 70 Dec 7, 2022
Manipulation OpenAI Gym environments to simulate robots at the STARS lab

Manipulator Learning This repository contains a set of manipulation environments that are compatible with OpenAI Gym and simulated in pybullet. In par

STARS Laboratory 5 Dec 8, 2022