EDIT: The tutorial is now part of the official docs - Getting Started on Windows via WSL
So, this forum post won’t be updated anymore, but feel free to reply if you need help.
Howdy everyone, I spent some time setting up Monty and Habitat-Sim on WSL. I put together a complete tutorial based on my attempts, the TBP docs, and clues posted by other Windows users.
Let’s jump in:
-
Install WSL and Ubuntu, make sure to follow every step: Manual installation steps for older versions of WSL | Microsoft Learn
- Personally, I chose Ubuntu 24.04 LTS.
- The Linux filesystem can be accessed from Windows via the “Linux” section in the File Explorer, which points to this path:
\\wsl.localhost\Ubuntu-24.04\
-
From the Ubuntu terminal, install Miniconda:
mkdir -p ~/miniconda3 wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3 rm ~/miniconda3/miniconda.sh source ~/miniconda3/bin/activate conda init --all -
Prepare Monty;
-
Fork the repo, as explained in Getting Started
-
Clone the repo, adjusting
YOUR_GITHUB_USERNAMEaccordingly:git clone https://github.com/YOUR_GITHUB_USERNAME/tbp.monty ~/tbp -
Set up the conda environment, this will take a few minutes:
cd ~/tbp && conda tos accept && conda env create && conda init && \ conda activate tbp.monty -
(optional) Set Monty as the default conda environment:
conda config --set default_activation_env tbp.monty -
Install libopengl0 to allow Habitat-Sim to run:
sudo apt -y install libopengl0 -
Configure WSL to use the Windows GPU drivers:
echo "export GALLIUM_DRIVER=d3d12" >> ~/.bashrc && exec bash(Side-note: Don’t install Linux GPU drivers, you don’t need them, and in some cases they even cause problems)
-
-
Download Monty datasets;
-
python -m habitat_sim.utils.datasets_download --uids ycb --data-path ~/tbp/data/habitat -
mkdir -p ~/tbp/results/monty/pretrained_models/ && cd "$_" curl -L https://tbp-pretrained-models-public-c9c24aef2e49b897.s3.us-east-2.amazonaws.com/tbp.monty/pretrained_ycb_v10.tgz | tar --warning=no-unknown-keyword -xzf - -
(optional) Monty-Meets-World Datasets:
mkdir -p ~/tbp/data/ && cd "$_" curl -L https://tbp-data-public-5e789bd48e75350c.s3.us-east-2.amazonaws.com/tbp.monty/numenta_lab.tgz | tar --warning=no-unknown-keyword -xzf - curl -L https://tbp-data-public-5e789bd48e75350c.s3.us-east-2.amazonaws.com/tbp.monty/worldimages.tgz | tar --warning=no-unknown-keyword -xzf -
-
-
Prepare VS Code;
-
Install VS Code: Download Visual Studio Code - Mac, Linux, Windows
-
Install WSL extension: WSL - Visual Studio Marketplace
-
Install Python extension: Python - Visual Studio Marketplace
-
From Ubuntu, initialize the settings file for the repo:
mkdir -p ~/tbp/.vscode/ && echo '{ "python.defaultInterpreterPath": "~/miniconda3/envs/tbp.monty/bin/python", "python.testing.pytestEnabled": true, "python.testing.pytestArgs": ["tests"] }' > ~/tbp/.vscode/settings.json -
Still from Ubuntu, enter this to launch VS Code with Monty:
cd ~/tbp && code .
-
-
The final challenge, run unit tests and a benchmark;
-
If you followed all the previous steps, normally you should have VS Code open on the Monty project, ready to go. Try running the unit tests:
This will take some time, about 10 minutes on my 8-core i7-11700K:
-
Finally, let’s run a benchmark. You can do this in either the Ubuntu terminal or directly in the VS Code terminal. In the VS Code top menu, select Terminal > Open Terminal, then enter:
python benchmarks/run.py -e base_config_10distinctobj_dist_agentChoose option 3 - “Don’t visualize my results”
Took me a little over 5 minutes:
-
You’re now all set to start experimenting and contributing. If you encounter any errors, don’t hesitate to @ me.
Happy hacking!





