FigMirror:让你的数据画出任意论文图的风格。
选一张参考图,粘贴自己的数据,得到可编辑的 matplotlib 脚本和 camera-ready PDF。

展示 | 快速开始 | 工作原理 | Method | Contribute
English | 中文
FigMirror 使用一张参考图作为风格目标,然后通过 Drawer / Reviewer 迭代循环,把你的数据画成同一类论文图的视觉风格。
| 参考图 | FigMirror 输出 |
![]() |
![]() |
| 参考图 | FigMirror 输出 | 参考图 | FigMirror 输出 |
![]() |
![]() |
![]() |
![]() |
手头没有合适参考图?可以先从 139 张论文图、25 类图表家族里挑一张。
如果你已经在 Claude Code 或 Codex 里,直接把下面这句话粘贴给 agent:
Install FigMirror for me: https://github.com/VILA-Lab/FigMirror
如果你想在浏览器里上传参考图、预览结果、查看迭代过程和继续微调,用这个方式。
如果还没有 uv:python3 -m pip install uv。
git clone https://github.com/VILA-Lab/FigMirror.git && cd FigMirror
bash scripts/install.sh
uv run python scripts/figcopy_serve.py --workspace .artifacts/figmirror-workspace --backend codex
打开 http://127.0.0.1:8765/。
如果你只想在 agent 里使用 FigMirror,不需要 Web UI,用这个方式。
curl -fsSL https://raw.githubusercontent.com/VILA-Lab/FigMirror/main/scripts/install.sh | bash
然后上传一张论文图截图,粘贴你的数据,并告诉 agent:
Use FigMirror to mirror this figure's style with my data.
如果需要手动选择安装目标、使用 Claude 后端或排查问题,请看 Detailed Install。

FigMirror 示意图。左侧是核心 agent 循环;右侧是 Grounded Measurement。
FigMirror 使用 agentic Drawer-Reviewer 循环。Drawer 先画出候选图,并通过 Grounded Measurement 做自检;Reviewer 再把候选图和参考图对比,输出视觉审查、修改清单和需要保留的部分。每一轮保留下来的正确部分会累积成 anchor,减少后续迭代中的风格漂移。Aesthetic Lib 在 agent 判断不一致或 Drawer 信心不足时,提供论文图常见视觉规则和 fallback 原则。
对于 3D 图,FigMirror 会加入 geometry-aware prompting,覆盖 camera、scale、surface、lighting 和 repair checks,帮助循环保留参考图的 3D 构图,同时仍然产出可编辑的 matplotlib 代码。
Grounded Measurement 利用了 computer-use-trained foundation models 的两个能力:Measurement with Axis 让模型返回视觉目标的 x/y 坐标;Resonate with Code 把这些坐标转成可执行检查,比如裁剪一段线并从像素中读取颜色。
更完整的算法、架构、产品边界和 spec map 见 docs/method.md。Web UI 细节见 scripts/README_figcopy_serve.md。
欢迎给 FigMirror 做贡献!
如果遇到安装问题、bug,或者有希望 FigMirror 学会的图表 case,可以开 issue;如果想贡献 showcase、prompt 改进、UI polish 或小型回归测试,可以直接开 PR。
从 docs/contributing.md 开始。适合入门的 PR 包括:添加一个 showcase example,改进一个 Web UI 交互,收紧安装文档,或者给 runner behavior 加一个小回归测试。
$ claude mcp add FigMirror \
-- python -m otcore.mcp_server <graph>