Skip to content

Navigation Menu

Sign in
Sign up

Latest commit

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

From Seeing to Experiencing: Scaling Navigation Foundation Models with Reinforcement Learning

Static Badge Static Badge GitHub license

S2E is a robot learning framework for building visual navigation models โ€” pretrain on web videos with imitation learning, then finetune with reinforcement learning in URBAN-SIM. We provide a 3DGS-based navigation benchmark, a pretraining pipeline, an RL finetuning pipeline, and a model zoo with unified inference interfaces.

S2E Teaser

๐ŸŽฎ NavBench-GS: 3D-GS Benchmark for Visual Navigation

NavBench-GS

Hardware Recommendations

To ensure the best experience with URBAN-SIM, please review the following hardware guidelines:

  • Recommended Hardware:
    • OS: Ubuntu 22.04; 24.04.
    • GPU: Nvidia GPU with at least 16GB RAM and 12GB VRAM.
      • Tested GPUs: Nvidia RTX-4080, RTX-5080, RTX-5090, L40S.
    • Storage: Minimum of 50GB free space.

Installation

1. Install IsaacSim 5

# Clone the repository (includes third_party submodules)
git clone -b main --recurse-submodules https://github.com/VAIL-UCLA/S2E.git ~/S2E
cd ~/S2E
# If you already cloned without --recurse-submodules:
# git submodule update --init --recursive
# Install Isaacsim 5.x from github repo: https://github.com/isaac-sim/IsaacSim
suppose that you install it in:
# ${HOME}/IsaacSim/
and the builded software in:
# _build/linux-x86_64/release
Then try:
cd ~/S2E
ln -s ${HOME}/IsaacSim/_build/linux-x86_64/release ./_isaac_sim
# Isaac Sim root directory
export ISAACSIM_PATH="${HOME}/IsaacSim/_build/linux-x86_64/release"
# Isaac Sim python executable
export ISAACSIM_PYTHON_EXE="${ISAACSIM_PATH}/python.sh"
# note: you can pass the argument "--help" to see all arguments possible.
${ISAACSIM_PATH}/isaac-sim.sh

2. Install IsaacLab with extended features to support 3D-GS camera

# Bundled at third_party/isaaclab-extension
cd third_party/isaaclab-extension
# install the isaaclab following the doc

3. Install gsplat to support 3D-GS rendering

# Bundled at third_party/gsplat
pip install ninja numpy jaxtyping rich
cd third_party/gsplat
pip install -e . --no-build-isolation -v
# For the Vid2Sim rasterizer, use third_party/vid2sim-rasterizer-gsplat instead

4. Download 3D-GS scenarios from UCLA-VAIL/NavBenchGS

pip install -e NavbenchGS
python NavbenchGS/scripts/download_scenarios.py --output-dir data/NavBenchGS

After download, data/NavBenchGS/ is laid out as:

data/NavBenchGS/
โ”œโ”€โ”€ vid2sim_raw/ # Raw per-scene captures
โ”‚ โ”œโ”€โ”€ 0000/, 0001/, 0003/, ..., 0044/ # 4-digit scene IDs (non-contiguous)
โ”‚ โ”œโ”€โ”€ old-ped/ # Legacy pedestrian captures
โ”‚ โ”œโ”€โ”€ invalid_list.txt # Scene IDs to skip
โ”‚ โ””โ”€โ”€ upload.sh
โ”œโ”€โ”€ vid2sim_torch/ # PyTorch-formatted per-scene data
โ”‚ โ””โ”€โ”€ 0000/, 0001/, 0003/, ... # same scene IDs as vid2sim_raw
โ”œโ”€โ”€ vid2sim_starting_ending_position.json # Start/goal positions per scene
โ”œโ”€โ”€ gs.gif # Preview animation
โ””โ”€โ”€ README.md

Note: the dataset is gated โ€” accept the terms on HuggingFace and log in (huggingface-cli login or pass --token) before downloading.

5. Debug the robots (empty scene)

Unified waypoint-to-action debug for both robots โ€” pure-pursuit drives COCO (Ackermann) or Go2 (JIT locomotion policy):

# COCO โ€” Ackermann car on a circle
${ISAACSIM_PYTHON_EXE} NavbenchGS/scripts/run_waypoint_to_action.py --enable_cameras \
 --robot coco --trajectory circle --num_steps 3000
# Go2 โ€” JIT policy; defaults to robots/go2/unitree_go2_actor.pt
${ISAACSIM_PYTHON_EXE} NavbenchGS/scripts/run_waypoint_to_action.py --enable_cameras \
 --robot unitree_go2 --trajectory circle --forward_speed 0.6

Robot articulation configs and action terms live in NavbenchGS/navbench_gs/robots/ (coco.py, unitree_go2.py). USDs + Go2 policy ship under robots/.

6. Simulation with Isaac-Sim and Isaac-Lab (Please stay tuned!)

๐Ÿง  Model Zoo: Run the Pretrained Model

The web-pretrained S2E navigation model is released in the UCLA-VAIL/Navigation-Model-Zoo-Public model zoo โ€” exported to ONNX behind a unified inference interface (shared with GNM, ViNT, NoMaD, CityWalker, MBRA, and MIMIC).

โš ๏ธ Pretrained (BC) weights only. The released checkpoint is the behavior-cloning, web-pretrained model (the IL pretraining output), not the RL-finetuned policy from the paper. Use it as a navigation prior / BC baseline; RL-finetuned weights will be released separately.

1. Download the pretrained model

pip install -U "huggingface_hub[cli]"
hf download UCLA-VAIL/Navigation-Model-Zoo-Public --include "S2E/*" --local-dir ./nav_model_zoo

2. Run inference โ€” requires onnxruntime-gpu (or onnxruntime), numpy, torch, opencv-python, pyyaml:

import numpy as np
from S2E.inference import S2ENavigator # run from ./nav_model_zoo
nav = S2ENavigator(device="cuda") # device="cpu" if no GPU
# obs: the robot's last 11 RGB frames, (1, 11, 3, H, W) float32 in [0, 1]
obs = np.random.rand(1, 11, 3, 256, 256).astype(np.float32)
# point-goal in the standard frame (x = forward, y = left, meters)
traj, scores = nav.inference_trajectory(obs, goal_xy=np.array([5.0, 0.0])) # (1, 1, 10, 2) m
vw, best = nav.inference_vw(obs, goal_xy=np.array([5.0, 0.0])) # (1, 2) = [v, ฯ‰]
nav.reset() # clear PD smoothing between episodes

3. Drive a robot on NavBench-GS. S2ENavigator outputs local waypoints / (v, ฯ‰) in the same standard frame that NavBench-GS's waypointโ†’action layer consumes (pure-pursuit โ†’ Ackermann for COCO, or the Go2 locomotion policy), so the pretrained model plugs straight into the benchmark's control stack. Closed-loop, model-driven NavBench-GS rollouts are being released โ€” see the Release Timeline below.

๐Ÿ“š Pretraining with IL on Web Videos

๐Ÿš€ Finetuning with RL in Simulator

๐Ÿ“Œ TODOs

  • NavBench-GS
    • 3D-GS Scenarios
    • Benchmark engine
    • Benchmark detail settings
  • Pretraining framework and model zoo
  • Finetuning framework and trained weights

๐Ÿ’˜ Acknowledgement

The project can not be built without the following open-sourced projects:

๐Ÿ“Ž Citation

If you find S2E helpful for your research, please cite the following BibTeX entry.

@inproceedings{he2025seeing,
 title={From Seeing to Experiencing: Scaling Navigation Foundation Models with Reinforcement Learning},
 author={Honglin He and Yukai Ma and Brad Squicciarini and Wayne Wu and Bolei Zhou},
 booktitle={International Conference on Learning Representations},
 year={2026}
}

About

[ICLR 2026] From Seeing to Experiencing: Scaling Navigation Foundation Models with Reinforcement Learning

Resources

Stars

80 stars

Watchers

6 watching

Forks

Releases

Packages

Contributors

Languages

AltStyle ใซใ‚ˆใฃใฆๅค‰ๆ›ใ•ใ‚ŒใŸใƒšใƒผใ‚ธ (->ใ‚ชใƒชใ‚ธใƒŠใƒซ) /