2000s-visualization-expert

Expert in 2000s-era music visualization (Milkdrop, AVS, Geiss) and modern WebGL implementations. Specializes in Butterchurn integration, Web Audio API AnalyserNode FFT data, GLSL shaders for audio-reactive visuals, and psychedelic generative art. Activate on "Milkdrop", "music visualization", "WebGL visualizer", "Butterchurn", "audio reactive", "FFT visualization", "spectrum analyzer". NOT for simple bar charts/waveforms (use basic canvas), video editing, or non-audio visuals.

181 stars

Best use case

2000s-visualization-expert is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Expert in 2000s-era music visualization (Milkdrop, AVS, Geiss) and modern WebGL implementations. Specializes in Butterchurn integration, Web Audio API AnalyserNode FFT data, GLSL shaders for audio-reactive visuals, and psychedelic generative art. Activate on "Milkdrop", "music visualization", "WebGL visualizer", "Butterchurn", "audio reactive", "FFT visualization", "spectrum analyzer". NOT for simple bar charts/waveforms (use basic canvas), video editing, or non-audio visuals.

Teams using 2000s-visualization-expert should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/2000s-visualization-expert/SKILL.md --create-dirs "https://raw.githubusercontent.com/majiayu000/claude-skill-registry/main/skills/data/2000s-visualization-expert/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/2000s-visualization-expert/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How 2000s-visualization-expert Compares

Feature / Agent2000s-visualization-expertStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Expert in 2000s-era music visualization (Milkdrop, AVS, Geiss) and modern WebGL implementations. Specializes in Butterchurn integration, Web Audio API AnalyserNode FFT data, GLSL shaders for audio-reactive visuals, and psychedelic generative art. Activate on "Milkdrop", "music visualization", "WebGL visualizer", "Butterchurn", "audio reactive", "FFT visualization", "spectrum analyzer". NOT for simple bar charts/waveforms (use basic canvas), video editing, or non-audio visuals.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# 2000s Music Visualization Expert

Expert in recreating the legendary 2000s music visualization era - Milkdrop, AVS, Geiss - using modern WebGL and Web Audio APIs.

## When to Use

✅ **Use for:**
- Implementing Milkdrop-style psychedelic visualizations
- Butterchurn library integration (WebGL Milkdrop)
- Web Audio API AnalyserNode FFT/waveform extraction
- GLSL fragment shaders for audio-reactive effects
- Full-screen immersive music experiences
- Real-time beat detection and audio analysis
- Preset systems and visualization transitions

❌ **NOT for:**
- Simple spectrum bar charts (use Canvas 2D)
- Static audio waveform displays
- Video editing or processing
- Non-audio generative art
- Audio playback/streaming issues (use audio-engineer skills)

## The Golden Era (Summary)

| Era | Key Software | Innovation |
|-----|--------------|------------|
| **1998-2000** | Geiss | Simple plasma effects, DirectX |
| **2001-2007** | Milkdrop 1 & 2 | Per-pixel equations, preset system |
| **2007-2015** | Decline | Streaming services rise |
| **2018-Present** | Butterchurn | WebGL renaissance |

**Milkdrop's magic**: Layering simple effects - blur, zoom, rotation, color shift - with audio-reactive parameters.

→ See `references/butterchurn-guide.md` for full history and integration.

## Core Technologies

### Butterchurn (WebGL Milkdrop)
- 1.7k GitHub stars, MIT licensed
- Full preset compatibility with original Milkdrop
- npm: `butterchurn`, `butterchurn-presets`

```typescript
import butterchurn from 'butterchurn';
const visualizer = butterchurn.createVisualizer(audioContext, canvas, {
  width: window.innerWidth,
  height: window.innerHeight,
  pixelRatio: window.devicePixelRatio || 1,
});
visualizer.connectAudio(audioNode);
visualizer.loadPreset(preset, 2.0);  // 2s blend
```

### Web Audio API FFT
```typescript
const analyser = audioContext.createAnalyser();
analyser.fftSize = 2048;
analyser.smoothingTimeConstant = 0.8;
const frequencyData = new Uint8Array(analyser.frequencyBinCount);
analyser.getByteFrequencyData(frequencyData);
```

**Critical**: FFT bins are linear but hearing is logarithmic! Use logarithmic mapping.

→ See `references/web-audio-fft.md` for frequency band extraction.

### GLSL Shaders
Pass audio data as 1D texture, use uniforms for bass/mid/treble:

```glsl
uniform float u_bass;
float glow = smoothstep(0.5 - u_bass * 0.3, 0.0, dist);
```

→ See `references/glsl-shaders.md` for complete patterns.

## Anti-Patterns to Avoid

### 1. Ignoring AudioContext State
**What it looks like**: Visualization silently fails
**Why it's wrong**: AudioContext starts suspended, needs user interaction
**Fix**: Resume on click: `await audioContext.resume()`

### 2. Linear Frequency Display
**What it looks like**: Bass dominates, treble invisible
**Why it's wrong**: FFT bins are linear; first 100 bins might be 0-2kHz
**Fix**: Use logarithmic bin mapping (code in references)

### 3. No Smoothing
**What it looks like**: Jittery, seizure-inducing visuals
**Why it's wrong**: Raw FFT data is noisy frame-to-frame
**Fix**: `analyserNode.smoothingTimeConstant = 0.7`

### 4. requestAnimationFrame Without Cleanup
**What it looks like**: Memory leaks, multiple render loops
**Fix**: Store animation ID, call `cancelAnimationFrame` on unmount

### 5. Hardcoded Canvas Size
**What it looks like**: Blurry on retina, wrong aspect ratio
**Fix**: Multiply by `devicePixelRatio`, handle resize events

### 6. Blocking Main Thread
**What it looks like**: Choppy audio, dropped frames
**Why it's wrong**: Heavy shader compilation on UI thread
**Fix**: Compile shaders during loading, not during playback

## Preset Recommendations

**Psychedelic/Trippy:**
- `Flexi, martin + geiss - dedicated to the sherwin maxawow`
- `Rovastar - Fractopia`

**Smooth/Chill:**
- `Flexi - predator-prey-spirals`
- `Geiss - Cosmic Strings 2`

**High Energy:**
- `Flexi + Martin - disconnected`
- `shifter - tumbling cubes`

## Integration Checklist

- [ ] AudioContext created and resumed on user interaction
- [ ] AnalyserNode connected to audio source
- [ ] Canvas sized correctly (account for devicePixelRatio)
- [ ] Render loop with requestAnimationFrame
- [ ] Cleanup on unmount (cancelAnimationFrame)
- [ ] Preset loading with blend time
- [ ] Resize handling
- [ ] Full-screen support with ESC to exit
- [ ] Track info overlay (z-index above canvas)
- [ ] Cursor hiding after inactivity

## Performance Tips

1. **Lower texture ratio** for older GPUs: `textureRatio: 0.5`
2. **Reduce fftSize** if not needed: 512 or 1024 vs 2048
3. **Use `will-change: transform`** on canvas
4. **Avoid DOM updates** during render loop
5. **Profile with Chrome DevTools** GPU timeline

## References

→ `references/butterchurn-guide.md` - Complete Butterchurn integration
→ `references/web-audio-fft.md` - FFT extraction and frequency analysis
→ `references/glsl-shaders.md` - Audio-reactive shader patterns

---

**This skill covers**: Butterchurn/Milkdrop | Web Audio FFT | GLSL shaders | Full-screen visualization | Audio-reactive art

Related Skills

adhd-design-expert

181
from majiayu000/claude-skill-registry

Designs digital experiences for ADHD brains using neuroscience research and UX principles. Expert in reducing cognitive load, time blindness solutions, dopamine-driven engagement, and compassionate design patterns. Activate on 'ADHD design', 'cognitive load', 'accessibility', 'neurodivergent UX', 'time blindness', 'dopamine-driven', 'executive function'. NOT for general accessibility (WCAG only), neurotypical UX design, or simple UI styling without ADHD context.

adapter-expert

181
from majiayu000/claude-skill-registry

Adapter Layer 전문가. CommandAdapter(persist만, JpaRepository 1:1), QueryAdapter(4개 메서드, QueryDslRepository 1:1), AdminQueryAdapter(Join 허용, DTO Projection), LockQueryAdapter(6개 Lock 메서드). 필드 2개만(Repository + Mapper). @Component 필수. @Transactional 절대 금지.

plaid-accounts-expert

181
from majiayu000/claude-skill-registry

Expert on Plaid accounts and account management. Covers account data retrieval, balance checking, account types, multi-account handling, and account webhooks. Invoke when user mentions Plaid accounts, account balance, account types, or account management.

accountant-expert

181
from majiayu000/claude-skill-registry

Expert-level accounting, tax, financial reporting, and accounting systems

33GOD System Expert

181
from majiayu000/claude-skill-registry

Deep knowledge expert for the 33GOD agentic pipeline system, understands component relationships and suggests feature implementations based on actual codebase state

Operations & Growth Expert

181
from majiayu000/claude-skill-registry

专注于内容创作(文案、运营稿件)、运营数据分析、以及营销活动策划与设置。帮助项目实现从“可用”到“好用”及“增长”的闭环。

Backend Python Expert

181
from majiayu000/claude-skill-registry

专注于 Python 后端开发,涵盖 FastAPI、异步编程和性能优化。

Backend Node.js Expert

181
from majiayu000/claude-skill-registry

专注于 Node.js 后端开发模式与最佳实践。

Backend Database Expert

181
from majiayu000/claude-skill-registry

专注于数据库设计、SQL 优化和迁移策略。

Browser Automation Expert

181
from majiayu000/claude-skill-registry

浏览器自动化与网页测试专家。支持基于 MCP 工具(Puppeteer/Playwright)的实时交互,以及基于 Python 脚本的复杂自动化流实现。

Flutter Development Expert

181
from majiayu000/claude-skill-registry

专注于构建高性能、可扩展且架构清晰的 Flutter 应用。涵盖整洁架构、高级状态管理和深度性能优化。

UI/UX Intelligence Expert

181
from majiayu000/claude-skill-registry

UI/UX 设计智能库与推荐专家。包含 67 种风格、96 种配色方案、57 种字体搭配、99 条 UX 指南,支持跨技术栈的设计系统生成。