Files
scientific-viz/SKILL.md
Pikaliov a243601523 Initial commit — scientific-viz skill
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>
2026-05-04 11:13:08 +03:00

182 lines
7.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: scientific-viz
description: "Generate publication-quality scientific visualizations: charts (matplotlib/seaborn), neural network architecture diagrams, block-scheme flowcharts (mermaid), training pipeline diagrams, and benchmark comparison tables. Use when the user needs any visual figure for papers, reports, or presentations."
argument-hint: "[type: chart|architecture|flowchart|comparison|pipeline] [description]"
user-invocable: true
allowed-tools: Read Write Edit Bash Glob Grep
---
# Научная визуализация для CVGL
Генерация визуализаций для научных публикаций, отчётов и презентаций проекта NADEZHDA.
## Входные данные
- `$ARGUMENTS` — тип визуализации + описание
- Примеры:
- `/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"`
## Типы визуализаций
### 1. `chart` — Графики и диаграммы (matplotlib + seaborn)
Для: сравнение метрик, аблации, распределения, training curves.
**Выход:** Python-скрипт `.py` + сохранённый `.png`/`.pdf`
Обязательные требования:
- Разрешение ≥ 300 DPI
- Шрифт: Times New Roman или DejaVu Serif, ≥ 10pt
- Colorblind-safe палитра (Okabe-Ito или tab10)
- Подписи осей на **английском** (для публикаций)
- Легенда без перекрытия данных
- Grid: light gray, alpha=0.3
- Tight layout, без обрезки подписей
- Формат сохранения: PNG (300 DPI) + PDF (vector)
Стиль matplotlib (использовать в начале каждого скрипта):
```python
import matplotlib.pyplot as plt
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,
})
```
Шаблоны: см. [reference/chart_patterns.md](reference/chart_patterns.md)
### 2. `architecture` — Архитектуры нейросетей
Для: Teacher/Student диаграммы, backbone stages, fusion modules, head designs.
**Два варианта выхода:**
**A) Python (matplotlib + patches/arrows)** — для сложных кастомных диаграмм:
- Прямоугольники = слои/модули
- Стрелки = потоки данных
- Цвета = разные модальности/компоненты
- Аннотации: размерности тензоров, число параметров
- Используй `matplotlib.patches.FancyBboxPatch` для красивых блоков
**B) Mermaid** — для встраивания в Obsidian:
```mermaid
graph TD
A[Satellite RGB] --> B[DINOv2-L Encoder]
C[Drone RGB] --> B
D[Depth Map] --> E[CNN Encoder]
...
```
Шаблоны: см. [templates/architecture_nadezhda.md](templates/architecture_nadezhda.md)
### 3. `flowchart` — Блок-схемы процессов
Для: training pipeline, inference pipeline, experimental workflow, data processing.
**Выход:** Mermaid-диаграмма (встраиваемая в Obsidian) + опционально Python-версия
Mermaid-конвенции:
- `graph TD` для вертикальных flow
- `graph LR` для горизонтальных pipeline
- Цвета через `style` или `classDef`
- Подписи на английском (для публикаций) или русском (для отчётов)
### 4. `comparison` — Сравнительные визуализации
Для: scatter plot params-vs-accuracy, grouped bar chart методов, radar chart по критериям.
Паттерны:
- **Pareto front:** params (x) vs R@1 (y), маркеры = разные методы, размер = FLOPs
- **Grouped bar:** методы × датасеты, hatching для edge/cloud
- **Radar/spider:** критерии (accuracy, speed, size, generalization, robustness)
- **Heatmap:** метод × датасет → R@1 значения
### 5. `pipeline` — Диаграммы пайплайна
Для: LUPI distillation flow, data augmentation pipeline, edge deployment chain.
Специальная нотация:
- Thick arrows = main data flow
- Dashed arrows = gradient flow / loss signals
- Color: blue = Teacher, orange = Student, green = shared
- Labels on arrows: loss names (L_task, L_LUPI, L_feat, L_RKD)
## Процесс генерации
### Шаг 1: Определи тип и параметры
Из `$ARGUMENTS` извлеки:
- Тип: chart / architecture / flowchart / comparison / pipeline
- Что визуализировать
- Целевой формат: Obsidian (mermaid) / публикация (matplotlib) / оба
- Язык подписей: EN (default для публикаций) / RU (для отчётов)
### Шаг 2: Найди данные
Если визуализация требует числовых данных:
- Поищи в `1_lit_research/СИНТЕЗсех_статей_для_LUPI_CVGL.md`
- Или в конкретных конспектах `1_lit_research/6_cvgl/P{N}_*.md`
- Или спроси пользователя
### Шаг 3: Сгенерируй код
- Python-скрипт: сохранить в `3_work/` или `attachments/figures/`
- Mermaid: вставить inline в .md файл
- Всегда указывай: `plt.savefig("filename.png", dpi=300, bbox_inches='tight')`
### Шаг 4: Добавь аннотации
Каждая визуализация должна иметь:
- Заголовок (title)
- Подписи осей (xlabel, ylabel)
- Легенду (если >1 series)
- Источник данных (caption или комментарий в коде)
## Специфика проекта NADEZHDA
### Цветовая схема компонентов
| Компонент | Цвет | 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` |
### Стандартные размерности тензоров
```
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
```
## Ограничения
- НЕ используй внешние API (OpenRouter, Gemini) — только локальные библиотеки
- НЕ генерируй растровые диаграммы архитектур через PIL/ImageDraw — используй matplotlib patches или mermaid
- Всегда сохраняй и .py скрипт, и результат (.png/.pdf)
- Для Obsidian: mermaid блоки встраиваются напрямую в .md