Changelog
All notable changes to this project will be documented in this file.
[1.0.0] - 2026-04-05
First production release.
Highlights
- 5 MRI scan modes (T1/T2/fMRI/DTI/FLAIR) + dedicated EMO tab for emotion vector analysis
- Multi-backend SAE support (SAELens + EleutherAI Sparsify)
- Emotion steering with causal behavioral change — verified on GPT-2, ready for SLM-scale experiments
- Complete user guides (EN/KO) with Playwright-captured screenshots
- 12 models in registry, HuggingFace Spaces live demo
User Guide
- Rewritten with EMO tab walkthrough (6 zones: A–F)
- Playwright-automated screenshots for all scan modes + EMO tab
- Developer guide with full API reference (34 endpoints, curl examples)
- Both English and Korean versions
[0.3.0] - 2026-04-05
Dedicated Emotion Analysis Tab (EMO)
- Full-width EMO tab alongside T1/T2/fMRI/DTI/FLAIR scan modes
- Zone A — Transcript Heatmap: Token × emotion diverging color grid (D3, RdBu scale)
- Zone B — PCA Scatter: 2D emotion space visualization (PC1=valence, PC2=arousal)
- Zone C — Steering Controls: Emotion selector, strength slider, original vs steered text comparison with activation diff table
- Zone D — Strength Sweep: Dose-response curve chart with per-point tooltip
- Zone E — SAE Feature Diff: Top-10 SAE features changed by steering (auto-triggered on steer)
- Zone F — Layer Evolution: Emotion activation across all layers per token
New Backend Endpoints
POST /api/emotion/project— token-level emotion vector projection (heatmap data)GET /api/emotion/pca— 2D PCA of emotion spacePOST /api/emotion/sweep— multi-strength dose-response curvePOST /api/emotion/layer-evolution— emotion activation across layersPOST /api/emotion/steer-sae— combined steering + SAE feature diff
Model Loading
- Quantized loading path (
int4/int8) with clear error on TransformerLens incompatibility - Dynamic model loading defaults to fp16
- Gemma-2-2B restored (segfault was OOM in fp32, works in fp16)
- Gemma-2-2B-IT added to registry
[0.2.0] - 2026-04-04
SAE Provider Abstraction
- Multi-backend SAE support via adapter pattern: SAELens + EleutherAI Sparsify
- New
sae_providers.py—SAEProviderABC withSAELensProviderandEleutherAIProvider - SAE registry now includes
providerfield to route loading per model - Factory-based loading:
load_sae_provider()handles both backends transparently
Emotion Vector Analysis (NEW)
- Emotion probe extraction — comprehension-mode forward pass over 20 emotion categories (3 passages each) with mean subtraction
- Emotion steering — inject emotion vectors into residual stream during generation, compare original vs steered output
- Bundled dataset:
emotion_comprehension_texts.csv(20 emotions + neutral baseline) - API endpoints:
POST /api/emotion/extract-probes,POST /api/emotion/steer,GET /api/emotion/emotions - Inspired by Anthropic's "Emotion Concepts" research, adapted for open-weight SLMs
Models
- Added Llama 3.1 8B with EleutherAI SAE support (layers 23, 29 MLP)
- Added Llama 3 8B with EleutherAI SAE support (all 32 layers)
- Marked Gemma-2-2B as
tl_compat: falsedue to TransformerLens segfault - 11 models in registry (up from 5 in v0.1.0)
Clinical Cases
- Case 1: Gemma baseline — 5-mode normal anatomy scan
- Case 2: Cross-model comparison (Gemma vs Llama vs Qwen)
- Case 3: Perturbation stress test on Gemma-2-2B
- Case 4: Base vs instruct perturbation comparison (6 models, GPU results)
Infrastructure
- HuggingFace Spaces live demo: Hiconcep/Neural-MRI
- Position paper published
- GitHub Pages docs site with CODE_OF_CONDUCT and SECURITY policy
[0.1.0] - 2026-03-01
First public release.
Scan Modes
- T1 Topology — static architecture visualization (layers, parameters, structure)
- T2 Tensor — weight distribution & magnitude analysis with histograms
- fMRI Activations — per-layer per-token activation patterns (L2 norm, 0-1 normalized)
- DTI Circuits — zero-ablation importance scoring + attention pattern flow
- FLAIR Anomaly — bias, hallucination & anomaly detection with logit lens
Core Features
- Token-by-token streaming via WebSocket (
/ws/stream) - Perturbation engine — zero, amplify, ablate with KL divergence & logit shift metrics
- Causal tracing — clean/corrupt prompt comparison with layer-by-layer recovery
- SAE feature explorer via SAE-Lens integration
- Cross-model comparison — two models side-by-side on the same prompt
- Multi-prompt comparison mode
Models
- 5 built-in models: GPT-2, GPT-2 Medium, Pythia-1.4B, Gemma-2-2B, Llama-3.2-3B
- HuggingFace Hub dynamic model search with TransformerLens compatibility filter
- Float16 auto-casting for 1B+ models, GPU→CPU fallback
- HuggingFace token support for gated models
UI & Visualization
- 4 layout modes: vertical, brain, network, radial
- D3.js scan canvas with pulse/glow animations (fMRI) and flow animations (DTI)
- Token stepper with chip navigation and keyboard ←→ support
- Attention heads heatmap panel
- Logit lens panel
- Diagnostic report generation (Markdown)
- Functional test battery
- Prompt templates
- Keyboard shortcuts
Export & Recording
- WebM video export (VP9)
- Animated GIF export
- SVG/PNG snapshots (single & compare mode)
- JSON data export
- Markdown diagnostic reports
- Recording playback with adjustable speed (0.5x–4x)
Collaboration
- Real-time session sharing via WebSocket
- Host/viewer roles with peer cursors
- Scan state synchronization
Infrastructure
- FastAPI backend with scan result caching (LRU by model/mode/prompt)
- Docker Compose deployment (backend + nginx frontend)
- HuggingFace Spaces deployment (
Dockerfile.spaces) - GitHub Actions CI (backend lint/test, frontend type check/build)
- i18n — English and Korean
- Medical dark theme (DICOM viewer aesthetic)
Documentation
- README with badges, screenshots, architecture diagram
- CONTRIBUTING.md, INSTALL.md
- GitHub issue templates (bug report, feature request)
- Pull request template