lingbot-map

Library

Robbyant/lingbot-map

A feed-forward 3D foundation model for streaming scene reconstruction.

Overview

LingBot-Map is a feed-forward 3D foundation model that reconstructs scenes from streaming data. It uses a Geometric Context Transformer to unify coordinate grounding, dense geometric cues, and drift correction. Achieves ~20 FPS on long sequences with a paged KV cache.

README Preview

\n  \n\nLingBot-Map: Geometric Context Transformer for Streaming 3D Reconstruction\n\nRobbyant Team\n\n\n\n\n\n[](https://arxiv.org/abs/2604.14141)\n[](lingbot-map_paper.pdf)\n[](https://technology.robbyant.com/lingbot-map)\n[](https://huggingface.co/robbyant/lingbot-map)\n[](https://www.modelscope.cn/models/Robbyant/lingbot-map)\n[](LICENSE.txt)\n\n\n\nhttps://github.com/user-attachments/assets/fe39e095-af2c-4ec9-b68d-a8ba97e505ab\n\n-----\n\n### 🗺️ Meet LingBot-Map! We've built a feed-forward 3D foundation model for streaming 3D reconstruction! 🏗️🌍\n\nLingBot-Map has focused on:\n\n- **Geometric Context Transformer**: Architecturally unifies coordinate grounding, dense geometric cues, and long-range drift correction within a single streaming framework through anchor context, pose-reference window, and trajectory memory.\n- **High-Efficiency Streaming Inference**: A feed-forward architecture with paged KV cache attention, enabling stable inference at ~20 FPS on 518×378 resolution over long sequences exceeding 10,000 frames.\n- **State-of-the-Art Reconstruction**: Superior performance on diverse benchmarks compared to both existing streaming and iterative optimization-based approaches.\n\n---\n\n## 📑 Table of Contents\n\n\nClick to expand\n\n- [📰 News](#-news)\n- [📋 TODO](#-todo)\n- [⚙️ Installation](#️-installation)\n- [📦 Model Download](#-model-download)\n- [🚀 Quick Start](#-quick-start)\n- [🎬 Interactive Demo (`demo.py`)](#-interactive-demo-demopy)\n  - [Try the Example Scenes](#try-the-example-scenes)\n  - [Streaming with Keyframe Interval](#streaming-with-keyframe-interval)\n  - [Windowed Inference (for long sequences, >3000 frames)](#windowed-inference-for-long-sequences-3000-frames)\n  - [Sky Masking](#sky-masking)\n  - [Visualization Options](#visualization-options)\n  - [Performance & Memory](#performance--memory)\n- [🎥 Offline Rendering Pipeline (`demo_render/batch_demo.py`)](#-offline-rendering-pipeline-demo_renderbatch_demopy)\n- [📜 License](#

FAQ (2)

informational
Why does the paper say 13 Oxford Spires scenes while the listed sequences total 14, and which sequences are actually evaluated?

The "13 scenes" description is a typo: the list contains 14 sequences. The authors initially evaluated all 14, obtaining ATE RMSE = 5.59, but found that poses and point clouds were misaligned in 4 scenes. The final paper therefore reports results on 10 scenes, with ATE RMSE = 6.42.

Excluded sequences:
- blenheim-palace-01: 4.116
- blenheim-palace-02: 3.687
- blenheim-palace-05: 2.567
- christ-church-01: 3.6793

Included sequences and available per-sequence ATE values (first 320 frames, sampled every 12 frames):
- bodleian-library-02: 9.592
- christ-church-02: 3.2969
- christ-church-03: 0.4530
- christ-church-05: 35.987
- keble-college-02: 3.016
- keble-college-03: 1.957
- keble-college-04, keble-college-05, observatory-quarter-01, and observatory-quarter-02 are included, but their individual values were cut off in the discussion thread.

The authors stated that the scene description will be corrected in the next paper version.

GitHub Issue #38
Troubleshooting
Which checkpoint is used to reproduce the Oxford Spires Table 2 results?

Use the **160th-epoch checkpoint from lingbot-map.pt** for the Table 2 Oxford Spires result. The maintainers stated that both lingbot-map.pt and lingbot-map-long.pt can achieve better ATE than the reported Table 2 value, but lingbot-map-long.pt is not the checkpoint used for that table. For AUC, follow the **DA3 pose-AUC calculation**. The exact image preprocessing, crop/resize, intrinsics handling, and official evaluation code were not provided in the thread; the maintainers said the evaluation code would be released, so use that official code to resolve remaining AUC gaps.

GitHub Issue #62