Skip to content

cocktailpeanut/lingbot-map.pinokio

Repository files navigation

LingBot-Map for Pinokio

This launcher installs and runs Robbyant's LingBot-Map, a streaming 3D reconstruction demo with a browser-based viser viewer.

The launcher is aimed at NVIDIA machines and installs the upstream CUDA 12.8 PyTorch stack (torch==2.9.1, torchvision==0.24.1). On Linux it follows the upstream default backend by installing FlashInfer. On Windows it falls back to --use_sdpa, because the official FlashInfer Python package is documented as Linux-only.

What It Does

  • Clones the upstream lingbot-map repository into app/
  • Creates the app virtual environment in app/env
  • Installs the upstream package with visualization dependencies
  • Downloads the default lingbot-map.pt checkpoint into app/checkpoints/
  • Prefetches the skyseg.onnx sky-segmentation model into app/ so --mask_sky runs do not stall after the viewer URL appears
  • Launches the upstream demo.py viewer on an automatically assigned Pinokio port
  • Adds a single-screen Launchpad web UI for examples, custom folders, custom videos, and model downloads
  • Exposes ready-to-run example scenes plus custom image-folder and video pickers
  • Exposes explicit Low VRAM presets based on the upstream memory-saving flags and cache-window controls from demo.py

How To Use

  1. Click Install.
  2. After install finishes, open Launchpad for the one-screen control UI, or use the classic nested sidebar menus if you prefer.
  3. Use Example Scenes to launch the bundled church, oxford, university, or loop samples.
  4. If VRAM is tight, use the Low VRAM submenu in each section instead of the standard run.
  5. On Windows, prefer the Low VRAM (SDPA Fallback) entries. They reduce frame count and also shrink the retained KV-cache window.
  6. Use Custom Images to point LingBot-Map at your own image folder.
  7. Use Custom Video to select a local video file and run streaming reconstruction.
  8. If you want the long-sequence checkpoint, open Models and download lingbot-map-long.pt. Once it exists, the Long Video (Windowed, Lower VRAM) shortcut appears automatically.

Notes

  • Linux installs FlashInfer and uses the upstream default backend. Windows uses the SDPA fallback.
  • The Windows SDPA path now restores the more conservative April 17 launcher defaults for standard runs: --num_scale_frames 2 on scene/image launches, plus --keyframe_interval 6 on loop/video-style launches.
  • The low-VRAM presets combine upstream knobs that reduce memory pressure: --num_scale_frames 2, --keyframe_interval 6, --camera_num_iterations 1, and on SDPA runs a lower --kv_cache_sliding_window.
  • Upstream advertises its fast streaming path with paged KV cache attention. On Windows, where this launcher cannot use the official FlashInfer package, expect worse speed and higher VRAM than the Linux/FlashInfer path.
  • The upstream viewer prints a local browser URL, and the launcher captures that URL to expose Open Viewer.
  • Launchpad is a local HTML control surface inside the launcher. Its buttons forward into the existing Pinokio scripts, so the new UI does not replace the underlying install/start/update/reset flows.
  • Outdoor examples use --mask_sky because the upstream repo recommends it for better visualization.
  • The launcher now downloads skyseg.onnx during install/update and also before launch if an older install is missing it, so sky masking does not start with a delayed in-app download after Open Viewer appears.
  • Reset removes the cloned app/ folder, including the environment, checkpoints, and cached example outputs created inside it.

Automation

LingBot-Map itself is a Python application rather than a REST API. The practical automation surface is the upstream demo.py command plus direct checkpoint downloads.

JavaScript

import { spawn } from "node:child_process";

spawn(
  "python",
  [
    "demo.py",
    "--model_path",
    "checkpoints/lingbot-map.pt",
    "--image_folder",
    "example/church",
    "--mask_sky",
    "--port",
    "8080"
  ],
  {
    cwd: "app",
    stdio: "inherit"
  }
);

Python

import subprocess

subprocess.Popen(
    [
        "python",
        "demo.py",
        "--model_path",
        "checkpoints/lingbot-map.pt",
        "--video_path",
        r"C:\data\sequence.mp4",
        "--fps",
        "10",
        "--port",
        "8080",
    ],
    cwd="app",
)

Curl

curl -L -o app/checkpoints/lingbot-map.pt \
  https://huggingface.co/robbyant/lingbot-map/resolve/main/lingbot-map.pt

curl http://127.0.0.1:8080/

The first curl downloads the default checkpoint directly from Hugging Face. The second curl is a simple readiness probe for the viewer once demo.py is already running.

If you need the Windows fallback explicitly, add --use_sdpa. If you need lower VRAM on SDPA, also lower --kv_cache_sliding_window, for example --kv_cache_sliding_window 16.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

No contributors