Skip to content
Content
Skill

/figure

Hybrid figure pipeline (Nano Banana raster + rembg background removal + TikZ vector assembly). Includes a TikZ template library covering quantum circuits (quantikz), Feynman diagrams (tikz-feynman), circuits (circuitikz), molecules (chemfig), 2D/3D plots (pgfplots), energy-level

From plugin
luxas
1.2k11 skills21 agents

Claude Code

$ npx -y skills add Muuuun/luxas --skill figure --agent claude-code

SKILL.md

figure.SKILL.md
name: figure
description: Hybrid figure pipeline (Nano Banana raster + rembg background removal + TikZ vector assembly). Includes a TikZ template library covering quantum circuits (quantikz), Feynman diagrams (tikz-feynman), circuits (circuitikz), molecules (chemfig), 2D/3D plots (pgfplots), energy-level diagrams, phase-space trajectories, optical setups, and pulse sequences. Use this skill to produce publication-quality figures with perfect LaTeX symbol rendering and agent-friendly iteration.
compatibility: Requires pdflatex + pdftoppm on PATH. Python 3.10+ with google-genai, rembg[cpu], Pillow. GEMINI_API_KEY env var for raster generation.
allowed-tools: Bash(python:*) Bash(pdflatex:*) Bash(pdftoppm:*) Bash(pdfimages:*)

Figure Skill

Publication-quality figures via the hybrid pipeline: let Gemini (Nano Banana) render photorealistic / textured / 3D components, let TikZ own all symbols, arrows, labels, equations, and layout. You get the visual richness of AI rendering AND the precision of code.

When to use which backend

┌─────────────────────────────────────────────────────────────────┐
│  What are you drawing?                          │ Backend       │
├─────────────────────────────────────────────────┼───────────────┤
│  Data plot (lines, bars, heatmaps from data)    │ pgfplots      │
│  Quantum circuit (Hadamard, CNOT, measure)      │ quantikz      │
│  Feynman diagram                                │ feynman       │
│  Molecule / Lewis structure                     │ chemfig       │
│  Electronic circuit (op-amp, RLC)               │ circuitikz    │
│  Atomic energy levels + transitions             │ energy_levels │
│  Phase-space trajectory                         │ phase_space   │
│  Pulse sequence (NMR / qubit timing)            │ pulse_sequence│
│  Optical bench cartoon (2D, flat)               │ optical_setup │
│  Concept schematic with textured 3D objects     │ HYBRID        │
│    (Paul trap, cavity, apparatus, animal etc.)  │               │
└─────────────────────────────────────────────────────────────────┘

For HYBRID, pick raster components sparingly: only for textured / 3D / glossy objects where TikZ would take 50+ lines of patches. Everything else → TikZ.

The hybrid pipeline

1. decide which elements are raster (3D/textured/glossy) vs vector (everything else)
2. for each raster element:
     python skills/figure/scripts/hybrid_gen.py \
       --name <outName>  --prompt "<object spec>"  --style "<style suffix>" \
       --out assets/<outName>.png
   → generates isolated-object PNG on white bg, then rembg → transparent PNG
3. write figure_X.tex starting from skills/figure/templates/<best>.tex
     - \includegraphics{assets/<outName>.png} for raster slots
     - TikZ \draw \node for all labels, arrows, equations
4. compile:    pdflatex figure_X.tex
   preview:    pdftoppm -r 200 figure_X.pdf preview -png
5. Read preview-1.png (vision) → find issues → edit .tex → recompile (≤3 iters)
6. final output: figures/figure_X.{tex,pdf}

Style consistency

ALWAYS check `figures/style_guide.md` first (if it exists) for mandatory palette, fonts, line weights. If absent, default to Okabe-Ito (see `references/palettes.md`).

Before starting, look at existing figures/*.png via Read — match their palette, font family, and panel-label style exactly.

Strict rules (when using this skill as illustrator)

  • Never originate content decisions (what data, what physics, what params).
  • Only make style/composition/rendering decisions.
  • LaTeX symbols (\ket{r}, F_{C_4}, \mu m, etc.) MUST be TikZ-native — never

rely on Nano Banana to render text correctly (it can't).

  • Raster components must have NO text in the prompt ("no labels, no captions").
  • Raster components must have consistent style suffix across a figure for

lighting/palette coherence.

Templates

See `templates/` for starting points. Each is a complete `\documentclass{standalone}` ready to compile. Pick the closest match, copy to figures/, edit.

References

  • `references/decision_tree.md` — full decision flow for tool selection
  • `references/palettes.md` — Okabe-Ito, Nature, Tableau colorblind-safe palettes
  • `references/pitfalls.md` — package conflicts (chemfig vs tikz-cd), font fallbacks, common bugs

Scripts

  • `scripts/hybrid_gen.py` — Gemini image generation + rembg background removal.

CLI: `--name --prompt --style --out [--model gemini-2.5-flash-image] [--no-rembg]`

  • `scripts/requirements.txt` — Python deps

First-time setup

cd skills/figure
pip install -r scripts/requirements.txt
export GEMINI_API_KEY=...   # if not already set
Read more
@muuuun
Ships withluxas

An autonomous research agent: from a one-line question to a compiled, reviewed LaTeX report. luxas.im · Gallery · Quick start · How it works · Architecture notes · Contributing Give Luxas a research question in RESEARCH.md.

1.2k11 skills21 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
1.2k
Star history of Muuuun/luxas on GitHub, a chart by star-history.com

Other skills on luxas.

compute-methods

compute-methods

Friction sheets for field-standard computational tools and simulators (frictions, smoke tests, how to measure a saved model).…

@muuuun@muuuunInstall Skill
matplotlib-figures

matplotlib-figures

Publication-quality data plots via matplotlib with venue-specific styles. Use for generating your own figures (timelines,…

@muuuun@muuuunInstall Skill
memory

memory

Cross-project research memory. Deep-dive past projects' notes and record corrections across all Luxas research projects.

@muuuun@muuuunInstall Skill
narrative

narrative

Narrative discipline for research reports — article-type templates (empirical / feasibility / comparison / policy-zh) and the…

@muuuun@muuuunInstall Skill
paper-figures

paper-figures

Extract figures from downloaded papers and include them in survey/review reports. Use when the report covers other groups' work…

@muuuun@muuuunInstall Skill
qec-construct

qec-construct

Verifier-in-the-loop CONSTRUCTION of quantum error-correcting codes with transversal non-Clifford gates (CCZ/T). Applies whenever…

@muuuun@muuuunInstall Skill

More skills from other plugins.

prompt-lookup

prompt-lookup

Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use…

@gh-f@gh-fInstall Skill
ppt-master

ppt-master

AI-driven presentation workflow for generating editable PPTX decks and slides, reconstructing page visuals, creating reusable…

@hugohe3@hugohe3Install Skill
morph-ppt

morph-ppt

Use this skill when the user wants a .pptx with smooth cross-slide animation — PowerPoint Morph transitions, Keynote-style…

officecli13d33k
@iofficeai@iofficeaiInstall Skill

Questions about figure.

Which coding agents can use figure?
figure installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.