[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-92324":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":15,"stars30d":16,"stars90d":15,"forks30d":15,"starsTrendScore":15,"compositeScore":17,"rankGlobal":9,"rankLanguage":9,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":9,"pushedAt":9,"updatedAt":23,"readmeContent":24,"aiSummary":25,"trendingCount":15,"starSnapshotCount":15,"syncStatus":26,"lastSyncTime":27,"discoverSource":28},92324,"lingbot-desktop-mac","donalleniii\u002Flingbot-desktop-mac","donalleniii","Minimal Mac-native desktop front end and 3D point-cloud viewer for Lingbot-Map streaming 3D reconstruction. Open source, Apache-2.0.",null,"Python",62,4,51,1,0,8,42.9,"Apache License 2.0",false,"main",true,[],"2026-07-22 04:02:05","# Lingbot-Desktop (Mac)\n\n> Also published at the **Asteria Research and Technology (A.R.T.)** home:\n> \u003Chttps:\u002F\u002Fgithub.com\u002FAsteria-Research-and-Technology\u002Flingbot-desktop-mac>.\n\nA minimal, Mac-native desktop front end and custom 3D viewer for\n[Lingbot-Map](https:\u002F\u002Fgithub.com\u002FRobbyant\u002Flingbot-map)'s streaming 3D\nreconstruction. Drag a video into the window and, a few minutes later, explore a\n**3D point cloud** and the solved camera trajectory in a customized\n[viser](https:\u002F\u002Fgithub.com\u002Fnerfstudio-project\u002Fviser) viewer. Everything runs\nlocally on Apple Silicon (MPS). No cloud, no remote GPU, by design.\n\n> **What it is, precisely:** the output is a **point cloud** in a customized\n> viser viewer. It is **not** Gaussian splatting. The reconstruction model is\n> Lingbot-Map's work. My contribution is the Mac wrapper: the drag-in workflow,\n> the FastAPI\u002Fdesktop shell, the installer, and the viewer UX (upright\n> auto-alignment, hero framing, a playback strip, and point-cloud\u002Fsplat-format\n> save buttons).\n\n**Built on [Lingbot-Map](https:\u002F\u002Fgithub.com\u002FRobbyant\u002Flingbot-map) by the Robbyant\nTeam.** Paper: \"Geometric Context Transformer for Streaming 3D Reconstruction,\"\nChen et al., [arXiv:2604.14141](https:\u002F\u002Farxiv.org\u002Fabs\u002F2604.14141). This project is\nan independent wrapper and is not endorsed by or affiliated with the Robbyant Team.\n\nDeveloped with Asteria Research and Technology (A.R.T.).\n\n---\n\n## License\n\nReleased as open source under the **Apache License 2.0**, which permits\ncommercial and non-commercial use. It is intended as a community\u002Fresearch\nrelease. Note that the model weights are downloaded separately and may carry\ntheir own, possibly more restrictive, terms, so review them before use. All I ask\nin return is attribution.\n\nSee [LICENSE](LICENSE) for the full text and [NOTICE](NOTICE) for attribution and\nthe licenses of the upstream projects (one of which, VGGT, is non-commercial).\n\n---\n\n## Quick start\n\nOne line, on an Apple Silicon Mac:\n\n```bash\ncurl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Fdonalleniii\u002Flingbot-desktop-mac\u002Fmain\u002Finstall.sh | bash\n```\n\nThe installer is conservative: it detects Homebrew, ffmpeg\u002Fffprobe, and a Python\n3.10 toolchain, and **asks before installing anything**. It then creates a\nvirtual environment, installs Apple-Silicon PyTorch and pinned dependencies,\nclones Lingbot-Map at a pinned commit and applies the Mac\u002FMPS patches, and\ndownloads the checkpoint (after showing you its license note). It never installs\nFlashInfer or kaolin and never builds CUDA extensions.\n\n**Prefer to read before you run?** You should. Open\n[install.sh](install.sh), or follow the manual steps below.\n\n### Manual install (the trust-conscious path)\n\n```bash\n# 1. Clone this repo\ngit clone https:\u002F\u002Fgithub.com\u002Fdonalleniii\u002Flingbot-desktop-mac.git ~\u002FProjects\u002Flingbot-desktop\ncd ~\u002FProjects\u002Flingbot-desktop\n\n# 2. Python 3.10 venv + pinned deps (uv recommended; provisions Python 3.10 for you)\nuv venv --python 3.10 .venv\nuv pip install --python .venv\u002Fbin\u002Fpython -r requirements-lock.txt\n\n# 3. Clone upstream Lingbot-Map at the pinned commit and apply the Mac\u002FMPS patches\ngit clone https:\u002F\u002Fgithub.com\u002FRobbyant\u002Flingbot-map.git app\ngit -C app checkout 7ae07810ddac6f449f856ca0f6260ab3e1dcaa84\ngit -C app apply \"$(pwd)\u002Fpatch\u002Flingbot-map-mps-and-viewer.patch\"   # run from the repo root\ncp patch\u002Fpresentation.py app\u002Flingbot_map\u002Fvis\u002Fpresentation.py\nuv pip install --python .venv\u002Fbin\u002Fpython --no-deps -e app\n\n# 4. Download the checkpoint (~4.63 GB) and verify it (see \"Model weights\" below)\nmkdir -p checkpoints\ncurl -fL -o checkpoints\u002Flingbot-map-long.pt \\\n  https:\u002F\u002Fhuggingface.co\u002Frobbyant\u002Flingbot-map\u002Fresolve\u002Fmain\u002Flingbot-map-long.pt\nshasum -a 256 checkpoints\u002Flingbot-map-long.pt\n# expect: 832bc82cbae0bc9bbe946ef5ee1f7226abd8c0e183ccf8beddbb3d133576f409\n```\n\n(ffmpeg is used to read a clip's duration for frame estimates: `brew install ffmpeg`.)\n\n---\n\n## Launch and use\n\n```bash\ncd ~\u002FProjects\u002Flingbot-desktop\n.\u002Flaunch.command      # starts the server, opens http:\u002F\u002Flocalhost:8000\n```\n\n`launch.command` is also double-clickable in Finder.\n\n1. **Drop a video** anywhere in the window (or click Choose Video). It previews\n   immediately and never leaves your Mac.\n2. Check the estimated time (the sampling rate is chosen automatically; override\n   it under Options) and click **Create 3D Scene**.\n3. While it runs, a live progress bar shows the stage, frame count, and time\n   remaining.\n4. When the scene is ready, the 3D viewer fills the window: orbit, use the\n   bird's-eye view, the ground plane, and the rotation gizmo. Save the point\n   cloud (PLY) from the viewer; a splat-format PLY is also written for import\n   into splat viewers (it is converted from the point cloud, not trained\n   Gaussian splatting).\n\n### Capture tip (this matters a lot)\n\nReconstruction quality depends on parallax. **Translate the camera through the\nscene**, walk it around and past objects, and **avoid pure rotations** (panning\nin place gives the model almost nothing to triangulate). Steady, deliberate\nmotion beats fast, shaky motion.\n\n---\n\n## Performance and hardware caveat\n\nDeveloped and measured on the dev machine: an **Apple Silicon M5 Max MacBook\nPro with 128 GB unified memory**. Performance and reconstruction time **will\nvary on other hardware, likely significantly** on machines with less unified\nmemory or weaker GPUs. Treat the numbers below as \"measured on the dev machine;\nyour mileage may vary.\"\n\nVerdict: **`CLEAN_MPS_SLOW`**, roughly **0.3 to 1.0 frames\u002Fsec**. It runs on\nclean Apple-Silicon MPS (no CUDA, no FlashInfer, no CPU-fallback crutch needed)\nand reconstructs real handheld footage into a coherent point cloud, but it is\n**usable-but-slow**: \"drop a clip in, wait a few minutes, then explore,\" not\ninteractive.\n\nMeasured on the dev machine:\n\n| Input | Mode | Result |\n|---|---|---|\n| Bundled `loop` scene, 16 frames | streaming, clean MPS | ~1.9 fps |\n| Bundled `loop` scene, 237 frames (294x518) | windowed | 242 s to viewer, ~1.0 fps |\n| Real handheld clip, 100 frames (portrait cropped to 518x518) | windowed, clean MPS | ~236 s total (~3.9 min), ~0.45 fps, coherent |\n\nNotes:\n- Portrait phone footage is the slow case: the model crops it to a 518x518\n  square, which is more tokens per frame than a landscape crop.\n- Plain streaming mode does not scale on MPS (per-frame cost balloons and long\n  runs get killed), so the app **auto-switches to windowed mode with small\n  windows** above roughly 48 sampled frames.\n- It is not real-time and is not meant to be.\n\nFull build log, the three MPS code patches, and how these numbers were obtained\nare documented in the developer's local notes.\n\n---\n\n## Model weights\n\nThe reconstruction checkpoint is downloaded separately from Hugging Face and is\n**not** part of this repository.\n\n- **File:** `lingbot-map-long.pt` (~4.63 GB, 4,632,303,465 bytes)\n- **URL:** \u003Chttps:\u002F\u002Fhuggingface.co\u002Frobbyant\u002Flingbot-map\u002Fresolve\u002Fmain\u002Flingbot-map-long.pt>\n- **sha256:** `832bc82cbae0bc9bbe946ef5ee1f7226abd8c0e183ccf8beddbb3d133576f409`\n  (matches Hugging Face's published `x-linked-etag`; the installer verifies it)\n\nThe checkpoint carries **its own license terms**, which may be more restrictive\nthan this project's Apache-2.0 code. Its model lineage includes VGGT, which is\nreleased under a non-commercial research license. **Review the checkpoint's\nlicense on Hugging Face before use.**\n\n---\n\n## What is (and isn't) in this repo\n\nThis repo contains only original wrapper code plus a patch set. It does **not**\nre-host Lingbot-Map's source or the model weights; the installer fetches those.\n\n```\nlingbot-desktop\u002F\n├── server.py                # FastAPI backend (port 8000)          [original]\n├── desktop_app.py           # pywebview macOS shell                [original]\n├── launch.command           # double-click launcher                [original]\n├── web\u002Findex.html           # single-page UI                       [original]\n├── assets\u002F                  # app icon + glass.css                  [original]\n├── patch\u002F\n│   ├── lingbot-map-mps-and-viewer.patch  # my changes to upstream demo.py, rope.py, viewer\n│   └── presentation.py                   # new module, mine, copied into lingbot_map\u002Fvis\u002F\n├── install.sh               # conservative installer\n├── requirements-lock.txt    # fully pinned dependencies\n├── LICENSE                  # Apache 2.0\n└── NOTICE                   # attribution + upstream licenses\n\n# created by the installer, not committed:\n#   app\u002F          cloned Robbyant\u002Flingbot-map at the pinned commit, patched\n#   checkpoints\u002F  lingbot-map-long.pt (downloaded from Hugging Face)\n#   .venv\u002F        Python 3.10 environment\n```\n\nPer Section 4(b) of the Apache License 2.0, the files modified relative to\nupstream are listed in [NOTICE](NOTICE) and expressed as a patch in `patch\u002F`.\n\n---\n\n## Acknowledgments\n\n- **[Lingbot-Map](https:\u002F\u002Fgithub.com\u002FRobbyant\u002Flingbot-map)** by the Robbyant\n  Team (Apache 2.0), the streaming 3D reconstruction model this wraps.\n- The upstream stack Lingbot-Map credits:\n  [VGGT](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fvggt) (non-commercial research\n  license), [DINOv2](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fdinov2) (Apache 2.0),\n  and [FlashInfer](https:\u002F\u002Fgithub.com\u002Fflashinfer-ai\u002Fflashinfer) (Apache 2.0,\n  CUDA-only and not used by this Mac build).\n- [viser](https:\u002F\u002Fgithub.com\u002Fnerfstudio-project\u002Fviser) for the 3D viewer.\n","Lingbot-Desktop（Mac）是一个面向Apple Silicon Mac的轻量级本地3D重建桌面应用，专为Lingbot-Map的流式三维重建结果提供原生交互界面。核心功能包括：拖入视频文件后本地运行（基于MPS加速）、实时生成并可视化3D点云、显示求解的相机轨迹、支持点云导出及自定义视图控制（如自动正立对齐、关键帧定位、播放条等）。所有计算均在本地完成，不依赖云端或远程GPU。适用于科研人员、计算机视觉开发者及需要快速验证流式SfM\u002FSLAM重建效果的本地化实验场景。",2,"2026-07-08 04:30:06","CREATED_QUERY"]