English | ็ฎไฝไธญๆ
Jinkai Zhang1 ยท
Jingyi Xu1 ยท
Yuanhong Yu1 ยท
Jiarui Guo1 ยท
Ruizhen Hu2 ยท
Hujun Bao1 ยท
Xiaowei Zhou1 ยท
Sida Peng1,3โ
1 Zhejiang University ย ย 2 Shenzhen University ย ย 3 Causa Robotics
โ Corresponding author
overview.mp4
[2026-10] ๐ The InteriorGS ObjectNav and Multi-ObjectNav test episodes (150 each, with reference trajectories) are released in HabitatGS-Benchmark. See the benchmark guide for data and evaluation.
Download the original scene data from InteriorGS.
The public habitat_gs/objectnav/v1 files need conversion before supernav run.
See the SuperNav GS workflow for conversion,
running, primitive-trace export and SR/SPL plus SR1โSR5 scoring.
SuperNav is an agentic navigation system that uses a pretrained multimodal model to solve diverse navigation tasks through tool use, task-progress tracking, and context management, without navigation-specific fine-tuning of the model. Tasks range from finding a single object and visiting multiple targets to fulfilling high-level requests.
This repository provides the agent runtime, navigation tools and Skills, experiment recipes, and evaluation utilities for Habitat-GS and AI2-THOR. With SuperNav, you can:
- Run navigation agents with Codex, OpenCode, or Kimi.
- Compose tasks, tools, and Skills through explicit experiment configurations.
- Watch execution live, including RGB observations, trajectories, and tool calls.
- Inspect and evaluate runs using saved prompts, tool results, native logs, and independent task metrics.
See the project page for simulation videos, the method overview, and research results. Real-world robot demonstrations are on the project page; this repository currently contains no real-robot drivers.
- Agent runtime, navigation tools and Skills, experiment recipes, and evaluation
- Learned Executor weights (Hugging Face)
- InteriorGS single/multi-object navigation benchmark (HabitatGS-Benchmark)
- AI2-THOR demand-driven navigation benchmark
- Real-robot deployment (Unitree Go2): four-view RGB with LiDAR-based geometric execution
- Release Status
- Installation
- Quick Start
- Run Navigation Experiments
- Visualization and Evaluation
- Documentation and Development
- Citation
- Acknowledgements and License
Use Python 3.12. Start with an independent environment for SuperNav:
git clone https://github.com/zju3dv/SuperNav.git
cd SuperNav
python3.12 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -e .The base installation supports configuration inspection, Habitat dry-runs, and the browser demo. Install the extras needed for your workflow:
| Workflow | Install command |
|---|---|
| Agents and evaluation | python -m pip install -e '.[agents,evaluation]' |
| AI2-THOR experiments | python -m pip install -e '.[ai2thor,agents,evaluation]' |
| Rerun viewer | python -m pip install -e '.[viewer]' |
For Codex, OpenCode, or Kimi runs, install and authenticate the selected CLI
separately. Shared Codex recipes use the client's configured provider and login;
all bundled recipes use gpt-6-astra with medium reasoning from
configs/models/gpt-6-astra-medium.json.
Keep credentials in environment variables or local client configuration.
API clients select a provider through agents.<client>.provider in a local
experiment configuration. Credentials use the environment variable named by
env_key; see the configuration guide.
For Habitat, use the Habitat setup guide to install the public CUDA-enabled SDK in a dedicated environment. A bridge health response confirms server startup; RGB/depth, motion, session close, and independent GT scoring require a real episode.
Start the built-in browser demo:
supernav web --demoOpen http://127.0.0.1:8765 to explore a generated room and sample trajectory. The demo is included in the base installation. Press Ctrl+C to stop it before continuing, or use another terminal.
Before running an experiment, prepare these three inputs yourself:
- Data: scene assets and datasets for the selected simulator.
- Configuration: local data paths, simulator environment, model access, and
any services required by the selected method. Adapt the example recipes in
configs/experiments/to your setup. - Instructions: a task manifest containing your requests and matching scene, spawn, and goal information.
SuperNav provides the code, general prompts, and configuration templates. Supply matching ground truth when required for scoring or by the selected method. Task lists and ground truth are distributed separately from the source package; the public GS release and its adapter are described in the GS benchmark guide.
Inspect the example experiment configurations:
supernav --help
supernav config list
supernav config show --experiment habitat-geo-based-executorAfter preparing your configuration and task manifest, replace example-task
below with a task_id from your manifest, then prepare a dry-run:
supernav run --experiment habitat-geo-based-executor \
--instructions /path/to/tasks/habitat.json \
--task-ids example-task \
--arms default --dry-run \
--output-dir data/runs/quickstart-drysupernav and python -m supernav expose the same command tree. Runs require
an explicit --experiment or --config selection.
Install the agent dependencies, then follow the Habitat setup guide to install Habitat-GS and the same SuperNav version in the simulator environment. The agent and simulator may use separate Python environments.
python -m pip install -e '.[agents,evaluation]'
export SUPERNAV_HABITAT_PYTHON=/path/to/habitat-env/bin/python
export SUPERNAV_SCENE_DATASET_CONFIG=/path/to/global_navigation.scene_dataset_config.json
supernav run --experiment habitat-geo-based-executor \
--instructions /path/to/tasks/habitat.json \
--task-ids example-task \
--arms default --model gpt-6-astra \
--output-dir data/runs/quickstartReplace the paths with your installation. The recipe supplies medium reasoning
for gpt-6-astra. The task manifest supplies the scene and spawn. The selected
method uses visual-point navigation with native global and local navigation Skills.
SuperNav starts and stops the Habitat bridge for each episode.
Use separate output directories for dry-runs and real runs. Existing episode
directories are skipped by default; choose a new directory or --run-tag for
another run.
Example recipes in configs/experiments combine reusable
agent, model, backend, and method settings. Adapt a recipe to your setup and
supply your own data and instructions:
| Experiment | Purpose |
|---|---|
habitat-geo-based-executor |
Habitat navigation with a geometry-based executor and native Skills |
habitat-learned-executor |
Habitat navigation with a learned local policy and native Skills |
ai2thor-primitive |
AI2-THOR demand-driven navigation with primitive actions |
Learned Executor weights are available on Hugging Face. Download the checkpoint and verify its checksum:
python -m pip install -U huggingface_hub
hf download the0xka1/SuperNav-Learned-Executor \
ckpt_latest125.pt CHECKSUMS.sha256 --local-dir /path/to/checkpoints
(cd /path/to/checkpoints && sha256sum -c CHECKSUMS.sha256)Replace /path/to/checkpoints with your download directory. Before running
habitat-learned-executor, follow the
policy service setup
to load the checkpoint with the nomad backend and set NAV_LOCALNAV_URL.
Scene assets and task instructions are separate requirements.
Each recipe has one default arm; omit --arms or use --arms default.
Use --task-ids and --reps to select tasks and repetitions. The geometry-based
executor uses oracle geometry, including depth and NavMesh paths; account for
this information when comparing methods.
Keep machine-specific settings in ignored configs/local/ files. For example,
create configs/local/habitat.json to select your task manifest and customize a recipe:
{
"extends": "../experiments/habitat-geo-based-executor.json",
"instructions_file": "/path/to/tasks/habitat.json",
"model": {"name": "gpt-6-astra"},
"deployment": {
"scene_dataset_config_file": "${SUPERNAV_SCENE_DATASET_CONFIG}"
},
"output_dir": "data/runs/habitat"
}supernav config show --config configs/local/habitat.json
supernav run --config configs/local/habitat.json \
--task-ids example-task --arms defaultSee the configuration guide for composition rules, model selection, and external dataset path mappings. Each recipe declares its prompt directory explicitly.
HM3D uses the same Habitat executor recipes. First complete the HM3D v2 / OVON setup guide to install the agent and simulator environments and obtain the v0.2 scene assets and ObjectNav v2 episodes. Scenes and episodes are separate downloads. Run the following commands from the repository root with your own absolute paths:
export SUPERNAV_HABITAT_PYTHON=/path/to/habitat-env/bin/python
export SUPERNAV_HM3D_SCENES_ROOT=/path/to/scene_datasets/hm3d
export SUPERNAV_SCENE_DATASET_CONFIG="$SUPERNAV_HM3D_SCENES_ROOT/hm3d_annotated_basis.scene_dataset_config.json"
export SUPERNAV_EPISODES_ROOT=/path/to/objectnav_hm3d_v2
export SUPERNAV_WORK_DIR=/path/to/storage/supernav-hm3d-quickstart
supernav prepare objectnav \
--episodes-root "$SUPERNAV_EPISODES_ROOT" --split val \
--scene-dataset-config "$SUPERNAV_SCENE_DATASET_CONFIG" \
--sensor-height 1.25 --max-episodes 1 \
--template-config configs/experiments/habitat-geo-based-executor.json \
--instructions-dir "$SUPERNAV_WORK_DIR/tasks" \
--config-dir "$SUPERNAV_WORK_DIR/configs"
python - <<'PY'
import json
import os
from pathlib import Path
work = Path(os.environ["SUPERNAV_WORK_DIR"])
config = {
"extends": str(work / "configs/hm3d-val-localnav.json"),
"output_dir": str(work / "runs"),
"visuals_root": str(work / "visuals"),
}
(work / "configs/run.json").write_text(json.dumps(config, indent=2) + "\n")
PY
supernav run --config "$SUPERNAV_WORK_DIR/configs/run.json" \
--sweep-id quickstart-dry --dry-run \
--output-dir "$SUPERNAV_WORK_DIR/dry-run"
supernav run --config "$SUPERNAV_WORK_DIR/configs/run.json" \
--sweep-id quickstart --arms defaultThis prepares and runs one episode. If only some scenes are installed, add
--scenes <scene-hash> to preparation. To prepare the full split, remove
--max-episodes 1 and use a new work directory. Preparation retains the dataset
NavMesh; keep the original episode files available for offline scoring.
After the real run, calculate SR and SPL from its saved task snapshot and trajectory. This example requires STOP and a viewpoint geodesic distance strictly below 0.2 m; set the threshold explicitly for the evaluation protocol you use:
"$SUPERNAV_HABITAT_PYTHON" -m supernav score-objectnav \
--runs-root "$SUPERNAV_WORK_DIR/runs" \
--instructions "$SUPERNAV_WORK_DIR/runs/_sweeps/quickstart/instructions.resolved.json" \
--scenes-root "$SUPERNAV_HM3D_SCENES_ROOT" \
--visuals-root "$SUPERNAV_WORK_DIR/visuals" \
--criterion viewpoint_geodesic --success-distance 0.2 \
--l-source viewpoint_geodesic \
--out-json "$SUPERNAV_WORK_DIR/score-geodesic.json" \
--out-md "$SUPERNAV_WORK_DIR/score-geodesic.md"For HM3D-OVON, use supernav prepare ovon with the external selection
manifest, then follow the same run and scoring workflow. The
full guide includes OVON preparation commands,
data download links, task selection, batch runs, and Learned Executor setup.
After preparing the dataset and Unity build described in the AI2-THOR guide:
python -m pip install -e '.[ai2thor,agents,evaluation]'
export SUPERNAV_AI2THOR_DATASET=/path/to/frozen-demand-driven-dataset
export SUPERNAV_AI2THOR_RELEASES=/path/to/ai2thor/releases
supernav run --experiment ai2thor-primitive \
--instructions /path/to/tasks/ai2thor.json \
--task-ids example-task \
--model gpt-6-astra \
--output-dir data/runs/ai2thor-exampleUse a task ID and matching request text from your external dataset.
This backend records actions, resource claims, and STOP events. Its current
evaluation mode is withheld: SR and SPL remain null.
To watch a real run, set the same absolute live directory in both the viewer terminal and the experiment terminal before starting either process:
export SUPERNAV_LIVE_DIR="$PWD/data/nav_artifacts/live"Start the viewer in one terminal, then run an experiment in the other:
supernav web --live-dir "$SUPERNAV_LIVE_DIR" --runs-root data/runsThe viewer shows observations, trajectories, and recorded agent/tool activity. See the viewer guide for remote access and existing recordings.
Runs save configuration and task snapshots, prompts, raw agent logs, tool events,
and metrics under data/runs/ or the selected output directory. Inspect the
evaluation and export commands with:
supernav score-objectnav --help
supernav score-multi-objectnav --help
supernav prepare habitatgs --help
supernav export-habitatgs --help
supernav score-habitatgs --help
supernav aggregate --help
supernav video --helpCompute SR/SPL with the task's offline scorer and ground truth. Agent completion claims, STOP events, and process status are recorded separately.
All release guides are available in English and ็ฎไฝไธญๆ.
| Guide | Contents |
|---|---|
| Configuration | Experiments, models, local settings, and task manifests |
| Scene assets and Skills | Backend requirements, external assets, and navigation Skills |
| Habitat-GS | Simulator installation and scene integration |
| HabitatGS-Benchmark | Public GS dataset conversion, navigation, SR/SPL and stage SR |
| HM3D v2 and OVON | Scene and episode data, task preparation, navigation, and offline scoring |
| AI2-THOR | Dataset, Unity build, observations, and execution |
| Web viewer | Live observation and recorded runs |
| Architecture | Runtime, methods, backends, experiments, and evaluation |
| Directory layout | Source, configuration, asset, and output locations |
For development:
python -m pip install -e '.[test]'
python -m pytest -qCI builds a wheel and checks its CLI, configuration, prompt, and Skill resources in a clean environment with only the base dependencies.
If you find SuperNav useful in your research, please cite our paper:
@misc{zhang2026supernav,
title={{SuperNav}: An Agentic Navigation System for Any Task in Any Scene},
author={Jinkai Zhang and Jingyi Xu and Yuanhong Yu and Jiarui Guo and Ruizhen Hu and Hujun Bao and Xiaowei Zhou and Sida Peng},
year={2026},
eprint={2610.12126},
archivePrefix={arXiv},
primaryClass={cs.RO},
url={https://arxiv.org/abs/2610.12126v1}
}SuperNav uses Habitat-GS, Habitat-Sim, and AI2-THOR as simulator foundations. We thank their authors and the contributors to the datasets and tools used in this project.
SuperNav is distributed under the Project Registration License (PRL) v1.0. Use solely for academic research, education, evaluation, or personal purposes is free and does not require registration, including publication of research results.
Organizational project use is free but requires registration before use, including commercial and non-commercial projects, internal R&D, testing, deployment, and production. Complete and accurate registration automatically grants permission; no approval or fee is required. Register each materially distinct project once.
Project use registration: Google Forms.
Third-party code and bundled fonts retain their original licenses and copyright notices; see Third-party notices. External simulators, datasets, and model weights retain their respective licenses.