[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-78524":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":14,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":10,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":23,"hasPages":21,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":38,"readmeContent":39,"aiSummary":40,"trendingCount":16,"starSnapshotCount":16,"syncStatus":15,"lastSyncTime":41,"discoverSource":42},78524,"FigMirror","VILA-Lab\u002FFigMirror","VILA-Lab","An Automated AI Agent Tool for Plotting Your Data in Any Paper's Figure Style.","",null,"Python",457,28,36,2,0,3,421,17,75.39,false,"main",true,[25,26,27,28,29,30,31,32,33,34,35,36,37],"agent","agent-skills","claude-code","codex","data-visualization","llm-agents","matplotlib","paper-figures","plotting","python","research-tools","scientific-visualization","skill","2026-06-12 04:01:23","\u003Ch1 align=\"center\">\n  \u003Cimg src=\"docs\u002Fassets\u002Ffigmirror-wordmark.svg\" alt=\"FigMirror\" width=\"400\">\n\u003C\u002Fh1>\n\n\u003Cp align=\"center\">\n  \u003Cb>FigMirror: Plot Your Data in Any Paper's Style.\u003C\u002Fb>\u003Cbr\u002F>\n  Pick a reference figure, paste your data, and get an editable matplotlib script plus a camera-ready PDF.\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"docs\u002Fassets\u002Fshow.png\" alt=\"FigMirror turns repeated plotting-code edits into a polished paper figure\" width=\"100%\">\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"#web-ui\">\u003Cimg alt=\"Web UI\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FWeb%20UI-local%20app-2563eb?style=flat&logo=googlechrome&logoColor=white\">\u003C\u002Fa>\n  \u003Ca href=\"#codex-skill\">\u003Cimg alt=\"Codex skill\" src=\"docs\u002Fassets\u002Fbadges\u002Fcodex.svg\">\u003C\u002Fa>\n  \u003Ca href=\"#claude-code-skill\">\u003Cimg alt=\"Claude Code skill\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FClaude%20Code-skill-d97706?style=flat&logo=anthropic&logoColor=white\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Fspaces\u002Fzcahjl3\u002Ffigcopy-taxonomy-gallery\">\u003Cimg alt=\"FigMirror gallery\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FGallery-139%20figures-f59e0b?style=flat&logo=huggingface&logoColor=white\">\u003C\u002Fa>\n  \u003Ca href=\"docs\u002Fcontributing.md\">\u003Cimg alt=\"Contributions welcome\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FContributions-welcome-22c55e?style=flat&logo=github&logoColor=white\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"#showcase\">Showcase\u003C\u002Fa> |\n  \u003Ca href=\"#quick-start\">Quick Start\u003C\u002Fa> |\n  \u003Ca href=\"#how-it-works\">How It Works\u003C\u002Fa> |\n  \u003Ca href=\"#star-history\">Star History\u003C\u002Fa> |\n  \u003Ca href=\"docs\u002Fmethod.md\">Method\u003C\u002Fa> |\n  \u003Ca href=\"docs\u002Fcontributing.md\">Contribute\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cb>English\u003C\u002Fb> | \u003Ca href=\"README.zh-CN.md\">中文\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cvideo src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F0656009c-77c7-41e5-8423-07c3411aef13\" width=\"900\" controls\n  muted playsinline>\u003C\u002Fvideo>\n\u003C\u002Fp>\n\n\u003Ch2 id=\"showcase\">\u003Cimg src=\"docs\u002Fassets\u002Ficons\u002Fshowcase.svg\" alt=\"\" width=\"22\" height=\"22\" align=\"absmiddle\"> Showcase\u003C\u002Fh2>\n\nFigMirror uses a reference figure as the style target, then renders your data through an iterative Drawer \u002F Reviewer loop until the output looks like it belongs in the same paper family.\n\n\u003Ctable>\n\u003Ctr>\n\u003Ctd width=\"50%\" align=\"center\">\u003Cb>Reference\u003C\u002Fb>\u003C\u002Ftd>\n\u003Ctd width=\"50%\" align=\"center\">\u003Cb>FigMirror Output\u003C\u002Fb>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Cimg src=\"docs\u002Fassets\u002Fshowcase\u002Fprimary-reference.jpg\" alt=\"reference paper-style figure\" width=\"100%\"\u002F>\u003C\u002Ftd>\n\u003Ctd>\u003Cimg src=\"docs\u002Fassets\u002Fshowcase\u002Fprimary-generated.jpg\" alt=\"FigMirror generated paper-style output\" width=\"100%\"\u002F>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\n\u003Ctable>\n\u003Ctr>\n\u003Ctd width=\"25%\" align=\"center\">\u003Cb>Reference\u003C\u002Fb>\u003C\u002Ftd>\n\u003Ctd width=\"25%\" align=\"center\">\u003Cb>FigMirror Output\u003C\u002Fb>\u003C\u002Ftd>\n\u003Ctd width=\"25%\" align=\"center\">\u003Cb>Reference\u003C\u002Fb>\u003C\u002Ftd>\n\u003Ctd width=\"25%\" align=\"center\">\u003Cb>FigMirror Output\u003C\u002Fb>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Cimg src=\"docs\u002Fassets\u002Fshowcase\u002Fhexbin-joint-reference.png\" alt=\"reference joint hexbin plot\" width=\"100%\"\u002F>\u003C\u002Ftd>\n\u003Ctd>\u003Cimg src=\"docs\u002Fassets\u002Fshowcase\u002Fhexbin-joint-generated.png\" alt=\"FigMirror generated joint hexbin output\" width=\"100%\"\u002F>\u003C\u002Ftd>\n\u003Ctd>\u003Cimg src=\"docs\u002Fassets\u002Fshowcase\u002Fwaterfall-3d-reference.png\" alt=\"reference 3D waterfall plot\" width=\"100%\"\u002F>\u003C\u002Ftd>\n\u003Ctd>\u003Cimg src=\"docs\u002Fassets\u002Fshowcase\u002Fwaterfall-3d-generated.png\" alt=\"FigMirror generated 3D waterfall output\" width=\"100%\"\u002F>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Fspaces\u002Fzcahjl3\u002Ffigcopy-taxonomy-gallery\">\u003Cimg alt=\"Browse the FigMirror gallery\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FBrowse%20gallery-pick%20a%20reference%20and%20play-16a34a?style=flat&logo=huggingface&logoColor=white\">\u003C\u002Fa>\u003Cbr\u002F>\n  \u003Csub>No high-quality reference at hand? Start from 139 paper figures across 25 chart families.\u003C\u002Fsub>\n\u003C\u002Fp>\n\n\u003Ch2 id=\"quick-start\">\u003Cimg src=\"docs\u002Fassets\u002Ficons\u002Fquick-start.svg\" alt=\"\" width=\"22\" height=\"22\" align=\"absmiddle\"> Quick Start\u003C\u002Fh2>\n\n\u003Ch3 id=\"install-with-your-agent\">\u003Cimg src=\"docs\u002Fassets\u002Ficons\u002Fagent.svg\" alt=\"\" width=\"18\" height=\"18\" align=\"absmiddle\"> Install With Your Claude \u002F Codex\u003C\u002Fh3>\n\nAlready inside Claude Code or Codex? Paste this and let the agent do the setup:\n\n```text\nInstall FigMirror for me: https:\u002F\u002Fgithub.com\u002FVILA-Lab\u002FFigMirror\n```\n\n\u003Ch3 id=\"web-ui\">\u003Cimg src=\"docs\u002Fassets\u002Ficons\u002Fweb-ui.svg\" alt=\"\" width=\"18\" height=\"18\" align=\"absmiddle\"> Web UI\u003C\u002Fh3>\n\nUse this when you want upload, preview, iteration history, and refinement in a browser.\n\nIf `uv` is missing: `python3 -m pip install uv`.\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FVILA-Lab\u002FFigMirror.git && cd FigMirror\nbash scripts\u002Finstall.sh\nuv run python scripts\u002Ffigcopy_serve.py --workspace .artifacts\u002Ffigmirror-workspace --backend codex\n```\n\nOpen `http:\u002F\u002F127.0.0.1:8765\u002F`.\n\n\u003Ca id=\"codex-skill\">\u003C\u002Fa>\n\u003Ca id=\"claude-code-skill\">\u003C\u002Fa>\n\n\u003Ch3 id=\"skill-only\">\u003Cimg src=\"docs\u002Fassets\u002Ficons\u002Fskill.svg\" alt=\"\" width=\"18\" height=\"18\" align=\"absmiddle\"> Skill Only\u003C\u002Fh3>\n\nUse this when you want FigMirror inside your agent, no web UI.\n\n```bash\ncurl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002FVILA-Lab\u002FFigMirror\u002Fmain\u002Fscripts\u002Finstall.sh | bash\n```\n\nThen attach a paper-figure screenshot, paste your data, and ask:\n\n```text\nUse FigMirror to mirror this figure's style with my data.\n```\n\nNeed manual target selection, Claude backend, or troubleshooting? See [Detailed Install](docs\u002Finstall.md).\n\n\u003Ch2 id=\"how-it-works\">\u003Cimg src=\"docs\u002Fassets\u002Ficons\u002Fhow-it-works.svg\" alt=\"\" width=\"22\" height=\"22\" align=\"absmiddle\"> How It Works\u003C\u002Fh2>\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"docs\u002Fassets\u002Falgorithm.png\" alt=\"FigMirror architecture loop and grounded measurement algorithm\" width=\"860\"\u002F>\n\u003C\u002Fp>\n\n> Illustration of FigMirror. The left panel shows the core agentic loop; the right panel introduces Grounded Measurement.\n\nFigMirror uses an agentic Drawer-Reviewer loop. The Drawer renders a candidate figure with ***Grounded Measurement***. The Reviewer compares it with the reference image, then returns a visual review, a revision checklist, and a preserve list. The preserve list accumulates across iterations as an anchor against style drift. The Aesthetic Lib provides fallback principles, style rules, and figure properties when the agents disagree or the Drawer has low confidence.\n\nFor 3D figures, FigMirror adds geometry-aware prompting for camera, scale, surfaces, lighting, and repair checks, helping the loop preserve the 3D composition of the reference figure while producing editable matplotlib code.\n\n***Grounded Measurement*** builds on two properties of computer-use-trained foundation models: *Measurement with Axis*, which lets the model return x\u002Fy coordinates for visual targets; and *Resonate with Code*, which turns those coordinates into executable checks, such as cropping a line segment and reading its color from pixels.\n\nFor the detailed algorithm, architecture, product envelope, and spec map, read [docs\u002Fmethod.md](docs\u002Fmethod.md). For the web UI, see [scripts\u002FREADME_figcopy_serve.md](scripts\u002FREADME_figcopy_serve.md).\n\n\u003Ch2 id=\"contributing\">\u003Cimg src=\"docs\u002Fassets\u002Ficons\u002Fcontributing.svg\" alt=\"\" width=\"22\" height=\"22\" align=\"absmiddle\"> Contributing\u003C\u002Fh2>\n\nFigMirror welcomes contributions!\n\nOpen an issue for bugs, broken installs, or figure cases FigMirror should learn from; open a PR for showcase examples, prompt improvements, UI polish, or small regression tests.\n\n- **Showcase cases:** add reference\u002Foutput pairs that prove the method across chart families.\n- **UI polish:** make the web workflow feel instant, legible, and forgiving.\n- **Prompt and reviewer quality:** improve the Drawer \u002F Reviewer loop without weakening the grounding rules.\n- **Evaluation:** add reproducible cases that catch visual drift, floor violations, and broken exports.\n\nStart with [docs\u002Fcontributing.md](docs\u002Fcontributing.md). Good first PRs include adding a showcase example, improving a web UI interaction, tightening install docs, or adding a small regression test around runner behavior.\n\n\u003Ch2 id=\"star-history\">\u003Cimg src=\"docs\u002Fassets\u002Ficons\u002Fstar-history.svg\" alt=\"\" width=\"22\" height=\"22\" align=\"absmiddle\"> Star History\u003C\u002Fh2>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fstar-history.com\u002F#vila-lab\u002Ffigmirror&Date\">\n    \u003Cimg alt=\"FigMirror GitHub star history chart\" src=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=vila-lab\u002Ffigmirror&type=Date\" width=\"100%\">\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Csub>Rendered by Star History from GitHub stargazer data, so the chart stays current as the repository grows.\u003C\u002Fsub>\n\u003C\u002Fp>\n\n\u003Ch2 id=\"roadmap\">\u003Cimg src=\"docs\u002Fassets\u002Ficons\u002Froadmap.svg\" alt=\"\" width=\"22\" height=\"22\" align=\"absmiddle\"> Roadmap\u003C\u002Fh2>\n\n- [x] Ship the reference-to-figure loop as Codex and Claude Code skills.\n- [x] Add a local Web UI for upload, iteration browsing, and refinement.\n- [x] Publish a 139-figure gallery so users can start without hunting for references.\n- [ ] Define a prompt-contribution benchmark verifier for comparing prompt changes on fixed reference\u002Fdata cases.\n- [ ] Curate a FigMirror benchmark set with reference figures, input data, generated outputs, and human preference labels.\n- [ ] Release the benchmarking paper with the verifier protocol, dataset, baselines, and prompt-contribution findings.\n","FigMirror 是一个自动化AI代理工具，用于将您的数据以任何论文图表的风格进行绘制。其核心功能包括通过迭代绘图\u002F审查循环，使输出的图表看起来与参考文献中的图表风格一致，并最终提供可编辑的matplotlib脚本及出版级PDF文件。该工具采用Python语言编写，集成了Codex和Claude Code等技能，支持多种图表类型的数据可视化。FigMirror特别适用于科研人员需要快速生成高质量、符合特定论文风格的数据图表场景中，极大地提高了科研工作中数据展示部分的效率与美观度。","2026-06-11 03:56:54","CREATED_QUERY"]