Installation Guide¶
This page describes the installation and configuration of the NavArena embodied navigation infrastructure. NavArena uses a uv workspace to manage four sub-projects: Core Library (navarena-core), Asset Preprocessing (navarena-forge), Data Generator (navarena-gen), and Evaluation Framework (navarena-bench).
System Requirements¶
Before starting, ensure your system meets the following requirements:
| Requirement | Version | Notes |
|---|---|---|
| Python | 3.9 | Pinned — numba/gsplat are Python-version sensitive |
| CUDA | ≥ 12.1 | 12.8 recommended (matches PyTorch 2.8) |
| GPU | NVIDIA (CUDA-capable) | Required for data generation and evaluation |
| OS | Linux | Ubuntu 20.04+ recommended |
| Conda | Miniforge recommended | Environment management |
| Node.js | ≥ 18 | Required for Web Viewer frontend (tested v25.2.1) |
| GCC/G++ | ≥ 7 | gsplat requires a C++ compiler |
| Git | Latest | For cloning repos and installing CLIP |
GPU Required
The Data Generator and Evaluation Framework require a CUDA-capable GPU. Ensure your system has the correct CUDA drivers installed.
Choosing an Installation Method¶
flowchart TD
Start[Choose installation method] --> Q1{Need exact reproduction?}
Q1 -->|Yes| Lock[Section 1: Quick Install\nUse environment.yml or requirements-lock.txt]
Q1 -->|No| Q2{Have uv installed?}
Q2 -->|Yes| UV[Section 2: uv workspace\nNote: Install PyTorch first]
Q2 -->|No| Lock Version Strategy¶
NavArena provides two primary installation paths for different needs:
| Tier | File | Use Case |
|---|---|---|
| Exact reproduction | requirements-lock.txt | 100% reproduce the verified environment |
| One-click setup | environment.yml | Quick setup with conda + pip |
1. Quick Install (Exact Reproduction)¶
Install from lock files to guarantee exact match with the verified environment:
# Create environment with Python 3.9 + Node.js + all pip packages
conda env create -f environment.yml
conda activate navarena
# Install core library in editable mode
pip install -e "navarena-core[rendering,export]"
# Optional: install CLIP (for semantic detection, requires GitHub access)
pip install git+https://github.com/ultralytics/CLIP.git
conda create -n navarena python=3.9 nodejs -c conda-forge -y
conda activate navarena
pip install -r requirements-lock.txt
# Install core library in editable mode
pip install -e "navarena-core[rendering,export]"
# Optional: install CLIP (for semantic detection, requires GitHub access)
pip install git+https://github.com/ultralytics/CLIP.git
About the lock file
requirements-lock.txt is an exact version snapshot exported from the verified environment (2026-03-03), containing PyTorch 2.8.0 + CUDA 12.8. The file header documents the generation date and environment info. CLIP has been separated into its own install step (requires cloning from GitHub, which can be unreliable in some network environments).
environment.yml and navarena-core
Both Option A and Option B install pip packages from a lock file, but navarena-core must be installed in editable mode separately because it is a local workspace package. The pip install -e "navarena-core[rendering,export]" step is required for all Quick Install methods.
2. Install via uv Workspace¶
If you have uv installed, use workspace mode to install all sub-projects at once:
Prerequisite: Install PyTorch First
uv workspace mode does not handle CUDA-specific index URLs. You must install PyTorch with pip in this environment first (commands below) before running uv sync. Otherwise, uv will install CPU-only PyTorch.
# Tested: torch==2.8.0+cu128, torchvision==0.23.0
pip install "torch>=2.8.0,<3.0" "torchvision>=0.23.0,<1.0" \
--index-url https://download.pytorch.org/whl/cu128
CUDA Versions
The command above installs PyTorch for CUDA 12.8. For other CUDA versions, replace cu128 with the corresponding version (e.g., cu121, cu124) and ensure your system CUDA driver is compatible.
cd NavArena
# Install uv (if not installed)
curl -LsSf https://astral.sh/uv/install.sh | sh
uv sync --all-packages
# Or use Makefile
make install
uv vs pip
uv workspace mode automatically resolves inter-project dependencies. After PyTorch is installed, uv sync will install the remaining packages.
3. Data and Environment Variables¶
3.1 Set NAVARENA_DATA_DIR¶
NavArena uses NAVARENA_DATA_DIR as the unified data root directory:
# Copy environment template
cp .env.example .env
# Edit .env to set data directory
# NAVARENA_DATA_DIR=/path/to/your/navarena-data-root
Or set the environment variable directly:
3.2 Data Directory Structure¶
NAVARENA_DATA_DIR should contain the following subdirectories (symlinks are fine):
$NAVARENA_DATA_DIR/
├── assets/ # 3DGS scene assets (PLY files, occupancy grids, etc.)
│ ├── x2robot/
│ │ └── 17dc3367/
│ └── sage-3d/
│ └── 00666b7a/
├── datasets/ # Generated datasets (Parquet format)
└── shared/ # Shared resources
├── camera.yaml # Camera configuration
└── visualnav-transformer/ # ViNT model weights (optional)
3.3 CUDA Setup¶
Ensure CUDA environment variables are correctly set:
export CUDA_HOME=/usr/local/cuda
export PATH=$CUDA_HOME/bin:$PATH
export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH
4. Verify Installation¶
4.1 Python Package Import Test¶
python -c "
import torch
print(f'PyTorch: {torch.__version__}')
print(f'CUDA available: {torch.cuda.is_available()}')
print(f'CUDA version: {torch.version.cuda}')
import navarena_core
print(f'navarena-core: OK')
import gsplat
print(f'gsplat: OK')
import open3d
print(f'open3d: {open3d.__version__}')
import duckdb
print(f'duckdb: {duckdb.__version__}')
"
Expected output (versions may vary slightly depending on installation method):
PyTorch: 2.8.0+cu128
CUDA available: True
CUDA version: 12.8
navarena-core: OK
gsplat: OK
open3d: 0.19.0
duckdb: 1.4.4
4.2 Run Examples¶
Run the following from the NavArena repository root with NAVARENA_DATA_DIR set:
# Data generator help
python navarena-gen/scripts/generate_data.py --help
# Generate PointNav data (example)
python navarena-gen/scripts/generate_data.py --config navarena-gen/configs/examples/pointnav_example.yaml
# Launch Web Viewer (data dir from env or via --data-dir)
python navarena-gen/scripts/run_viewer.py --data-dir $NAVARENA_DATA_DIR
# Open http://localhost:5173 in your browser
5. FAQ¶
Next Steps
After installation, continue reading:
- Quickstart - Learn how to use all modules
- Data Generator Overview - Deep dive into the data generation workflow
- Evaluation Framework Overview - Learn about the evaluation framework architecture