Robbyant/lingbot-map
[ECCV 2026 Best Paper Award Candidate] LingBot-Map: Geometric Context Transformer for Streaming 3D Reconstruction
LingBot‑Map: Feed‑forward 3D foundation model for streaming reconstruction
What it is
LingBot‑Map is a research‑grade, feed‑forward neural network that reconstructs a 3‑D scene from a video (or a folder of images) while the video is streaming. It combines three ideas that are usually separate in NeRF‑style pipelines:
- Geometric‑Context Transformer – a transformer that jointly reasons about camera pose, dense geometry and long‑range drift. It does this through three mechanisms the authors call anchor context, pose‑reference window and trajectory memory.
- Paged KV‑cache attention (via the FlashInfer library) – lets the model keep a compact memory of past frames so inference stays fast (≈20 fps on 518×378 images) even for tens of thousands of frames.
- Streaming‑first design – the model runs in a single forward pass; there is no iterative optimisation loop that revisits earlier frames.
The result is a 3‑D point‑cloud reconstruction that can be visualised live in a browser or rendered offline to video.
Who might use it
- Robotics / AR developers who need on‑the‑fly scene mapping from a moving camera.
- Researchers comparing streaming‑reconstruction methods against classic optimisation‑based SLAM or NeRF pipelines.
- Content creators who want to turn long walkthrough videos into 3‑D point clouds without a heavyweight post‑process.
Quick start (from the README)
- Create a conda env and install the exact PyTorch version the project recommends (torch 2.8.0 + CUDA 12.8). The version matters because the NVIDIA Kaolin rendering wheels are built for it.
- Install the package
pip install -e . - (Optional) Install FlashInfer – this gives the fast paged KV‑cache. If you skip it the code falls back to PyTorch’s native SDPA attention.
- Download a checkpoint from the HuggingFace or ModelScope links (e.g.
robbyant/lingbot-map). - Run the demo on one of the supplied scenes:
A Visor viewer opens atpython demo.py --model_path /path/to/lingbot-map.pt \ --image_folder example/courthouse --mask_skyhttp://localhost:8080showing a live point‑cloud reconstruction.
Main features (as described in the README)
| Feature | What it does | How to enable / tune |
|---|---|---|
| Geometric Context Transformer | Unifies coordinate grounding, dense geometry cues and drift correction. | Internally handled; you just pick a checkpoint. |
| Paged KV‑cache (FlashInfer) | Keeps only selected keyframes in memory, allowing >10 k‑frame streams at ~20 fps. | --keyframe_interval N (store every N‑th frame). Use --backend flashinfer for best speed. |
| Windowed inference | Slides a fixed‑size memory window when the sequence exceeds the training range (~320 frames). | --mode windowed --window_size 128 --overlap_keyframes 8. |
| Sky masking | Removes sky points using an ONNX sky‑segmentation model, improving outdoor reconstructions. | Install onnxruntime and add --mask_sky (model auto‑downloads). |
| Camera pose refinement | Iteratively refines pose per frame; default 4 iterations. | Reduce with --camera_num_iterations 1 for speed. |
| Offline rendering pipeline | Generates a head‑less MP4 of the reconstructed point cloud for very long videos. | Run demo_render/batch_demo.py with a YAML config or explicit flags. |
| Visualization options | Point size, confidence threshold, down‑sampling, port, etc. | Flags like --point_size, --conf_threshold. |
Example use‑cases from the repo
- Indoor walkthrough: 25 000 frames (13 min) rendered offline with a sliding‑window setup.
- Dynamic sequence (Droid‑W): Shows the model handling moving objects; sky masking and stride‑2 sampling are demonstrated.
- Loop‑closure trajectory: A loop scene where the model can close the loop without explicit optimisation.
Installation quirks to watch out for
- The exact PyTorch 2.8.0 + CUDA 12.8 build is required for the pre‑compiled Kaolin wheels used by the offline renderer. Using a newer PyTorch works for the interactive demo but will need Kaolin built from source.
- FlashInfer is a pure‑Python package that JIT‑compiles CUDA kernels on first use; the first run may take a few seconds.
- Sky‑mask model (
skyseg.onnx) is downloaded automatically from HuggingFace; ensure internet access or place the file manually. - For GPU‑memory‑constrained machines you can:
--offload_to_cpu(default) to move per‑frame predictions off‑GPU.- Reduce
--num_scale_frames(default 8) to shrink the initial activation peak.
Where to find more information
- Paper (conference version) – linked in the badge at the top of the README.
- Technical report on arXiv – gives full algorithmic details.
- Project website – contains additional videos and benchmarks.
- Evaluation scripts – under
benchmark/for KITTI, Oxford Spires, etc.
TL;DR
LingBot‑Map is a streaming‑first 3‑D reconstruction transformer that runs in real‑time, supports very long video streams via a paged KV‑cache, and ships with demo scripts, pretrained checkpoints, and an offline renderer. It is a genuine research project in the AI‑driven 3‑D reconstruction space.
Related
- Project
- Project
- Project
- Project