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>
This commit is contained in:
181
SKILL.md
Normal file
181
SKILL.md
Normal file
@@ -0,0 +1,181 @@
|
||||
---
|
||||
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
|
||||
Reference in New Issue
Block a user