Claude Code skill for publication-quality scientific visualisations: chart, architecture, flowchart, comparison, pipeline. Bundles matplotlib publication defaults (300 DPI, serif font, colorblind palette), NADEZHDA project palette, Mermaid conventions, and ready-to-use templates. Contents: - SKILL.md — behaviour spec (5 types, generation pipeline) - README.md — human-facing entry: when, install, examples - reference/chart_patterns.md — Pareto/bar/radar/heatmap snippets - templates/architecture_nadezhda.md — Mermaid templates for Teacher-Student / LUPI / fusion Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
scientific-viz
Claude Code skill for publication-quality scientific visualizations — charts (matplotlib/seaborn), neural-network architecture diagrams (matplotlib patches or Mermaid), block-scheme flowcharts, training-pipeline diagrams, and benchmark comparison figures. Tuned for the CVGL / NADEZHDA project but reusable for any deep-learning paper.
Behaviour spec — see
SKILL.md. This file is the human-facing entry point.
When to use
- Need a figure for a paper / report / slide deck and want it consistent with project style.
- Want a Pareto plot (params vs R@1), grouped bar, radar, heatmap, or training curve.
- Need a Teacher–Student / multi-modal fusion architecture diagram.
- Need a Mermaid flowchart embeddable in Obsidian for an LUPI / KD pipeline.
- Want a quick comparison figure across CVGL benchmarks (University-1652, GeoText-1652, GTA-UAV, VisLoc).
Invocation
/scientific-viz <type> "<description>"
Where <type> ∈ {chart, architecture, flowchart, comparison, pipeline}.
Examples
/scientific-viz chart "R@1 comparison across methods on University-1652"
/scientific-viz architecture "Teacher-Student LUPI pipeline"
/scientific-viz flowchart "Training progressive staging 3 phases"
/scientific-viz comparison "Backbone candidates: params vs R@1"
/scientific-viz pipeline "LUPI distillation flow with 7 losses"
Five visualisation types
| Type | Output | Use for |
|---|---|---|
chart |
Python script (.py) + .png (300 DPI) + .pdf (vector) |
metric comparisons, ablations, distributions, training curves |
architecture |
matplotlib patches Python (complex) or Mermaid (Obsidian-embeddable) | Teacher/Student, backbone stages, fusion modules, head designs |
flowchart |
Mermaid (graph TD / graph LR) + optional Python |
training/inference pipeline, experimental workflow, data processing |
comparison |
Python .py + .png/.pdf |
Pareto front, grouped bar, radar/spider, heatmap |
pipeline |
Mermaid + matplotlib | LUPI distillation flow, augmentation chain, edge deployment |
Publication-quality defaults (charts)
Every generated chart / comparison / pipeline Python script starts with this rcParams block:
import matplotlib
matplotlib.rcParams.update({
'font.family': 'serif',
'font.size': 11,
'axes.labelsize': 12,
'axes.titlesize': 13,
'legend.fontsize': 10,
'xtick.labelsize': 10,
'ytick.labelsize': 10,
'figure.dpi': 300,
'savefig.dpi': 300,
'savefig.bbox': 'tight',
'axes.grid': True,
'grid.alpha': 0.3,
})
Hard requirements baked in:
- ≥ 300 DPI, vector PDF + raster PNG saved side-by-side.
- Times New Roman / DejaVu Serif, ≥ 10 pt.
- Colorblind-safe palette (Okabe-Ito or
tab10). - English axis labels for publications, optional Russian for internal reports.
- Light-gray grid (
alpha=0.3), tight layout, no clipped labels.
NADEZHDA project palette (consistent across figures)
| Component | Colour | Hex |
|---|---|---|
| Teacher | Deep blue | #1f77b4 |
| Student | Orange | #ff7f0e |
| Satellite modality | Green | #2ca02c |
| Drone modality | Red | #d62728 |
| Street-view | Purple | #9467bd |
| Depth | Brown | #8c564b |
| Text | Pink | #e377c2 |
| Loss / gradient | Gray | #7f7f7f |
| Edge / Jetson | Teal | #17becf |
Mermaid conventions (architecture / flowchart / pipeline)
graph TD— vertical flow (Teacher → Student stack).graph LR— horizontal pipeline (input → backbone → neck → heads).- Thick arrows = main data flow · dashed arrows = gradient / loss signals.
- Loss labels on arrows:
L_task,L_LUPI,L_feat,L_RKD,L_seg,L_CVD_MI,L_CVD_Recon. style/classDefto mark Teacher (blue), Student (orange), shared (green).
Ready-to-use templates: templates/architecture_nadezhda.md.
Standard tensor shapes (for architecture annotations)
Input: [B, 3, 256, 256]
Stage 1: [B, 32, 96, 96]
Stage 2: [B, 64, 48, 48]
Stage 3: [B, 128, 24, 24]
Stage 4: [B, 256, 12, 12]
Descriptor: [B, 512] L2-normalized
Installation
Drop this repo into your vault's Claude Code skills directory:
git clone https://git.lissad.keenetic.name/Pikaliov/scientific-viz.git \
.claude/skills/scientific-viz
Or as a submodule:
git submodule add https://git.lissad.keenetic.name/Pikaliov/scientific-viz.git \
.claude/skills/scientific-viz
Claude Code picks up the skill on the next session. Verify with /help — /scientific-viz should appear in the user-invocable list.
Runtime dependencies (charts & comparison types):
pip install matplotlib seaborn numpy
Mermaid output requires no Python — the diagram block embeds directly into Obsidian, GitHub-flavoured Markdown, or Quarto.
File layout
scientific-viz/
├── README.md — this file
├── SKILL.md — behaviour spec (5 types, generation pipeline)
├── reference/
│ └── chart_patterns.md — canonical Pareto/grouped-bar/radar/heatmap snippets
└── templates/
└── architecture_nadezhda.md — Mermaid templates for Teacher-Student / LUPI / fusion
Hard constraints
- ❌ Никаких внешних API (OpenRouter, Gemini и т. п.) — только локальные библиотеки.
- ❌ Никакой растровой генерации архитектур через
PIL.ImageDraw— только matplotlibpatchesили Mermaid. - ✅ Всегда сохранять и
.pyскрипт, и результат (.png/.pdf) — рядом, рядом с заметкой / вattachments/figures/. - ✅ Каждое значение в графике должно иметь источник (комментарий в коде или caption под фигурой).
- ✅ Для Obsidian — Mermaid-блок встраивается прямо в
.md, без ссылок на внешние файлы. - ✅ Для публикаций — английский язык подписей; для внутренних отчётов — RU допустим.
Worked example
/scientific-viz comparison "Pareto front: backbone params vs R@1 on University-1652, mark NADEZHDA target at 8.5M"
Expected output:
pareto_params_r1.py— full matplotlib script with palette, grid, edge-budget shaded region, NADEZHDA marker as star.pareto_params_r1.png(300 DPI) +pareto_params_r1.pdf(vector) saved next to the script.- Inline annotation list (Sample4Geo, VimGeo, QDFL, MobileGeo, (MGS)², NADEZHDA target).
- Source comment at the top of the script linking to
1_lit_research/СИНТЕЗ_всех_статей_для_LUPI_CVGL.mdrows.
See reference/chart_patterns.md for the canonical pattern this expands from.
Allowed tools
Read, Write, Edit, Bash, Glob, Grep — the skill writes Python scripts and Mermaid blocks directly into the vault, then optionally executes the script via Bash to produce the rendered .png/.pdf.
Related skills
/analyze-paper— surfaces the numbers this skill plots./synthesize-review— produces the cross-paper tables that feedcomparisonfigures./generate-hypothesis— the hypotheses whose evidence is plotted.