Install openreality-mcp to drive Open Reality from Claude Code, Codex, or Cursor: upload scans, run reconstruction, query scenes, and pull robot-training exports.
Developer toolsPython · TypeScriptGitHub @reality-openedOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Open Reality: phone video to AI-queryable 3D scenes. MCP tools for Claude/Codex/Cursor (npm openreality-mcp), the self-hostable broker, and the VGGT-SLAM library, in one repo. BSD-2-Clause.
Taken from the repository README
Loading the full README.
Read the full README ↗| 🎥 Video in, 3D scene out | Upload a phone video. A few minutes later you have a persistent 3D scene. |
| 📏 Measurement | Distances and angles between any points. Numbers are only called metres after you calibrate with real distance; otherwise relative. |
| 🧭 Path planning | Plan a route through the scanned free space to an object or a point. |
| 🤖 Robot-training exports | Turns a scan into LeRobot / GR00T style datasets or an Isaac Sim or MuJoCo scene (hosted service). |
| 🕵️ Scene agents | Server-side agents that survey, label, and answer questions about a scene. |
| 🛠️ 42 tools for your AI | Everything is exposed through MCP. |
| 🧪 Offline simulator | A mock backend fakes the entire workflow with fixture data, so you can develop and demo with no account and no GPU. |
| 🏠 Self-hostable | The full server runs on your own GPU box or your own Modal account, no account with us needed. |
Add the tools to your AI assistant:
claude mcp add openreality -- npx -y openreality-mcp serve
codex mcp add openreality -- npx -y openreality-mcp serve
Add this to claude_desktop_config.json (Settings → Developer → Edit Config)
or ~/.cursor/mcp.json:
{
"mcpServers": {
"openreality": {
"command": "npx",
"args": ["-y", "openreality-mcp", "serve"]
}
}
}
Claude Code plugin (the MCP server plus the workflow skill in one step):
/plugin marketplace add reality-opened/openreality
/plugin install openreality@openreality
Claude desktop extension: download openreality-mcp-<version>.mcpb from the
latest release
and double-click it, or drag it into the Claude desktop window. No terminal needed.
Then sign in once (opens your browser, stores a revocable API key on your machine):
npx -y openreality-mcp login
Scan a room with your phone at open-reality.io, or just ask your assistant to upload a video file. Full per-client setup: open-reality.io/mcp.
Once connected, talk to your assistant like this:
"Upload
~/Videos/kitchen.mp4and reconstruct it."
"What objects are in my latest scan, and how big is the room?"
"The counter edge to the window is 2.4 m. Calibrate the scene, then measure the couch."
"Plan a path from the door to the desk and describe it."
"Export this scan as robot-training data and save the zip locally."
The whole workflow is self-hostable. Read
server/docs/self-hosting.md; the short version:
git clone https://github.com/reality-opened/openreality
cd openreality/server
# Path A: your own GPU box (one process, local disk)
python -m server.selfhost --data-dir ~/openreality-data
# Path B: your own Modal account (CPU web server + GPU worker)
modal deploy modal_selfhost.py
Self-hosted servers need no account: a single token printed at first start is
your login, and the MCP client connects with OPENREALITY_URL plus that token.
[!IMPORTANT] Licensing. This repo is BSD-2-Clause, but the 3D reconstruction model a self-hosted server downloads (VGGT-1B and the VGGT code it runs on) is licensed by its owners as CC BY-NC 4.0, non-commercial use only. Nothing here redistributes it; your server fetches it from the source under their terms. For commercial use, use the hosted service (which runs a commercially licensed model) or get your own license from the model owners.
| Directory | What it is | Ships as |
|---|---|---|
mcp/ | The MCP server: 42 tools, scene resources, the offline simulator, and a full test suite. Developed here directly. | npm openreality-mcp |
server/ | The backend: turns videos into persistent scenes and serves measurement, planning, agents, and exports over a plain REST API. | source (public mirror) |
core/ | The 3D reconstruction library: camera tracking and dense geometry from ordinary video (the VGGT-SLAM 2.0 line), plus metric calibration, object detection, and splat export. | source (public mirror) |
server/ and core/ are curated mirrors of our private working repos, synced
by hand; each carries a MIRROR.md that says exactly what is included and how
it is synced. mcp/ is developed in this repo directly.
flowchart LR
A["📱 phone video"] --> B["server: 3D reconstruction<br/>(GPU job)"]
B --> C[("persistent scene:<br/>geometry + objects + report")]
C --> D["41 MCP tools"]
D --> E["🤖 Claude / Codex / Cursor"]
E -->|"measure · navigate · export"| D
The MCP process always runs on your machine and holds your credentials; every tool call is a typed REST call to a server (ours or yours). Big files are written to your disk, never pasted into the AI's context. Server refusals and uncertainty labels reach the AI unedited, so it cannot pretend a relative number is metres.
The measurement rule is explained in Why our 3D tools refuse to say "metres" until you prove it.
Open Reality stands on other people's research and code. Thank you to:
core/ is the VGGT-SLAM 2.0 line, and the scan demo above is theirs.Issues and pull requests are welcome on any component. Changes to mcp/ land
here directly; fixes to server/ and core/ are folded back into the private
working repos and re-synced out. If you self-host and something breaks, an
issue with your logs is a gift: the self-host paths are young.
BSD-2-Clause for everything in this repository. Third-party models
are fetched from their owners under their own licenses (see the licensing note
above and server/docs/self-hosting.md).