{"id":50280732,"url":"https://github.com/gammahazard/locate-anything","last_synced_at":"2026-05-28T00:02:23.374Z","repository":{"id":360792215,"uuid":"1251711133","full_name":"gammahazard/locate-anything","owner":"gammahazard","description":"Sleek, mobile-friendly web UI for NVIDIA LocateAnything-3B — open-vocabulary object detection \u0026 grounding on your own GPU, via one docker compose up.","archived":false,"fork":false,"pushed_at":"2026-05-27T23:08:15.000Z","size":2314,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-27T23:19:46.191Z","etag":null,"topics":["bounding-boxes","computer-vision","cuda","docker","fastapi","gpu","grounding","locate-anything","machine-learning","nvidia","object-detection","ocr","open-vocabulary-detection","react","self-hosted","tailwindcss","typescript","vision-language-model","web-ui"],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gammahazard.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-27T21:00:17.000Z","updated_at":"2026-05-27T23:08:20.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/gammahazard/locate-anything","commit_stats":null,"previous_names":["gammahazard/locate-anything"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/gammahazard/locate-anything","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gammahazard%2Flocate-anything","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gammahazard%2Flocate-anything/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gammahazard%2Flocate-anything/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gammahazard%2Flocate-anything/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gammahazard","download_url":"https://codeload.github.com/gammahazard/locate-anything/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gammahazard%2Flocate-anything/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33588345,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-27T02:00:06.184Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bounding-boxes","computer-vision","cuda","docker","fastapi","gpu","grounding","locate-anything","machine-learning","nvidia","object-detection","ocr","open-vocabulary-detection","react","self-hosted","tailwindcss","typescript","vision-language-model","web-ui"],"created_at":"2026-05-28T00:02:22.535Z","updated_at":"2026-05-28T00:02:23.369Z","avatar_url":"https://github.com/gammahazard.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# locate-anything\n\nA sleek, mobile-friendly web UI for **[NVIDIA LocateAnything-3B](https://huggingface.co/nvidia/LocateAnything-3B)** — point it at an image, type what you want to find in plain language, and get bounding boxes back. Object detection, phrase grounding, OCR/text localization, document layout, GUI element grounding, and pointing — all from one prompt box.\n\nRun it on your own NVIDIA GPU with a single `docker compose up`.\n\n\u003e [!IMPORTANT]\n\u003e **Model license is non-commercial.** `LocateAnything-3B` is released under the [NVIDIA license](https://huggingface.co/nvidia/LocateAnything-3B) for **academic / research / non-commercial** use only. This UI is a convenience wrapper — using it does not grant any commercial rights to the model. The UI code itself is Apache-2.0 (see [LICENSE](./LICENSE)).\n\n## Features\n\n- **One prompt, many tasks** — detection, phrase grounding, text detection, document layout, GUI grounding, pointing.\n- **Speed/quality toggle** — `fast` / `hybrid` / `slow` Parallel Box Decoding.\n- **Search history** — every search (image + prompt + results) is saved and re-runnable.\n- **Mobile-first** — works on your phone, including the camera.\n- **GPU preflight** — tells you up front whether your card is supported.\n\n## Screenshots\n\n|  |  |\n|---|---|\n| **Home** — upload, prompt, task presets, decode mode | **Detection** — reticle boxes drawn over the image |\n| ![Home view](docs/screenshots/home.png) | ![Detection result](docs/screenshots/detection.png) |\n\n**System** — GPU/health readout, GPU picker, and the configurable backend URL\n\n![System view](docs/screenshots/system.png)\n\n## Requirements\n\n- An NVIDIA GPU: **Ampere / Lovelace / Hopper / Blackwell** — RTX **30 / 40 / 50**-series, A100, H100. ~**12GB+ VRAM** recommended. (The image ships CUDA 12.8 PyTorch with native kernels through Blackwell `sm_120`, so 50-series cards work out of the box; pre-Ampere cards aren't supported by the model.)\n- **Docker** with the NVIDIA Container Toolkit (`--gpus all`). Works on native Linux, **WSL2**, and Windows via Docker Desktop's WSL2 backend.\n- Linux / WSL2 host (the model is Linux + CUDA + BF16 only).\n\n## Supported GPUs\n\nRule of thumb: **any NVIDIA GPU with CUDA compute capability ≥ 8.0 (Ampere or newer)**. The model uses BF16, which rules out pre-Ampere cards. ~12GB+ VRAM is recommended — 8GB cards can work but may run out of memory on large images.\n\n| Architecture | Compute | Consumer (GeForce) | Workstation / Data center |\n|---|---|---|---|\n| **Blackwell** | 10.0 / 12.0 | RTX 5090, 5080, 5070 Ti, 5070, 5060 Ti, 5060 | RTX PRO 6000 Blackwell, B100, B200 |\n| **Hopper** | 9.0 | — | H100, H200, GH200 |\n| **Ada Lovelace** | 8.9 | RTX 4090, 4080 (Super), 4070 Ti/Super, 4070 (Super), 4060 Ti, 4060 | RTX 6000 Ada, L40/L40S, L4 |\n| **Ampere** | 8.0 / 8.6 | RTX 3090 Ti, 3090, 3080 Ti, 3080, 3070 Ti, 3070, 3060 Ti, 3060 (12GB) | A100, A40, A30, A10, RTX A6000/A5000/A4000 |\n\nLaptop/mobile and \"Super\"/\"Ti\" variants of the above are also fine. **Not supported:** GTX 10-series (Pascal), RTX 20-series / GTX 16-series (Turing) — no BF16. Run `bash scripts/check-gpu.sh` to confirm your card.\n\n## Quickstart\n\n### Option A — prebuilt images (no source, no build)\n\nOn Windows, first install **Docker Desktop** (choose the **WSL 2** engine and enable\nWSL Integration). Optionally confirm Docker can see your GPU:\n\n```bash\ndocker run --rm --gpus all nvidia/cuda:12.8.1-base-ubuntu22.04 nvidia-smi\n```\n\nThen, in an empty folder, grab the end-user compose file and start it:\n\n```bash\ncurl -O https://raw.githubusercontent.com/gammahazard/locate-anything/main/docker-compose.ghcr.yml\nmv docker-compose.ghcr.yml docker-compose.yml      # PowerShell: Rename-Item docker-compose.ghcr.yml docker-compose.yml\ndocker compose pull\ndocker compose up\n```\n\nOpen \u003chttp://localhost:8080\u003e. On the **first run** the backend downloads the ~6GB\nmodel into a cached volume — the UI shows \"loading model…\" until it's ready (a minute\nor two), then later runs start in seconds. Pin a version with `LA_VERSION=0.1.1` in a\n`.env` (the image tag has no leading `v`); omit it for `latest`.\n\n### Option B — build from source (developers)\n\n```bash\ngit clone git@github.com:gammahazard/locate-anything.git\ncd locate-anything\ncp .env.example .env\ndocker compose up        # builds the images locally\n```\n\nThen open \u003chttp://localhost:8080\u003e. The first run downloads the ~6GB model into a cached volume; later runs are fast.\n\nNot sure your card is supported? Run the preflight check first:\n\n```bash\nbash scripts/check-gpu.sh\n```\n\n### Ports already in use?\n\nOnly the **web UI** port (8080) needs to be free — the backend isn't published by\ndefault. If 8080 is taken, either set `FRONTEND_PORT` in `.env`, or let the helper\npick the next free port automatically:\n\n```bash\nscripts/run.sh           # finds a free UI port and prints the URL\nscripts/run.sh --ghcr    # prebuilt images   ·   --mock for no-GPU\n```\n\n### No GPU? Try the UI in mock mode\n\nNo GPU, no model download — deterministic fake boxes so you can explore the whole UI on any machine:\n\n```bash\ndocker compose -f docker-compose.yml -f docker-compose.mock.yml up\n```\n\n### Remote GPU (use the UI from anywhere)\n\nNo compatible local card — or on a Mac? Run the stack on any Linux GPU box and\nexpose the backend port, then open the UI anywhere and set the backend URL under\n**System → backend url** — your phone or laptop drives a remote GPU over HTTP:\n\n```bash\ndocker compose -f docker-compose.yml -f docker-compose.expose-backend.yml up\n```\n\n## Development\n\nSee [CONTRIBUTING.md](./CONTRIBUTING.md) for local dev (without Docker), commit conventions, and the test suite.\n\n## Acknowledgements\n\nBuilt on NVIDIA's [LocateAnything-3B](https://research.nvidia.com/labs/lpr/locate-anything/). This project is not affiliated with or endorsed by NVIDIA.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgammahazard%2Flocate-anything","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgammahazard%2Flocate-anything","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgammahazard%2Flocate-anything/lists"}