openreality

reality-openedBSD-2-Clause活跃维护

把手机拍摄的视频重建为可被 AI 查询的 3D 场景,内置 MCP 工具让 Claude、Cursor 等直接调用,并提供可自托管的 broker 与 VGGT-SLAM 库。

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.

v0.4.0发布于 2026-10-20 20:57 UTC653star +8 / 7 天3fork同步于 2026-11-10 11:57 UTC

怎么上手

由 README 提炼,执行前请确认
claude mcp add openreality -- npx -y openreality-mcp serve
npx -y openreality-mcp login
硬件要求按 README 说明

自托管需要自己的 GPU 机器或自己的 Modal 账户(CPU Web 服务 + GPU worker);README 未给出具体显存要求。使用内置离线模拟器则无需 GPU。

支持 Apple Silicon
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

把手机视频变成 AI 可查询的 3D 场景,并通过 MCP 工具让 Claude、Codex、Cursor 直接测量、导航和导出

把手机拍摄的视频重建为可被 AI 查询的 3D 场景,内置 MCP 工具让 Claude、Cursor 等直接调用,并提供可自托管的 broker 与 VGGT-SLAM 库。

核心能力

  • 上传手机视频,几分钟生成持久化 3D 场景
  • 通过 MCP 暴露 42 个工具,供 AI 助手调用
  • 未校准前只报相对单位,校准后才输出米制测量
  • 在扫描出的自由空间内规划到目标点的路径
  • 把扫描导出为 LeRobot/GR00T 数据集或 Isaac Sim/MuJoCo 场景

容易踩的坑

自托管服务器首次启动会下载 VGGT-1B 模型,该模型为 CC BY-NC 4.0 仅限非商业使用,商用需走托管服务或自行取得授权;使用托管服务需先执行 login 登录并保存 API key;server/ 和 core/ 是私有仓库的手工同步镜像,自托管路径尚不成熟,出问题需附日志提 issue。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

4 个版本v0.4.0
  1. v0.4.0openreality-mcp 0.4.0: export a scene to MuJoCo最新正式版2026-10-20 · 2026-10-20 20:57 UTC

    openreality-mcp 0.4.0: export a scene to MuJoCo

    New tool: export_mujoco. One call takes a scene to a loadable MuJoCo model. It builds (or reuses) the scene's mujoco_mjcf export on the server, downloads it, unpacks it to disk, and returns the path to scene.xml:

    import mujoco
    model = mujoco.MjModel.from_xml_path("<scene_xml from the tool result>")   # needs mujoco>=3.3
    

    or python -m mujoco.viewer --mjcf=<path>. The export also ships trajectory.csv and a replay.py that flies the scan camera through the scene.

    What's in the model

    • The scan placed in metres, Z up, with the floor at z=0. Lengths are metric only after you anchor the scene, so export_mujoco is refused (409 metric_scale_required) until you run scene_anchor. The refusal comes back verbatim, with a pointer to the fix.
    • Collision is a floor plane plus one upright box per detected object, each box fit to the scan points inside it. The scan mesh is visual only, because MuJoCo collides any mesh as its convex hull, which would turn a room into one solid block. Walls and undetected furniture do not collide. Every export's manifest.json says this in collision_note.

    Everything else

    • mujoco_mjcf is accepted by export_manifest, export_prepare and export_status.
    • 42 tools (was 41).

    Server side: MuJoCo and Isaac Sim exports now share one core, so both get the same metric gate, gravity alignment and mesh.

    Build the Claude desktop bundle yourself with cd mcp && npm run build:mcpb.

  2. v0.3.1openreality-mcp 0.3.1: Claude desktop extension, Claude Code plugin, MCP Registry manifest2026-09-03 · 2026-09-03 19:47 UTC
    查看更新说明

    openreality-mcp 0.3.1: install from anywhere

    Same 41 tools as 0.3.0, packaged for every place people install MCP servers.

    Claude desktop, one click. Download openreality-mcp-0.3.1.mcpb below and double-click it (or drag it into the Claude desktop window). The settings panel takes an optional server URL for self-hosters and an optional API token; otherwise run npx -y openreality-mcp login once in a terminal.

    Claude Code plugin. The repo is now a plugin marketplace that bundles the MCP server with the workflow skill:

    /plugin marketplace add reality-opened/openreality
    /plugin install openreality@openreality
    

    Official MCP Registry. mcp/server.json and the mcpName field are in place (io.github.reality-opened/openreality-mcp); the registry listing follows the npm publish of this version.

    Everything else

    • All 41 tools now carry readOnlyHint / destructiveHint annotations (no tool deletes anything).
    • mcp/README.md gains a plain-language privacy policy.
    • Acknowledgements section in both READMEs, crediting VGGT-SLAM, VGGT, Depth Anything V2, gsplat, SAM 3, TRELLIS, LeRobot, GR00T, GTSAM, cordis, and the MCP SDK.
    • New post: Why our 3D tools refuse to say "metres" until you prove it.

    Build the bundle yourself with cd mcp && npm run build:mcpb.

  3. demo-assets-v1Demo recordings2026-09-02 · 2026-09-02 18:04 UTC
    查看更新说明

    Terminal demo rendered from docs/demo/demo.tape (VHS): a real Claude Code session driving the openreality MCP tools against the built-in offline simulator. Referenced by the README.

  4. v0.3.02026-09-01 · 2026-09-01 20:37 UTC
    查看更新说明

    First release from the standalone open-source repo.

    • Rebuilt on the cordis plugin architecture: ctx.broker and ctx.mcp services, one plugin per tool namespace, effect-scoped (reversible) tool registration, inject-gated activation. See the Architecture section of the README.
    • Full parity with the last in-tree release line: 0.2.1 transport resilience (GET retry, poll-blip tolerance, progress notifications on long waits) plus the scene_share_access tool (41 tools total).
    • Self-contained: the @reality/protocol wire contract is vendored with a pinned-commit manifest; a mock-backend simulator supports fully offline development.
    • 59 tests: unit, contract, transport, cordis lifecycle, and a real stdio end-to-end suite that records examples/transcript.md.

    Install: npx -y openreality-mcp serve (see https://open-reality.io/mcp for per-client setup).

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Utilities

    🎥  Video in, 3D scene outUpload a phone video. A few minutes later you have a persistent 3D scene.
    📏  MeasurementDistances and angles between any points. Numbers are only called metres after you calibrate with real distance; otherwise relative.
    🧭  Path planningPlan a route through the scanned free space to an object or a point.
    🤖  Robot-training exportsTurns a scan into LeRobot / GR00T style datasets or an Isaac Sim or MuJoCo scene (hosted service).
    🕵️  Scene agentsServer-side agents that survey, label, and answer questions about a scene.
    🛠️  42 tools for your AIEverything is exposed through MCP.
    🧪  Offline simulatorA mock backend fakes the entire workflow with fixture data, so you can develop and demo with no account and no GPU.
    🏠  Self-hostableThe full server runs on your own GPU box or your own Modal account, no account with us needed.

    Quickstart

    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.

    Examples

    Once connected, talk to your assistant like this:

    "Upload ~/Videos/kitchen.mp4 and 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."

    Self Hosting

    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.

    Repo index

    DirectoryWhat it isShips 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.

    Technical details

    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.

    🙏 Acknowledgements

    Open Reality stands on other people's research and code. Thank you to:

    • VGGT-SLAM by Dominic Maggio, Hyungtae Lim and Luca Carlone (MIT SPARK Lab). The reconstruction core in core/ is the VGGT-SLAM 2.0 line, and the scan demo above is theirs.
    • VGGT (Meta AI), the feed-forward 3D backbone a self-hosted server fetches under its own licence (see the note above).
    • Depth Anything V2, the metric-depth model behind our scale-drift correction between map segments.
    • gsplat from the Nerfstudio project, the optional GPU refinement in our splat export.
    • SAM 3 (Meta AI) for segmentation, and SAM 3D Objects and TRELLIS (Microsoft) for object completion and variants on the hosted service.
    • LeRobot (Hugging Face), NVIDIA GR00T and Isaac Sim, whose dataset and scene formats our robot-training exports target.
    • GTSAM for factor-graph optimization, cordis for the plugin runtime, and the MCP TypeScript SDK.

    🤝 Contributing

    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.

    License

    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).