We present San Francisco SLAM (SF-SLAM), a structural RGB-D SLAM algorithm for accurate 6-DoF camera localization and mapping in geometrically complex structured environments. Existing visual SLAM methods often fail in textureless and repetitive scenes because feature scarcity and spatial ambiguity cause cumulative trajectory drift and tracking loss. These failures become more severe in staircases and inter-floor spaces, where repeated layouts and sloping structures fall outside the assumptions of the Manhattan world. To address these problems, we detect planes and lines to build a reliable global San Francisco world (SFW) map while simultaneously estimating 6-DoF camera poses, capturing structural regularities beyond orthogonal layouts. Anchoring orientation with structure-consistent absolute-rotation estimates removes rotation from the state and reduces planes and lines to 1-D invariant coordinates, yielding linear measurement models for camera translation and the global map. Our approach leverages both inter-floor plane and line regularities to preserve trajectory consistency in environments that violate the Manhattan world assumption. Our experiments in various SFW-structured scenes show that our approach effectively reduces the accumulated drift during inter-floor transitions and outperforms state-of-the-art SLAM methods in challenging real-world environments.
Full run of SF-SLAM on the dataset sequences, compared with StructVIO, DROID-SLAM, ORB-SLAM3, HI-SLAM2, and Planar-SLAM.
The San Francisco world adds four sloping directions to the Manhattan triad. SF-SLAM fuses VIO rotation with a drift-free SFW Visual Compass and rejects inconsistent compass estimates with a long-baseline consensus test. With rotation fixed, each plane and line reduces to a 1-D coordinate, so a single linear Kalman filter estimates the translation and the map.
Existing RGB-D benchmarks rarely include sustained inter-floor motion. The SF-SLAM dataset provides long multi-floor RGB-D sequences through staircases and ramps, captured with an iPhone 15 Pro Max (Stray Scanner, with ARKit trajectories). Closed-loop sequences return to the start pose, and open-loop sequences end at the same structural corner several stories higher.
| Sequence | Frames | Trajectory Length [m] | Angular Travel [103 °] |
|---|---|---|---|
| Closed-loop sequences | |||
| Office Building (return) | 9330 | 376.996 | 12.605 |
| Mixed-use Building | 6455 | 72.671 | 2.146 |
| Academic Building A | 2857 | 119.623 | 3.730 |
| Parking Lot | 3185 | 164.596 | 2.934 |
| Open-loop sequences | |||
| Office Building (ascending) | 4990 | 205.581 | 6.475 |
| Apartment Building | 12223 | 488.302 | 17.898 |
| Academic Building B | 3471 | 107.625 | 4.510 |
SF-SLAM achieves the lowest final drift error (FDE) on six of the seven sequences without a loop-closure module. Best is bold, second-best is underlined, and “–” marks tracking failure.
| Sequence | HI-SLAM2 | StructVIO | ORB-SLAM3 | DROID-SLAM | Planar-SLAM | SF-SLAM (Ours) |
|---|---|---|---|---|---|---|
| Office Building (return) | 42.040 | 10.296 | 0.201 | 21.330 | – | 0.024 |
| Mixed-use Building | 10.186 | 1.395 | 11.276 | 3.435 | – | 0.046 |
| Academic Building A | 13.112 | 1.129 | 0.218 | 0.264 | 10.568 | 0.089 |
| Parking Lot | 6.913 | 7.847 | 0.012 | 4.123 | 0.036 | 0.164 |
























Figure 4. Closed-loop trajectories, top view. Green: start. Blue: end.
| Sequence | HI-SLAM2 | StructVIO | ORB-SLAM3 | DROID-SLAM | Planar-SLAM | SF-SLAM (Ours) |
|---|---|---|---|---|---|---|
| Office Building (ascending) | 34.146 | 5.254 | 7.060 | 11.763 | – | 0.215 |
| Apartment Building | 38.700 | 4.065 | 3.759 | 73.204 | – | 0.070 |
| Academic Building B | 0.098 | 7.631 | 5.262 | 9.350 | – | 0.090 |


















Figure 5. Open-loop trajectories, top view. Green: start. Blue: end.
Adding line landmarks to planes reduces FDE on every sequence. The gain is largest on Academic Building A, where the stairwell shows few large planes.
| Sequence | Final Drift Error (FDE) [m] ↓ | ||
|---|---|---|---|
| VIO | VIO + Plane (Ours w/o Line) | VIO + Plane + Line (Ours) | |
| Office Building (return) | 0.909 | 0.131 | 0.024 |
| Mixed-use Building | 0.469 | 0.051 | 0.046 |
| Academic Building A | 0.549 | 0.840 | 0.089 |
| Parking Lot | 0.737 | 0.312 | 0.164 |
| Office Building (ascending) | 1.119 | 0.335 | 0.215 |
| Apartment Building | 0.337 | 0.185 | 0.070 |
| Academic Building B | 0.324 | 0.240 | 0.090 |
@article{sfslam2026,
title = {San Francisco SLAM: Structural Localization and
Mapping Beyond the Manhattan World},
author = {Anonymous},
journal = {Under review, IEEE Transactions on Robotics (T-RO)},
year = {2026}
}