Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

10 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

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

75 stars

Watchers

5 watching

Forks

Releases

Packages

Contributors

Languages