Xiangyu Sun1,
Liu Liu2, Seungkwon Yang3, Jingbing Han2,
Seungtae Nam3, Zhizhong Su2,
Eunbyung Park3
1Sungkyunkwan University,
2Horizon Robotics,
3Yonsei University
The pose-free framework for feed-forward 3D reconstruction. Our method effectively suppresses the pose drift problem, especially in long-sequences.
Please clone this project with --recursive first.
Then create the environment (example using conda).
conda create -y -n nodrift3r python=3.10
conda activate nodrift3r
pip install torch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 --index-url https://download.pytorch.org/whl/cu118
pip install -r requirements.txt
We provide two versions of checkpoints on 🤗 Hugging Face.
- Single dataset version:
- Large Model and Giant Model trained on the dl3dv dataset.
- Mixed dataset version for zero-shot generalization:
- Large Model and Giant Model trained on the seven mixed dataset, same as E-Rayzer.
Please download datasets from DL3DV and RE10k.
For mipnerf360 datasets, please download it from Mip-NeRF 360.
To train the giant model on the DL3DV dataset:
python3 -m src.main \
+experiment=dl3dv \
wandb.mode=offline \
wandb.name=dl3dv \
tensorboard.enable=true \
model.encoder.model_type='giant'
To train the large model on the DL3DV dataset:
python3 -m src.main \
+experiment=dl3dv \
wandb.mode=offline \
wandb.name=dl3dv \
tensorboard.enable=true \
model.encoder.model_type='large'
We provide pre-trained weights for NoDrift3R-DL3DV and NoDrift3R-mixed-dataset on Hugging Face.
To evaluate NoDrift3R on the DL3DV dataset:
CUDA_VISIBLE_DEVICES=$gpu_id python3 -m src.main \
+experiment=dl3dv \
mode=test \
wandb.name=dl3dv \
wandb.mode=offline \
dataset/view_sampler@dataset.dl3dv.view_sampler=evaluation \
dataset.dl3dv.view_sampler.index_path=assets/dl3dv_start_0_distance_150_ctx_24v_tgt_8v.json \
dataset.dl3dv.view_sampler.num_context_views=24 \
checkpointing.load=$ckpt_dl3dv \
test.save_image=false \
test.align_pose=true \
test.pose_align_steps=100 \
test.no_pose=true
To evaluate NoDrift3R on the zero-shot MipNeRF360 dataset
CUDA_VISIBLE_DEVICES=$gpu_id python3 -m src.main \
+experiment=mipnerf360 \
model.encoder.model_type=giant \
mode=test \
wandb.name=mipnerf360 \
wandb.mode=offline \
checkpointing.load=$ckpt_mix_dataset \
test.save_image=false \
test.align_pose=true \
test.pose_align_steps=100 \
test.no_pose=true \
test.save_mip360_video=false
This work is built on follow amazing research works, thanks a lot to all the authors for sharing!
If you find our work useful, please consider giving a star ⭐ and citing the following paper 📝.
@misc{sun2026nodrift3rraymapguidedcouplingdriftrobust,
title={NoDrift3R: Raymap-Guided Coupling for Drift-Robust Unposed Feed-Forward 3D Reconstruction},
author={Xiangyu Sun and Liu Liu and Seungkwon Yang and Jingbing Han and Seungtae Nam and Zhizhong Su and Eunbyung Park},
year={2026},
eprint={2607.07168},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2607.07168},
}