June 29, 2026
LingBot-Map: The Real-Time 3D Reconstruction Model That Makes LiDAR Optional

By Dr. Fadi Shaar
11 min read
For decades, the assumption embedded in serious 3D scene reconstruction has been straightforward: you need specialized hardware. LiDAR sensors spin at thousands of dollars per unit. Structured light arrays, stereo rigs, depth cameras, and inertial measurement units have been treated as prerequisites for any system that needs to understand three-dimensional space with real-world accuracy. The computational pipeline that follows that hardware collection is then typically iterative, heavy, and offline. Frames accumulate. An optimizer runs across the batch. The map emerges hours later, after extensive post-processing cleanup.
LingBot-Map challenges every part of that assumption simultaneously. Released open source under the Apache 2.0 license by the Robbyant team, it is a feed-forward streaming 3D reconstruction model that operates from a single monocular camera, runs at approximately 20 frames per second at 518 by 378 resolution over sequences exceeding 10,000 frames, requires no iterative optimization steps, applies no post-processing cleanup, and yet outperforms both existing streaming approaches and several established offline optimization methods across a comprehensive suite of benchmarks.
The implications extend well beyond academic benchmarking. A system that can reconstruct dense 3D scene geometry in real time from a single consumer camera, running entirely as software on standard GPU hardware, represents a meaningful shift in what robots, autonomous vehicles, augmented reality systems, and spatial computing applications can do without specialized perception hardware.
The Problem with Existing Approaches
To understand what LingBot-Map achieves, it helps to understand precisely what it replaces and why the alternatives fall short.
Offline optimization methods, the category that includes classical simultaneous localization and mapping approaches and their neural successors, produce high-quality reconstructions but require the full sequence to be available before processing begins. They are inherently batch operations. A robot that needs to navigate a space cannot wait for an offline optimizer to finish before it moves. An augmented reality system cannot buffer minutes of footage before displaying overlays. The fundamental constraint of offline methods is that they trade latency for quality, and for real-time applications, that trade is unacceptable.
Streaming methods address the latency problem but have historically struggled with two failure modes. The first is drift. As a monocular camera moves through a long sequence, small errors in pose estimation accumulate across frames. What begins as a minor positional inaccuracy compounds over time until the reconstructed map becomes geometrically inconsistent, with the end of a hallway failing to align with its beginning, or a returned path diverging from the outward path by meters rather than centimeters. Loop closure, the process of recognizing a previously visited location and correcting accumulated drift, has traditionally required expensive optimization passes that break the streaming constraint.
The second failure mode is scale ambiguity. Monocular cameras cannot directly observe metric depth. Without a known baseline between two cameras, or without external depth sensors, the absolute scale of the scene is unobservable from a single frame alone. Streaming monocular systems have historically required careful handling of this ambiguity, often with separate scale estimation stages that introduce their own error sources and computational overhead.
LingBot-Map addresses both failure modes architecturally rather than through post-processing corrections.
The Geometric Context Transformer
The core architectural innovation in LingBot-Map is the Geometric Context Transformer, a design that unifies three distinct capabilities that existing systems typically handle separately: coordinate grounding, dense geometric cue extraction, and long-range drift correction.
The first capability, coordinate grounding, is handled through anchor context. Rather than treating each frame as an independent perception event, the system maintains explicit geometric anchors that ground predictions in a consistent coordinate system across the entire sequence. This prevents the coordinate system drift that plagues naive streaming approaches by ensuring that new frame predictions are always expressed relative to a stable geometric reference frame.
The second capability, dense geometric cue extraction, is handled through a pose-reference window. The model maintains a window of recent frames with high geometric detail, allowing it to extract dense depth and surface normal cues from the local sequence context. This is distinct from approaches that compress past frames into a single latent state, which inevitably loses geometric detail. The pose-reference window preserves enough local geometric richness to support precise depth prediction even in regions with limited texture or repetitive structure.
The third capability, long-range drift correction, is handled through trajectory memory. Even with stable coordinate grounding and precise local geometric cues, a streaming system that processes thousands of frames will eventually accumulate small errors that compound over long sequences. The trajectory memory component maintains a compressed representation of the geometric history across the entire sequence, allowing the model to detect and correct drift by comparing current predictions against the long-range geometric record without requiring a separate optimization pass.
The unification of these three components into a single streaming framework is what distinguishes LingBot-Map architecturally. Previous approaches either handled them separately, which introduced seams and consistency problems at the interfaces between stages, or handled only one or two of them, accepting degraded performance in the dimensions they ignored.
Paged KV Cache Attention and Streaming Efficiency
The computational efficiency of LingBot-Map at streaming rates comes from its use of paged key-value cache attention, a technique adapted from large language model inference optimization and applied here to the visual sequence processing problem.
In standard transformer attention, processing a long sequence requires holding the key and value tensors for all past frames in GPU memory simultaneously. As the sequence grows longer, memory requirements grow linearly and eventually exhaust available VRAM, which is why naive transformer approaches cannot stream over sequences of 10,000 or more frames.
Paged KV cache attention addresses this by organizing the key-value cache into fixed-size pages that can be managed independently. Pages that are no longer needed for current predictions can be evicted or offloaded, while new pages are allocated for incoming frames. This paging mechanism decouples peak memory usage from sequence length, enabling stable inference over arbitrarily long sequences without the memory growth that would otherwise constrain streaming operation.
The practical result is that LingBot-Map can process the 25,000-frame indoor walkthrough demonstration, representing approximately 13 minutes of continuous footage, without the memory issues that would prevent standard transformer approaches from handling sequences of that length.
FlashInfer, an optional but recommended inference backend, provides the paged KV cache implementation used in production deployments. It is a pure-Python package that just-in-time compiles CUDA kernels on first use, making it compatible across CUDA and PyTorch versions without requiring separate binary builds. When FlashInfer is not available, the system falls back to PyTorch's native scaled dot-product attention through the SDPA flag.
The Keyframe Strategy for Long Sequences
One of the most practically important design decisions in LingBot-Map is its keyframe strategy, which extends usable sequence length well beyond the training context window.
The model is trained with video Rotary Position Embedding on sequences of 320 views. When the KV cache stores more than 320 views simultaneously, reconstruction quality begins to degrade because the model is being asked to integrate geometric context at scales it was not trained to handle. The keyframe strategy solves this by storing only every Nth frame in the KV cache, where N is the keyframe interval parameter.
Non-keyframe frames still receive full per-frame depth and pose predictions. They simply do not contribute to the KV cache, so they do not grow the geometric context that the model must integrate across. With a keyframe interval of 13, for example, a window of 128 KV cache slots covers 8 scale frames plus 120 keyframe slots, each representing 13 actual frames, for a total coverage of 8 plus 120 times 13, which equals 1,568 actual frames per window. Windowed inference with overlapping keyframe context then extends this to sequences of arbitrary length.
The overlap parameter controls how many keyframes are shared between adjacent windows. Sharing overlap keyframes prevents discontinuities at window boundaries by giving each new window access to the geometric context established by its predecessor. For sequences with a keyframe interval greater than one, the overlap keyframes parameter is particularly important for maintaining stable cross-window pose alignment.
For very long sequences exceeding roughly 3,000 frames, windowed inference mode handles the sliding window management automatically:
python demo.py --model_path /path/to/lingbot-map-long.pt \
--video_path video.mp4 --fps 10 \
--mode windowed --window_size 128 --overlap_keyframes 16 --keyframe_interval 2python demo.py --model_path /path/to/lingbot-map-long.pt \
--video_path video.mp4 --fps 10 \
--mode windowed --window_size 128 --overlap_keyframes 16 --keyframe_interval 2Getting Started: Installation and First Run
Installation follows a standard Python environment setup with several specialized dependencies. A conda environment with Python 3.10 is the recommended starting point:
conda create -n lingbot-map python=3.10 -y
conda activate lingbot-mapconda create -n lingbot-map python=3.10 -y
conda activate lingbot-mapPyTorch 2.8.0 with CUDA 12.8 is the recommended version because NVIDIA Kaolin, required by the batch rendering pipeline, has prebuilt wheels for this specific combination:
pip install torch==2.8.0 torchvision==0.23.0 --index-url https://download.pytorch.org/whl/cu128pip install torch==2.8.0 torchvision==0.23.0 --index-url https://download.pytorch.org/whl/cu128The core package installs in development mode:
pip install -e .pip install -e .FlashInfer provides the recommended paged KV cache attention backend:
pip install --index-url https://pypi.org/simple flashinfer-pythonpip install --index-url https://pypi.org/simple flashinfer-pythonWith installation complete, running the first scene requires a single command. The courthouse example demonstrates the outdoor reconstruction capability with sky masking enabled:
python demo.py --model_path /path/to/lingbot-map-long.pt \
--image_folder example/courthouse --mask_skypython demo.py --model_path /path/to/lingbot-map-long.pt \
--image_folder example/courthouse --mask_skyThis launches an interactive 3D viewer accessible through a browser at the default port. The point cloud builds in real time as frames are processed, with camera trajectory overlaid and point confidence filtering applied through the configurable threshold parameter.
Sky masking is particularly important for outdoor scenes. Sky regions introduce depth prediction errors because the sky has no fixed geometric distance. The optional sky masking pipeline uses an ONNX sky segmentation model downloaded automatically on first use, caches the computed masks to avoid redundant computation on re-runs, and filters sky points from the reconstructed point cloud before visualization.
Two model checkpoints are available. The long sequence variant is optimized for extended sequences and large-scale scenes and is the recommended choice for most use cases. The balanced checkpoint trades some long-sequence performance for improved accuracy on short sequences. A stage-one training checkpoint is also available for users who want to integrate the underlying components with bidirectional inference frameworks.
Offline Rendering for Long Sequences
The interactive viser viewer works well for sequences up to a few thousand frames. For longer sequences, including the featured 25,000-frame indoor walkthrough, the offline rendering pipeline produces a cinematic point-cloud flythrough video in a headless batch mode.
The offline pipeline shares the same model inference stack as the interactive demo. The difference is the output: rather than an interactive browser viewer, it produces an MP4 video rendered along a configurable virtual camera path. This makes it suitable for presentation, documentation, and evaluation use cases where interactive viewing is not required.
The full command for the long indoor walkthrough example illustrates the range of control available:
python demo_render/batch_demo.py \
--video_path /data/demo_videos/indoor_travel.MP4 \
--output_folder /data/outputs/indoor_travel/ \
--model_path /path/to/lingbot-map.pt \
--config demo_render/config/indoor.yaml \
--mode windowed --window_size 128 \
--keyframe_interval 13 --overlap_keyframes 8 \
--camera_vis default --keyframes_only_points \
--frame_tag --frame_tag_position top_right \
--save_predictionspython demo_render/batch_demo.py \
--video_path /data/demo_videos/indoor_travel.MP4 \
--output_folder /data/outputs/indoor_travel/ \
--model_path /path/to/lingbot-map.pt \
--config demo_render/config/indoor.yaml \
--mode windowed --window_size 128 \
--keyframe_interval 13 --overlap_keyframes 8 \
--camera_vis default --keyframes_only_points \
--frame_tag --frame_tag_position top_right \
--save_predictionsThe keyframes-only points flag restricts point cloud unprojection to keyframe depth estimates only. For a 25,000-frame sequence with a keyframe interval of 13, this reduces the point cloud density by roughly 13 times compared to full-frame unprojection, which keeps the rendered output manageable without losing the spatial coverage needed for scene understanding. Non-keyframe frames still contribute their camera pose to the trajectory and frustum overlays, preserving the visual continuity of the trajectory representation.
The save predictions flag persists per-frame NPZ files alongside the video output. This is valuable for evaluation workflows and for re-rendering with different camera path or overlay settings without re-running the full inference pipeline.
Configuring Virtual Camera Paths
One of the more sophisticated features of the offline rendering pipeline is the YAML-driven virtual camera path system. Rather than locking the viewer to a fixed perspective, the pipeline allows cinematically designed camera trajectories that move independently of the capture camera, revealing the reconstructed scene from perspectives optimized for comprehension and presentation.
Four camera modes are available. The follow mode implements a chase camera that tracks the input trajectory with configurable offsets for distance behind the camera, vertical lift, and lookahead target distance. Smoothing over a configurable window prevents the rendered camera from jerking in response to small perturbations in the input trajectory.
The birdeye mode rises above the reconstructed scene for a top-down reveal, scaled relative to the overall scene extent. This is particularly effective for establishing shots at the beginning or end of a sequence, where the full spatial extent of the reconstruction is most meaningful to show.
The static mode fixes the virtual camera at a position derived from the segment's start frame. The pivot mode fixes the eye position while sweeping the lookat target along the trajectory, creating a panoramic effect without camera translation.
Segments can be combined freely in a YAML configuration file, with smooth interpolation between adjacent segments over a configurable transition window:
camera:
fov: 60.0
transition: 30
segments:
- mode: follow
frames: [0, 1500]
back_offset: 0.3
up_offset: 0.08
look_offset: 0.4
smooth_window: 30
- mode: birdeye
frames: [1500, 1800]
reveal_height_mult: 2.5
- mode: follow
frames: [1800, -1]
back_offset: 0.3
up_offset: 0.08
look_offset: 0.4camera:
fov: 60.0
transition: 30
segments:
- mode: follow
frames: [0, 1500]
back_offset: 0.3
up_offset: 0.08
look_offset: 0.4
smooth_window: 30
- mode: birdeye
frames: [1500, 1800]
reveal_height_mult: 2.5
- mode: follow
frames: [1800, -1]
back_offset: 0.3
up_offset: 0.08
look_offset: 0.4This configuration opens with a chase camera for the first 1,500 rendered frames, transitions to a bird's-eye overview for 300 frames, and then drops back into the chase camera for the remainder of the sequence. The transition parameter blends the adjacent segments over 30 frames to prevent abrupt cuts.
Built-in presets for indoor, outdoor large-scale, surrounding, and overview configurations are provided in the configuration directory. Any of these can be copied and modified to suit a specific scene or presentation requirement.
Benchmark Coverage and Performance
LingBot-Map has been evaluated against a comprehensive set of standard benchmarks spanning indoor, outdoor, aerial, and specialized document environments. The evaluation suite includes KITTI for outdoor driving sequences, Oxford Spires for large-scale urban reconstruction, TUM Dynamic for scenes with moving objects, 7-Scenes for indoor localization, ETH3D for high-precision indoor and outdoor scenes, Tanks and Temples for large-scale outdoor reconstruction, Non-Rigid Body Ground-truth Dataset for challenging deformable scenes, and the VBR, Droid-W, and M6Doc datasets for additional coverage.
Evaluation scripts and preprocessing pipelines for all supported datasets are publicly available in the benchmark directory of the repository. The Oxford Spires preprocessing step requires running a dedicated script before evaluation to prepare the dataset format.
The performance claims in the project documentation are specific and verifiable. On a single H100 GPU, the model processes full-page OCR equivalent sequences at approximately 20 frames per second at 518 by 378 resolution. The state-of-the-art reconstruction quality is demonstrated across multiple benchmarks where LingBot-Map surpasses both existing streaming methods, which were previously the only real-time-capable approaches, and several iterative offline optimization methods that sacrifice real-time capability for quality. Achieving superior quality to offline methods while operating in real time streaming mode is the headline result.
Memory Management and Hardware Considerations
For users running on hardware with limited VRAM, several flags provide meaningful relief without requiring model modification.
The CPU offload flag, enabled by default, offloads per-frame predictions to system RAM during inference. This reduces peak GPU memory consumption at the cost of some additional latency from the CPU-to-GPU transfers. Users with sufficient VRAM can disable this to reduce that latency.
The number of bidirectional scale frames parameter controls the size of the initial scale estimation phase. Reducing this from the default of eight to two significantly shrinks the activation peak of the initial phase, which is often the memory bottleneck for GPU-constrained deployments.
The camera iterations parameter controls how many refinement passes the camera pose estimation head performs. Reducing this from the default of four to one skips three refinement passes and shrinks the camera head KV cache by a factor of four, providing a meaningful speed increase at the cost of a small reduction in pose accuracy.
For RTX 4060 8GB deployments specifically, a community implementation demonstrating viable configuration for this memory-constrained hardware is linked in the project documentation, providing a practical reference for users working within similar constraints.
Perception as Software
The broader significance of LingBot-Map sits at the intersection of a long-running conversation about the future of robotic and autonomous system perception. The traditional answer to the perception problem has been hardware: add more sensors, add better sensors, spend more on the sensor suite. LiDAR has been the premium answer for outdoor environments, structured light for indoor robotics, and stereo camera rigs as an intermediate option.
LingBot-Map represents the software-first answer: make the learned model good enough that a single standard camera provides sufficient information for dense, real-time, geometrically coherent 3D reconstruction. The feed-forward architecture means no iterative optimization. The streaming design means no batch accumulation. The geometric context transformer means no external sensors for drift correction. The result is a system whose bill of materials for the perception stack is a camera, a GPU, and an open source model weight file.
This matters not only for cost but for deployment flexibility. A system that requires only a camera can be deployed anywhere a camera can be placed, which is nearly everywhere. The democratization of high-quality 3D perception, from expensive specialized sensor platforms to software running on consumer hardware, follows the same trajectory that image classification, object detection, and speech recognition followed before it.
Conclusion
LingBot-Map demonstrates that real-time streaming 3D reconstruction from a single monocular camera has crossed a threshold of practical usefulness. The Geometric Context Transformer's unified handling of coordinate grounding, dense geometric cue extraction, and long-range drift correction within a feed-forward streaming architecture produces results that were previously only achievable through offline optimization. The paged KV cache attention mechanism enables stable inference over sequences of arbitrary length. The keyframe strategy and windowed inference mode extend practical usability to the longest sequences that arise in real-world deployments.
For robotics engineers building navigation systems, for autonomous vehicle teams evaluating monocular alternatives to LiDAR, for augmented reality developers who need real-time spatial understanding, and for researchers working on the frontier of monocular depth and structure from motion, LingBot-Map provides a well-documented, comprehensively evaluated, and immediately deployable foundation.
The repository is available at: https://github.com/Robbyant/lingbot-map