[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-95736":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":8,"htmlUrl":8,"language":9,"languages":8,"totalLinesOfCode":8,"stars":10,"forks":11,"watchers":12,"openIssues":13,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":15,"stars7d":15,"stars30d":15,"stars90d":14,"forks30d":14,"starsTrendScore":16,"compositeScore":17,"rankGlobal":8,"rankLanguage":8,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":8,"pushedAt":8,"updatedAt":23,"readmeContent":24,"aiSummary":8,"trendingCount":14,"starSnapshotCount":14,"syncStatus":25,"lastSyncTime":26,"discoverSource":27},95736,"LightNav-0","lightorigins\u002FLightNav-0","lightorigins",null,"Python",347,21,205,1,0,101,303,91.03,"Apache License 2.0",false,"main",true,[],"2026-09-03 04:01:31","\u003Ch1 align=\"center\">LightNav-0\u003C\u002Fh1>\n\n\u003Ch3 align=\"center\">Eliciting VLM Spatial Intelligence for Generalist Embodied Navigation\u003C\u002Fh3>\n\n\u003Cp align=\"center\">\u003Cb>Light Origins Team\u003C\u002Fb>\u003C\u002Fp>\n\n\u003Cdiv id=\"top\" align=\"center\">\n\n[![arXiv](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FarXiv-2608.30935-b31b1b.svg)](https:\u002F\u002Farxiv.org\u002Fabs\u002F2608.30935)\n[![Project Page](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FProject%20Page-9c403d?style=flat)](https:\u002F\u002Fwww.lightorigins.com\u002Fen\u002Fblog\u002Flightnav-0)\n[![Model](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F🤗%20Model-LightNav--0-yellow.svg)](https:\u002F\u002Fhuggingface.co\u002FLightOriginsHQ\u002FLightNav-0)\n[![Discord](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDiscord-5865F2?style=flat&logo=discord&logoColor=white)](https:\u002F\u002Fdiscord.gg\u002FzwZuD9JG)\n[![WeChat](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FWeChat-07C160?style=flat&logo=wechat&logoColor=white)](#community)\n[![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-Apache_2.0-blue.svg)](LICENSE)\n[![Python](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPython-3.11-3776AB.svg)](pyproject.toml)\n\n\u003C\u002Fdiv>\n\n\u003Cdiv align=\"center\">\n\n![LightNav-0 driving four different robots through an unseen park from language instructions, with the predicted trajectory overlaid on each robot's own camera](docs\u002Fassets\u002Fhero_cross_embodiment.gif)\n\n*Humanoid, quadruped, wheeled and aerial robots in an unseen park, each following a target\nnamed in language. No teleoperation, fully autonomous.*\n\n\u003C\u002Fdiv>\n\n## 🏡 About\n\n\u003Cdiv align=\"center\">\n  \u003Cimg src=\"docs\u002Fassets\u002Fteaser.png\" alt=\"LightNav-0 overview: a simulation-based data engine, three-stage model training, zero-shot deployment onto four robot embodiments, and success-rate comparisons on ten public benchmarks\" width=\"95%\"\u002F>\n\u003C\u002Fdiv>\n\n\u003Cbr>\n\n**LightNav-0** is a compact generalist embodied navigation model that elicits the spatial\nintelligence of a pretrained vision-language model (Qwen3-VL) and aligns it with navigation,\nwithout task-specific prediction heads. Diverse tasks share one token interface: dual-channel\npointing expresses task-, scene- and embodiment-agnostic spatial intent, and a residual\nvector-quantized action tokenizer maps that intent to precise, embodiment-specific\ntrajectories — so instruction following, open-vocabulary object navigation and visual tracking\nlive in a single model that transfers zero-shot across robot embodiments and scenes.\n\n## 🧠 Method\n\n\u003Cdiv align=\"center\">\n  \u003Cimg src=\"docs\u002Fassets\u002Fpipeline.png\" alt=\"LightNav-0 architecture: a pretrained VLM backbone consumes a compressed egocentric RGB history and a language instruction, then emits dual-channel pointing tokens followed by three RVQ action tokens that decode to ten SE(2) waypoints\" width=\"95%\"\u002F>\n\u003C\u002Fdiv>\n\n\u003Cbr>\n\nLightNav-0 is instantiated from **Qwen3-VL-4B-Instruct** and adds no navigation-specific\nmodules — no waypoint predictor, no task-specific action head, no per-embodiment expert. Only\nthe vocabulary is extended, with indexed pointing tokens and RVQ action tokens, so both the\nspatial reasoning trace and the action codes are decoded through the backbone's original\nautoregressive LM head.\n\nAt each decision step the model consumes a timestamped egocentric RGB history and a\nnatural-language instruction, interleaved in a single causal sequence, and emits:\n\n1. **Dual-channel pointing** — an *affordance* point (a feasible local direction or free-space\n   waypoint) and an *object* point (the task goal), each as one image-grid token. This is an\n   explicit spatial reasoning trace that grounds the plan in pixels before any action is\n   generated.\n\n2. **Three RVQ action tokens**, which decode to 10 future SE(2) waypoints — a common geometric\n   interface handed to each embodiment's own low-level controller.\n\nTask semantics come entirely from the instruction; there is no task-identification token, and\nthe same backbone, token interface and objective serve every navigation task.\n\n### Temporally Aware History Compression\n\nNavigation needs both recent geometric detail and long-horizon context, but encoding every\nframe at native resolution makes the visual-token count grow without bound. LightNav-0\ncompresses history by recency, following the shape of the Ebbinghaus forgetting curve: the\nsampling rate decays exponentially with frame age while the spatial pooling stride grows\nexponentially, so distant observations contribute fewer and coarser tokens and the current\nobservation keeps the finest detail. Timestamp tokens preserve ordering after pooling. The\ncompressor runs after the vision transformer under configurable pixel budgets of 256K, 576K\nand 1M, bounding context length without collapsing the whole history into one fixed-resolution\nsummary.\n\n### RVQ Action Tokenizer\n\n\u003Cdiv align=\"center\">\n  \u003Cimg src=\"docs\u002Fassets\u002Frvq.png\" alt=\"Hierarchical residual vector-quantized action tokenizer: a coarse codebook plus two residual codebooks quantize a ten-step SE(2) trajectory, and the composed codewords decode back into a trajectory\" width=\"95%\"\u002F>\n\u003C\u002Fdiv>\n\n\u003Cbr>\n\nA 10-step SE(2) trajectory is quantized by a coarse 256-entry codebook and two residual\n256-entry codebooks, resolving roughly 0.9 m, 7 cm and 4 cm respectively. Any non-empty token\nprefix already decodes into an executable coarse trajectory, and each further residual level\nrefines geometric precision — so the same three tokens express both the gross motion and the\ncentimetre-scale shape of the path.\n\n## 🏆 Benchmarks\n\nOne shared checkpoint, no per-benchmark fine-tuning. Every LightNav-0 number below comes from a\nsingle forward RGB stream — no depth, odometry or panoramic rig. Baselines are the strongest\nmonocular entries; full tables, including NE \u002F nDTW \u002F CR and the panoramic comparisons, are in\nthe paper.\n\n### Instruction Following (VLN-CE)\n\nVal-unseen splits of R2R and the longer-horizon RxR.\n\n| Model | R2R SR (%) | R2R SPL (%) | RxR SR (%) | RxR SPL (%) |\n| :--- | :---: | :---: | :---: | :---: |\n| NaVILA | 54.0 | 49.0 | 49.3 | 44.0 |\n| StreamVLN | 56.9 | 51.9 | 52.9 | 46.0 |\n| DualVLN | 64.3 | 58.5 | 61.4 | 51.8 |\n| CorrectNav | 65.1 | 62.3 | 69.3 | 63.3 |\n| Qwen-RobotNav-8B | 65.7 | 59.6 | 73.4 | 63.5 |\n| **LightNav-0** | **68.5** | **62.8** | **73.6** | **64.5** |\n\n### Object-Goal and Open-Vocabulary Navigation\n\nSuccess rate on the six ObjectNav settings. HM3D-OVON tests category names never seen in\ntraining, as synonyms and as entirely unseen classes.\n\n| Model | MP3D | HM3D v1 | HM3D v2 | OVON Seen | OVON Syn. | OVON Unseen |\n| :--- | :---: | :---: | :---: | :---: | :---: | :---: |\n| VLFM | 36.4 | 52.5 | 63.6 | 35.2 | 32.4 | 35.2 |\n| SG-Nav | 40.2 | 54.0 | 49.6 | — | — | — |\n| CogNav | 46.6 | 72.5 | — | — | — | — |\n| Uni-NaVid | — | 73.7 | — | 41.3 | 43.9 | 39.5 |\n| MTU3D | — | — | — | 55.0 | 45.0 | 40.8 |\n| **LightNav-0** | **53.3** | **74.5** | **79.5** | **55.3** | **53.3** | **47.0** |\n\n### Embodied Visual Tracking (EVT-Bench)\n\nSTT is single-target tracking; DT adds distractors that look like the target.\n\n| Model | STT SR (%) | STT TR (%) | DT SR (%) | DT TR (%) |\n| :--- | :---: | :---: | :---: | :---: |\n| Uni-NaVid | 53.3 | 67.2 | 31.9 | 50.1 |\n| TrackVLA | 85.1 | 78.6 | 57.6 | 63.2 |\n| VLingNav | 88.4 | 81.2 | 67.6 | 73.5 |\n| ReferTrack | 89.4 | **92.5** | 73.3 | **81.8** |\n| **LightNav-0** | **91.7** | 87.7 | **82.6** | 80.1 |\n\nOn DT, LightNav-0 also passes every panoramic and multi-camera system in the paper, including\nCoMaTrack at 74.2 SR.\n\n### INSIGHT-Bench\n\nOur deployment-oriented benchmark: 1,097 episodes across 210 indoor and outdoor scenes, with\nevery policy driven through one shared 120° forward RGB interface and a 300-action budget.\n\n| Model | SR (%) | SPL (%) | NE (m) |\n| :--- | :---: | :---: | :---: |\n| StreamVLN | 11.6 | 10.8 | 6.56 |\n| Uni-NaVid | 24.3 | 22.1 | 4.91 |\n| NaVid | 26.9 | 23.0 | 4.25 |\n| JanusVLN | 27.4 | 24.0 | 4.89 |\n| **LightNav-0** | **43.7** | **41.5** | **3.88** |\n\nEpisodes and evaluation code are released separately; this repository ships the\nVLN-CE \u002F ObjectNav and EVT-Bench harnesses.\n\n### Scaling Analysis\n\nHow R2R and RxR val-unseen respond to backbone size, training-data volume and training-environment\ncoverage.\n\n\u003Cdiv align=\"center\">\n  \u003Cimg src=\"docs\u002Fassets\u002Fscaling.png\" alt=\"Three line charts on continuous VLN: success rate and SPL against backbone size, fraction of training data, and fraction of training environments, for R2R and RxR\" width=\"95%\"\u002F>\n\u003C\u002Fdiv>\n\n\u003Cbr>\n\nThree different behaviours. **Model scaling** saturates: 2B → 4B lifts R2R SR\u002FSPL by 8.6\u002F7.4\npoints, but 8B is mixed and mostly slightly worse. **Data scaling** is monotonic yet\ndiminishing — the last doubling, from half the corpus to all of it, buys only 0.8 R2R SR.\n**Environment scaling** is the one axis that keeps paying: going from 1\u002F8 of the training\nenvironments to all of them adds 16.7\u002F16.2 points on R2R and 21.1\u002F19.1 on RxR, ahead of what\ndata scaling delivers over the matched range. Scene diversity, not parameters or sheer hours,\nis the reliable lever.\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Embodied reasoning (LightNav-ER)\u003C\u002Fb>\u003C\u002Fsummary>\n\n\u003Cbr>\n\nThe Stage-I embodied-reasoning checkpoint used to initialise LightNav-0, evaluated before any\nnavigation alignment. A 4B model that outscores an 8B spatially-specialised one on the\ncomplete-set average.\n\n| Model | Params | Point-Bench | RefSpatial | RoboSpatial POI | RoboSpatial VQA | Where2Place | CV-Bench | ERQA | EmbSpatial | Avg. |\n| :--- | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: |\n| Qwen3-VL | 4B | 58.2 | 45.5 | **64.8** | 69.7 | 64.0 | 85.6 | 39.5 | 77.6 | 63.1 |\n| Qwen3.5-4B | 4B | 60.4 | 54.6 | 47.9 | 59.7 | 61.3 | 85.0 | 40.8 | 76.8 | 60.8 |\n| Molmo2-ER | 8B | **77.3** | 52.5 | 32.0 | **73.4** | 54.0 | 87.8 | **46.8** | 78.8 | 62.8 |\n| **LightNav-ER** | 4B | 64.5 | **57.4** | 56.5 | 71.9 | **76.6** | **88.4** | 43.8 | **79.8** | **67.4** |\n\n\u003C\u002Fdetails>\n\n## ⚡ Quick Start\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Flightorigins\u002FLightNav-0.git && cd LightNav-0\npython3.11 -m venv .venv && source .venv\u002Fbin\u002Factivate\npip install -e \".[vllm,video]\"\nhf download LightOriginsHQ\u002FLightNav-0 --local-dir checkpoints\u002FLightNav-0\n```\n\nPredict on a video clip — a released checkpoint ships its own action decoder, so\n`--model_path` is the only asset argument needed:\n\n```bash\nlightnav-predict --model_path checkpoints\u002FLightNav-0 \\\n    --backend vllm_local --video clip.mp4 --fps 4 \\\n    --instruction \"follow the person in the red shirt\"\n```\n\nOr serve it and stream frames over WebSocket:\n\n```bash\nPORT=8050 lightnav-serve --task tracking --model_path checkpoints\u002FLightNav-0 --backend vllm_local\nlightnav-ws-client --server ws:\u002F\u002Flocalhost:8050 --video clip.mp4 --fps 4 \\\n    --instruction \"follow the person in the red shirt\"\n```\n\nHabitat evaluation, EVT-Bench, the Python API, Docker and the Blackwell `sm_103` workaround:\n**[docs\u002FGETTING_STARTED.md](docs\u002FGETTING_STARTED.md)**.\n\n## 🕹️ Try It in Simulation\n\n[`mujoco_demo\u002F`](mujoco_demo\u002F) is a self-contained MuJoCo TurtleBot in a bundled ProcTHOR\nscene — no ROS, no Habitat, no GPU on the client side:\n\n```bash\ncd mujoco_demo && .\u002Frun.sh        # needs uv; then open http:\u002F\u002F127.0.0.1:8088\n```\n\nPoint the web console at your `lightnav-serve` address and type an instruction; it drives with\nthe same MPC and client protocol as the real robots in\n[`robot_deploy\u002F`](robot_deploy\u002FREADME.md):\n\n![MuJoCo demo: the simulated robot navigates to the trashcan from a language instruction](docs\u002Fassets\u002Fmujoco_demo.gif)\n\n## 🤖 Real-Robot Deployment\n\nThe model runs on a GPU host behind `lightnav-serve`; the robot runs a thin WebSocket client\n(any language) that streams JPEG frames plus the instruction and executes the first returned\nwaypoint each control period. Several robots can share one server — sessions are\nmicro-batched.\n\nDon't want to write the robot side yourself? [`robot_deploy\u002F`](robot_deploy\u002F) is a complete\nROS 2 on-robot stack — camera driver, WebSocket client, MPC waypoint tracker and a web control\npanel — with adapters for the Unitree Go2 and LimX TRON 1, and a\n[bring-your-own-robot](robot_deploy\u002FREADME.md#bring-your-own-robot) adapter interface.\n\nThe client loop, velocity mapping and wire protocol are in\n[docs\u002FGETTING_STARTED.md](docs\u002FGETTING_STARTED.md#real-robot-deployment),\n[docs\u002FDEPLOYMENT.md](docs\u002FDEPLOYMENT.md) and [docs\u002FPROTOCOL.md](docs\u002FPROTOCOL.md).\n\n## 🔗 Citation\n\nIf you find this work helpful, please consider citing:\n\n```bibtex\n@misc{lightnav0,\n  title  = {LightNav-0: Eliciting VLM Spatial Intelligence for Generalist Embodied Navigation},\n  author = {Light Origins Team},\n  year   = {2026},\n  eprint = {2608.30935},\n  archivePrefix = {arXiv},\n  url    = {https:\u002F\u002Farxiv.org\u002Fabs\u002F2608.30935}\n}\n```\n\n## 🙏 Acknowledgements\n\nBuilt on [Qwen3-VL](https:\u002F\u002Fgithub.com\u002FQwenLM\u002FQwen3-VL), [vLLM](https:\u002F\u002Fgithub.com\u002Fvllm-project\u002Fvllm),\n[Habitat](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fhabitat-lab), [VLN-CE](https:\u002F\u002Fgithub.com\u002Fjacobkrantz\u002FVLN-CE)\nand [EVT-Bench \u002F TrackVLA](https:\u002F\u002Fgithub.com\u002Fwsakobe\u002FTrackVLA). Third-party code and licences are\nlisted in [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md).\n\n## 📄 License\n\nThis project is released under the [Apache License 2.0](LICENSE). EVT-Bench itself is\nCC BY-NC-SA 4.0 and is not redistributed here.\n\n\u003Ca id=\"community\">\u003C\u002Fa>\n\n## 💬 Community\n\nQuestions, deployment notes and release news — join us on\n[Discord](https:\u002F\u002Fdiscord.gg\u002FzwZuD9JG), or scan to join the WeChat group:\n\n\u003Cdiv align=\"center\">\n  \u003Cimg src=\"docs\u002Fassets\u002Fwechat_group.png\" alt=\"WeChat QR code for the LightOrigins discussion group\" width=\"280\"\u002F>\n\u003C\u002Fdiv>\n",2,"2026-09-02 02:30:06","CREATED_QUERY"]