README.md
June 5, 2026 Β· View on GitHub
AMB3R: Accurate Feed-forward Metric-scale
3D Reconstruction with Backend
Paper | Project Page
Installation | Base Model | SLAM | SfM | Benchmark | Training
@article{wang2025amb3r,
title={AMB3R: Accurate Feed-forward Metric-scale 3D Reconstruction with Backend},
author={Wang, Hengyi and Agapito, Lourdes},
journal={arXiv preprint arXiv:2511.20343},
year={2025}
}
π Latest Updates
- [2026-06-05] Add DΓ©jΓ View for benchmark and support DΓ©jΓ View for AMB3R-VO/SfM
- [2026-05-16] Add VGGT-Omega for benchmark and support VGGT-Omega for AMB3R-VO/SfM
- [2026-05-09] Add code for visualization.
- [2026-05-08] Add training code for metric-scale estimation.
- [2026-03-09] Add training code for AMB3R.
- [2026-03-02] Add DepthAnything 3 for benchmark and support AMB3R-VO (DA3).
- [2026-02-28] π We have officially released the code for AMB3R Benchmark.
- [2026-02-24] πΊοΈ We have officially released the code for AMB3R-SfM.
- [2026-02-21] ποΈ We have officially released the code for AMB3R-VO.
- [2026-02-21] π― We have officially released the code for AMB3R (Base model).
π TODOs / Upcoming
- support of various foundation models for AMB3R-VO and AMB3R-SfM
Installation
1. Clone the repository
git clone https://github.com/HengyiWang/amb3r.git
cd amb3r
2. Create a Conda environment
conda create -n amb3r python=3.9 cmake=3.14.0 -y
conda activate amb3r
pip install torch==2.5.0 torchvision==0.20.0 torchaudio==2.5.0 --index-url https://download.pytorch.org/whl/cu118
pip install torch-scatter==2.1.2 -f https://data.pyg.org/whl/torch-2.5.0+cu118.html
pip install "git+https://github.com/facebookresearch/pytorch3d.git@V0.7.8" --no-build-isolation
pip install flash-attn==2.7.3 --no-build-isolation
pip install -r requirements.txt
3. Download weights
Download our checkpoint and place it under ./checkpoints/.
π― AMB3R (Base model)
Usage
Run the interactive demo with the following command:
python demo.py
Controls:
0/1: Disable (w/o) / Enable (w/) backendβ/β: Decrease / Increase confidence threshold by0.01β/β: Decrease / Increase confidence threshold by0.1E: Enable sky & edge maskB: Switch background color
ποΈ SLAM (AMB3R-VO)
Usage
Run the AMB3R-VO pipeline with:
python slam/run.py --data_path <path-to-video-folder>
Custom Base Model
Our AMB3R-VO framework is a general framework that is compatible with any base model that produces pointmap, camera pose, and confidence. All you need to do is to add this function to your base model and plug it into our amb3r-vo pipeline pipeline = AMB3R_VO(model):
def run_amb3r_vo(self, frames, cfg, keyframe_memory=None):
"""
This function runs the AMB3R-VO with your own base model.
"""
images = frames['images'] # (B, T, C, H, W) in [-1, 1]
# Run your own base model to get pointmap, pose, and confidence
pointmap, pose, confidence = self.forward(images)
return {
'world_points': pointmap, # (B, nimgs, H, W, 3)
'world_points_conf': confidence, # (B, nimgs, H, W, 1)
'pose': pose, # (B, nimgs, 4, 4)
}
πΊοΈ SfM (AMB3R-SfM)
Usage
Run the AMB3R-SfM pipeline with:
python sfm/run.py --data_path <path-to-video-folder>
Custom Base Model
Our AMB3R-SfM framework is also a general framework that is compatible with any base model that produces pointmap, camera pose, and confidence. All you need to do is to add this function to your base model and plug it into our amb3r-sfm pipeline pipeline = AMB3R_SfM(model):
def run_amb3r_sfm(self, frames, cfg, keyframe_memory=None, benchmark_conf0=None):
"""
This function runs the AMB3R-SfM with your own base model.
"""
images = frames['images'] # (B, T, C, H, W) in [-1, 1]
# Run your own base model to get pointmap, pose, and confidence
pointmap, pose, confidence = self.forward(images)
return {
'world_points': pointmap, # (B, nimgs, H, W, 3)
'world_points_conf': confidence, # (B, nimgs, H, W, 1)
'pose': pose, # (B, nimgs, 4, 4)
}
π Benchmark
Please refer to benchmark/README.md for the benchmark details.
π Training
Please refer to docs/train.md for the training details.
Visualizer
Your can use visualizer.ipynb to load .npz from AMB3R-VO/SfM to create the video as in our project page.
Controls:
- C : Place a new camera
- Z : Undo last camera
- L : loop the first and last camera
- P : Play the preview
- Q : Quit and render the sequence
Acknowledgement
Our code, data preprocessing pipeline, and evaluation scripts are built upon several amazing open-source projects:
- Models: VGGT, Pointcept, Spann3R, DUSt3R, MoGe, CroCo
- Evaluation: Marigold, Diffusion-E2E, RMVD, MVSA, visloc_pseudo_gt, FVS
We sincerely thank the authors for their open-source contributions!
The research presented here has been supported by a sponsored research award from Cisco Research and the UCL Centre for Doctoral Training in Foundational AI under UKRI grant number EP/S021566/1. This project made use of time on computing resources from UKRI/EPSRC AI Hub in Generative Models [grant number EP/Y028805/1].
Citation
If you find our code, data, or paper useful, please consider citing:
@article{wang2025amb3r,
title={AMB3R: Accurate Feed-forward Metric-scale 3D Reconstruction with Backend},
author={Wang, Hengyi and Agapito, Lourdes},
journal={arXiv preprint arXiv:2511.20343},
year={2025}
}