Blazing fast multirotor simulator with event camera support. Pythonic and real-time.
Quick Start: If you only need a fast CUDA event simulator, we've made it standalone. Learn how to use our optimized event simulator at grasp-lyrl/neurosim_cu_esim.
📚 Detailed documentation coming soon!
Docker provides a consistent environment with all dependencies pre-configured, including CUDA, ROS2 Humble, and ZMQ libraries.
- Docker with NVIDIA GPU support (nvidia-docker)
- NVIDIA drivers installed on host (nvcc 12.9+)
# Clone the repository
git clone https://github.com/grasp-lyrl/neurosim.git
cd neurosim
# Build the Docker image (takes ~15-20 minutes)
bash docker/build.sh# Launch the container with GPU and display support
bash docker/run.shThis will:
- Mount the current directory to
/home/${USER}/neurosiminside the container - Enable GPU access with all CUDA capabilities
- Forward X11 display for GUI applications
- Set up shared networking and IPC
# Navigate to the workspace
cd neurosim
# Create and activate conda environment
conda create -n neurosim python=3.10 cmake=3.14.0 pip==25.1.1 -y
conda activate neurosim
# Install neurosim
pip install -e . -v
# Download example scenes
python -m habitat_sim.utils.datasets_download --uids habitat_test_scenes --data-path data/
# Run the simulator
python test_sim.py --settings configs/skokloster-castle-settings.yaml --display --world_rate 750- OS: Ubuntu 22.04/24.04 (tested)
- Compiler: GCC 11.4.0+
- CMake: 3.14.0+
- CUDA: 12.2 / 12.4 / 12.6 / 12.9 / 13.0 (tested)
- Python: 3.10
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
libjpeg-dev libglm-dev libgl1-mesa-glx libegl1-mesa-dev \
mesa-utils xorg-dev freeglut3-dev# Create conda environment
conda create -n neurosim python=3.10 cmake=3.14.0 pip==25.1.1 -y
conda activate neurosim
# Install neurosim in editable mode
pip install -e . -vpython -m habitat_sim.utils.datasets_download --uids habitat_test_scenes --data-path data/python test_sim.py --settings configs/skokloster-castle-settings.yaml --display --world_rate 750-
If compilation crashes due to high memory usage or CPU load, manually set
self.parallel=4insidesetup.pyto limit parallel jobs. -
pip==25.3breaks installation due to changes in the build isolation process. Usepip==25.1.1as specified.
If you use this code in your research, please cite:
@misc{das2026neurosim,
title={Neurosim: A Fast Simulator for Neuromorphic Robot Perception},
author={Richeek Das and Pratik Chaudhari},
year={2026},
eprint={2602.15018},
archivePrefix={arXiv},
primaryClass={cs.RO},
url={https://arxiv.org/abs/2602.15018},
}Please report any bugs or feature requests on GitHub issues. Pull requests are very welcome!
Apache 2.0 License - see the LICENSE file for details.
This project is enabled by the following amazing open-source projects:
Picture credits: @ongdexter, Gemini 3

