This reposistory contains the code to train Hebbian networks on Omniverse Isaac Gym Reinforcement Learning Environments for Isaac Sim as described in our paper Bio-Inspired Plastic Neural Networks for Zero-Shot Out-of-Distribution Generalization in Complex Animal-Inspired Robots, 2025.
PLEASE NOTE: The version of OmniIsaacGymEnvs being used here is 4.0.0, which is the final release version of Isaac Gym.
It is recommended to have at least 32GB RAM and a GPU with at least 12GB VRAM.
Follow the Isaac Sim documentation to install the latest Isaac Sim release.
This repository has been tested on Isaac Sim version 4.0.0.
Once installed, this repository can be used as a python module, omniisaacgymenvs
, with the python executable provided in Isaac Sim.
To install omniisaacgymenvs
, first clone this repository:
git clone https://github.com/worasuch/BioInspiredPlasticNeuralNets.git
Once cloned, locate the python executable in Isaac Sim. By default, this should be python.sh
. We will refer to this path as PYTHON_PATH
.
To set a PYTHON_PATH
variable in the terminal that links to the python executable, we can run a command that resembles the following. Make sure to update the paths to your local path.
For Linux: alias PYTHON_PATH=~/.local/share/ov/pkg/isaac_sim-*/python.sh
For Windows: doskey PYTHON_PATH=C:\Users\user\AppData\Local\ov\pkg\isaac_sim-*\python.bat $*
For IsaacSim Docker: alias PYTHON_PATH=/isaac-sim/python.sh
Install omniisaacgymenvs
as a python module for PYTHON_PATH
:
PYTHON_PATH -m pip install -e .
The following error may appear during the initial installation. This error is harmless and can be ignored.
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
Finally, open the Isaac Sim GUI and import the robot model (e.g., gecko robot) to the following path:
omniverse://localhost/Projects/slalom/
The robot model is provided in this repository under: BioInspiredPlasticNeuralNets/omniisaacgymenvs/robots/models/
For example, the gecko-like robot model used is slalom_fixedbody_16dof.usd
Note: All commands should be executed from OmniIsaacGymEnvs/omniisaacgymenvs
.
To train gecko-like robot (named Slalom), run:
PYTHON_PATH scripts/es_train.py task=Slalom num_envs=10 test=False headless=False
An Isaac Sim app window should be launched. Once Isaac Sim initialization completes, the robot scene will be constructed and simulation will start running automatically. The process will terminate once training finishes.
To achieve maximum performance, launch training in headless
mode with a larger number of robot environments num_envs
as follows:
PYTHON_PATH scripts/es_train.py task=Slalom num_envs=1024 test=False headless=True
If you use the code for academic or commecial use, please cite the associated paper:
@misc{leung2025bioinspiredplasticneuralnetworks,
title={Bio-Inspired Plastic Neural Networks for Zero-Shot Out-of-Distribution Generalization in Complex Animal-Inspired Robots},
author={Binggwong Leung and Worasuchad Haomachai and Joachim Winther Pedersen and Sebastian Risi and Poramate Manoonpong},
year={2025},
eprint={2503.12406},
archivePrefix={arXiv},
primaryClass={cs.RO},
url={https://arxiv.org/abs/2503.12406},
}
For more information, please refer to Omniverse Isaac Gym Reinforcement Learning Environments for Isaac Sim