# Figmirror

This FigMirror skill should be used when the user asks to "mirror this figure's style"...

- Repository: https://github.com/VILA-Lab/FigMirror (558 stars)
- Category: Media
- License: see repository
- Last updated: 2026-09-30
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add VILA-Lab/FigMirror --skill figmirror -g -a claude-code -y`
Codex: `npx skills add VILA-Lab/FigMirror --skill figmirror -g -a codex -y`
Cursor: `npx skills add VILA-Lab/FigMirror --skill figmirror -g -a cursor -y`
Gemini CLI: `npx skills add VILA-Lab/FigMirror --skill figmirror -g -a gemini-cli -y`

## Description

This FigMirror skill should be used when the user asks to "mirror this figure's style", "copy this figure's style", "make a chart that looks like this paper", "reproduce this figure with my data", "match this paper's aesthetic", "I want a NeurIPS-quality version of this", or any variant where they hand over a cropped or uncropped reference figure AND their own data and want their data rendered in the same visual register. ALSO triggers when the user attaches a paper-figure screenshot plus tabular data and asks for matplotlib output. Does NOT trigger on generic matplotlib chart requests with no reference image, that's a basic matplotlib task, not style transfer.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# FigMirror (`figmirror`)

Transfer the visual style of a top-conference paper figure (NeurIPS / ICML /
ICLR / Nature / Science) onto user data via an iterative Drawer / Reviewer
loop. Output is a self-contained matplotlib script + PNG + type-42 PDF that
matches the reference's STYLE, not its data.

## When to use

Trigger when the user provides all three:

- A reference paper-figure screenshot.
- Their own data in any parseable form (pasted table, CSV, TSV, markdown
  table, or dirty terminal text).
- An expectation that the output should look like the reference, even via
  casual phrasing ("make this chart but with my numbers", "redo this in
  matplotlib"). This includes 3D references when the reference or data is
  actually 3D.

Do not trigger on plain matplotlib chart requests with no reference image.

## Required inputs

- Reference image (PNG / JPG), cropped or uncropped. It may include margins,
  captions, neighboring panels, or page text; Stage 0 preprocesses it.
- User data (any parseable form).
- Optional working directory. Default: `<cwd>/figmirror-runs/<run-id>/`.

## 3D Insert Gate

Enable `references/three-d-prompting.md` only when the user asks for a 3D
figure, the reference is visibly 3D, or the parsed data requires a 3D encoding
such as `x/y/z`, surfaces, trajectories, layered profiles, closed objects, 3D
small multiples, 3D bars, or plane projections. Do not use this insert to turn
an ordinary 2D task into 3D.

## Architecture

Three bundled subagents drive the loop; the caller orchestrates from the main
thread:

The rest: https://github.com/VILA-Lab/FigMirror/blob/HEAD/.claude/retired-figmirror-20260817/skills-figmirror/SKILL.md
