├── .gitignore ├── README.md └── media ├── 7scenes_office.mp4 ├── 7scenes_office.png ├── 7scenes_redkitchen.mp4 ├── 7scenes_redkitchen.png ├── architecture.png ├── bf_apt1.mp4 ├── bf_apt1.png ├── bf_office0.mp4 ├── bf_office0.png ├── o3d_eg.gif ├── rerun_eg.gif ├── scannet_0000.mp4 ├── scannet_0000.png ├── scannet_0054.mp4 ├── scannet_0054.png ├── teaser.gif ├── teaser.png ├── tumrgbd_floor.mp4 ├── tumrgbd_floor.png ├── tumrgbd_room.mp4 ├── tumrgbd_room.png ├── vista_logo.png └── vista_slam.mp4 /.gitignore: -------------------------------------------------------------------------------- 1 | data 2 | checkpoints 3 | results 4 | stuffs 5 | recon 6 | visualization 7 | replica_gt 8 | tmp 9 | 10 | # Byte-compiled / optimized / DLL files 11 | __pycache__/ 12 | *.py[cod] 13 | *$py.class 14 | 15 | # C extensions 16 | *.so 17 | 18 | # Distribution / packaging 19 | .Python 20 | build/ 21 | develop-eggs/ 22 | dist/ 23 | downloads/ 24 | eggs/ 25 | .eggs/ 26 | lib/ 27 | lib64/ 28 | parts/ 29 | sdist/ 30 | var/ 31 | wheels/ 32 | pip-wheel-metadata/ 33 | share/python-wheels/ 34 | *.egg-info/ 35 | .installed.cfg 36 | *.egg 37 | MANIFEST 38 | 39 | # PyInstaller 40 | # Usually these files are written by a python script from a template 41 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 42 | *.manifest 43 | *.spec 44 | 45 | # Installer logs 46 | pip-log.txt 47 | pip-delete-this-directory.txt 48 | 49 | # Unit test / coverage reports 50 | htmlcov/ 51 | .tox/ 52 | .nox/ 53 | .coverage 54 | .coverage.* 55 | .cache 56 | nosetests.xml 57 | coverage.xml 58 | *.cover 59 | *.py,cover 60 | .hypothesis/ 61 | .pytest_cache/ 62 | 63 | # Translations 64 | *.mo 65 | *.pot 66 | 67 | # Django stuff: 68 | *.log 69 | local_settings.py 70 | db.sqlite3 71 | db.sqlite3-journal 72 | 73 | # Flask stuff: 74 | instance/ 75 | .webassets-cache 76 | 77 | # Scrapy stuff: 78 | .scrapy 79 | 80 | # Sphinx documentation 81 | docs/_build/ 82 | 83 | # PyBuilder 84 | target/ 85 | 86 | # Jupyter Notebook 87 | .ipynb_checkpoints 88 | 89 | # IPython 90 | profile_default/ 91 | ipython_config.py 92 | 93 | # pyenv 94 | .python-version 95 | 96 | # pipenv 97 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 98 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 99 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 100 | # install all needed dependencies. 101 | #Pipfile.lock 102 | 103 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow 104 | __pypackages__/ 105 | 106 | # Celery stuff 107 | celerybeat-schedule 108 | celerybeat.pid 109 | 110 | # SageMath parsed files 111 | *.sage.py 112 | 113 | # Environments 114 | .env 115 | .venv 116 | env/ 117 | venv/ 118 | ENV/ 119 | env.bak/ 120 | venv.bak/ 121 | 122 | # Spyder project settings 123 | .spyderproject 124 | .spyproject 125 | 126 | # Rope project settings 127 | .ropeproject 128 | 129 | # mkdocs documentation 130 | /site 131 | 132 | # mypy 133 | .mypy_cache/ 134 | .dmypy.json 135 | dmypy.json 136 | 137 | # Pyre type checker 138 | .pyre/ 139 | 140 | ORBvoc.txt 141 | frontend_sta_weights.pth 142 | 143 | *.code-workspace 144 | 145 | preprocessing/slurm_scripts 146 | slam3r/slam/test 147 | test 148 | 149 | exp_figures 150 | test*.py 151 | 152 | preprocessing 153 | pretrains 154 | output -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | ### The full codebase will be released soon ... 3 | --- 4 | 5 | 6 | 7 |

8 | logo 9 | ViSTA-SLAM: Visual SLAM with Symmetric Two-view Association 10 |

11 | 12 | 13 |

14 | Ganlin Zhang1,2 15 | · 16 | Shenhan Qian1,2 17 | · 18 | Xi Wang1,2,3 19 | · 20 | Daniel Cremers1,2 21 |

22 |

23 | 1 TU Munich, 2 MCML, 3 ETH Zurich 24 |

Paper | Project Website

25 |

26 | 27 |

28 | teaser_img 29 | ViSTA-SLAM is a real-time monocular dense SLAM pipeline that combines a Symmetric Two-view Association (STA) frontend with Sim(3) pose graph optimization and loop closure, enabling accurate camera trajectories and high-quality 3D scene reconstruction from RGB inputs. 30 |

31 | 32 | ### Online visualization 33 |

34 | rerun_eg 35 |

36 | 37 | ### Pose graph and final results visualization 38 |

39 | rerun_eg 40 |

41 | 42 | 192 | 193 | 194 | ## Citation 195 | 196 | If you find our code or paper useful, please cite 197 | ```bibtex 198 | @misc{zhang2025vistaslam, 199 | title={{ViSTA-SLAM}: Visual {SLAM} with Symmetric Two-view Association}, 200 | author={Ganlin Zhang and Shenhan Qian and Xi Wang and Daniel Cremers}, 201 | year={2025}, 202 | eprint={2509.01584}, 203 | archivePrefix={arXiv}, 204 | primaryClass={cs.CV}, 205 | url={https://arxiv.org/abs/2509.01584}, 206 | } 207 | ``` 208 | ## Contact 209 | Contact [Ganlin Zhang](mailto:ganlin.zhang@tum.de) for questions, comments and reporting bugs. 210 | -------------------------------------------------------------------------------- /media/7scenes_office.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangganlin/vista-slam/7d43ca22218f9d80053b81cd5516bd1a75573a3e/media/7scenes_office.mp4 -------------------------------------------------------------------------------- /media/7scenes_office.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangganlin/vista-slam/7d43ca22218f9d80053b81cd5516bd1a75573a3e/media/7scenes_office.png -------------------------------------------------------------------------------- /media/7scenes_redkitchen.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangganlin/vista-slam/7d43ca22218f9d80053b81cd5516bd1a75573a3e/media/7scenes_redkitchen.mp4 -------------------------------------------------------------------------------- /media/7scenes_redkitchen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangganlin/vista-slam/7d43ca22218f9d80053b81cd5516bd1a75573a3e/media/7scenes_redkitchen.png -------------------------------------------------------------------------------- /media/architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangganlin/vista-slam/7d43ca22218f9d80053b81cd5516bd1a75573a3e/media/architecture.png -------------------------------------------------------------------------------- /media/bf_apt1.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangganlin/vista-slam/7d43ca22218f9d80053b81cd5516bd1a75573a3e/media/bf_apt1.mp4 -------------------------------------------------------------------------------- /media/bf_apt1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangganlin/vista-slam/7d43ca22218f9d80053b81cd5516bd1a75573a3e/media/bf_apt1.png -------------------------------------------------------------------------------- /media/bf_office0.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangganlin/vista-slam/7d43ca22218f9d80053b81cd5516bd1a75573a3e/media/bf_office0.mp4 -------------------------------------------------------------------------------- /media/bf_office0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangganlin/vista-slam/7d43ca22218f9d80053b81cd5516bd1a75573a3e/media/bf_office0.png -------------------------------------------------------------------------------- /media/o3d_eg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangganlin/vista-slam/7d43ca22218f9d80053b81cd5516bd1a75573a3e/media/o3d_eg.gif -------------------------------------------------------------------------------- /media/rerun_eg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangganlin/vista-slam/7d43ca22218f9d80053b81cd5516bd1a75573a3e/media/rerun_eg.gif -------------------------------------------------------------------------------- /media/scannet_0000.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangganlin/vista-slam/7d43ca22218f9d80053b81cd5516bd1a75573a3e/media/scannet_0000.mp4 -------------------------------------------------------------------------------- /media/scannet_0000.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangganlin/vista-slam/7d43ca22218f9d80053b81cd5516bd1a75573a3e/media/scannet_0000.png -------------------------------------------------------------------------------- /media/scannet_0054.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangganlin/vista-slam/7d43ca22218f9d80053b81cd5516bd1a75573a3e/media/scannet_0054.mp4 -------------------------------------------------------------------------------- /media/scannet_0054.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangganlin/vista-slam/7d43ca22218f9d80053b81cd5516bd1a75573a3e/media/scannet_0054.png -------------------------------------------------------------------------------- /media/teaser.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangganlin/vista-slam/7d43ca22218f9d80053b81cd5516bd1a75573a3e/media/teaser.gif -------------------------------------------------------------------------------- /media/teaser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangganlin/vista-slam/7d43ca22218f9d80053b81cd5516bd1a75573a3e/media/teaser.png -------------------------------------------------------------------------------- /media/tumrgbd_floor.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangganlin/vista-slam/7d43ca22218f9d80053b81cd5516bd1a75573a3e/media/tumrgbd_floor.mp4 -------------------------------------------------------------------------------- /media/tumrgbd_floor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangganlin/vista-slam/7d43ca22218f9d80053b81cd5516bd1a75573a3e/media/tumrgbd_floor.png -------------------------------------------------------------------------------- /media/tumrgbd_room.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangganlin/vista-slam/7d43ca22218f9d80053b81cd5516bd1a75573a3e/media/tumrgbd_room.mp4 -------------------------------------------------------------------------------- /media/tumrgbd_room.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangganlin/vista-slam/7d43ca22218f9d80053b81cd5516bd1a75573a3e/media/tumrgbd_room.png -------------------------------------------------------------------------------- /media/vista_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangganlin/vista-slam/7d43ca22218f9d80053b81cd5516bd1a75573a3e/media/vista_logo.png -------------------------------------------------------------------------------- /media/vista_slam.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhangganlin/vista-slam/7d43ca22218f9d80053b81cd5516bd1a75573a3e/media/vista_slam.mp4 --------------------------------------------------------------------------------