Tech Visualizer
Create stunning, interactive visualizations that turn complex technical concepts into
intuitive, explorable experiences. Every visualization should make the viewer think
"now I finally get it."
When to Read Reference Files
Before building, read the appropriate reference:
references/patterns.md — Visualization component patterns, layout strategies, and interaction blueprints. Always read this first.
Design Philosophy
The "Aha Moment" Principle
Every visualization must have a clear aha moment — the single interaction or animation
that makes the concept click. Identify it before writing any code.
Examples:
- HMAC-SHA: Seeing the inner and outer padding XOR with the key, then watching data
flow through the two hash rounds
- AES-CBC: Watching the XOR chain where each block's ciphertext feeds into the next
block's encryption — showing WHY changing one plaintext block cascades
- ORB keypoints: Seeing the FAST corner detector sweep across an image, lighting up
detected corners, then watching BRIEF descriptors form as binary comparison patterns
Visual Identity
Every visualization should feel like a premium interactive textbook illustration, not
a generic flowchart. Think: 3Blue1Brown meets an interactive data dashboard.
Core aesthetic principles:
- Dark theme by default with vibrant, high-contrast accent colors for data flow
- Monospace fonts for data/hex values, clean sans-serif for labels
- Purposeful animation — every motion represents actual data transformation
- Depth through layering — use subtle shadows, glassmorphism, or gradients to
separate conceptual layers (e.g., application layer vs transport layer)
- Color encodes meaning — establish a color legend early: input data, keys,
intermediate state, output. Keep it consistent throughout
Output Format Decision
Choose based on complexity:
| Complexity |
Format |
When |
| Single algorithm, linear flow |
HTML (.html) |
HMAC, SHA-256, base64 encoding |
| Multi-stage with rich state |
React (.jsx) |
AES-CBC, TLS handshake, TCP state machine |
| Comparison / side-by-side |
React (.jsx) |
ECB vs CBC, RSA vs ECC, BFS vs DFS |
| Data structure with mutations |
React (.jsx) |
B-tree insertion, hash table collision |
When in doubt, use React — it handles state management for interactive controls more cleanly.
Building a Visualization
Step 1: Decompose the Concept
Break the technical concept into stages that can be individually visualized:
Concept → [ Stage 1 ] → [ Stage 2 ] → ... → [ Stage N ]
↓ ↓ ↓
Visual repr Visual repr Visual repr
Each stage should have a clear input/output shown visually, transform data in a way
that can be animated, and connect to the previous stage with a visible data flow line.
Step 2: Design the Interaction Model
Layer these interaction types (use ALL that apply):
Step-by-step controls: Play/pause, step forward/back, speed slider. This is the
primary navigation. Use a prominent step indicator (e.g., "Step 3 of 7: XOR with round key").
Live input fields: Let users type their own plaintext, key, URL, etc. The entire
visualization should reactively update. Use debounced inputs to avoid jank.
Hover/click inspection: Hovering over any data block, wire, or intermediate value
should show a tooltip or panel with the raw data, hex representation, or explanation.
Clicking can "pin" the inspection panel.
Side-by-side comparison: When the concept has variants (ECB vs CBC, HTTP/1.1 vs
HTTP/2), show them simultaneously with synchronized step controls.
Step 3: Implement with Polish
Read references/patterns.md for detailed layout templates, animation patterns, and
data representation strategies for each concept category.
Key principles:
- Top-to-bottom or left-to-right flow mirroring the algorithm's mental model
- Staggered reveals: Animate data blocks appearing 30-50ms apart
- Active element highlighting: Pulse/glow for current, dim for completed, base opacity for upcoming
- Data flow lines: Animate SVG paths with
stroke-dashoffset for "drawing" effects
- Transition duration: 300-500ms for state changes, 150ms for hover effects
Step 4: Add Context & Learning
- Step descriptions: Each step must have a 1-2 sentence plain-English explanation
visible alongside the visualization (not just in tooltips)
- "Why does this matter?" callouts: At key stages, add a subtle info box explaining
the security/performance/correctness implication
- Edge case demonstrations: Add buttons like "What if the key is all zeros?" or
"What happens with identical plaintext blocks?" that demonstrate important properties
Step 5: Responsive & Accessible
- Works at 768px+ width (optimized for desktop, functional on tablet)
aria-label on interactive elements
- Keyboard navigation for step controls (arrow keys)
- Color is not the only differentiator (use shape/pattern too)
Quality Checklist
Before delivering, verify:
Anti-Patterns to Avoid
- ❌ Static flowcharts with no interactivity
- ❌ Walls of text explaining the algorithm — the visualization IS the explanation
- ❌ Generic bootstrap/material UI appearance
- ❌ Tooltips as the only information pathway — key details should be always visible
- ❌ Animations that don't map to real data transformations
- ❌ Light theme with muted pastels (dark + vibrant is the default)
- ❌ Skipping the decomposition step — always plan stages before coding
1---2name: tech-visualizer3description: Create interactive, animated visualizations of technical and algorithmic concepts. Use this skill whenever the user asks to visualize, illustrate, explain visually, or create a diagram/animation for any technical concept — including but not limited to: cryptographic algorithms (HMAC-SHA, AES-CBC, RSA, TLS handshake), computer vision pipelines (ORB keypoints, SIFT, optical flow, convolutions), networking protocols (TCP handshake, DNS resolution, HTTP/2 streams), data structures (B-trees, hash maps, bloom filters), ML concepts (backpropagation, attention mechanism, gradient descent), or any algorithmic/engineering process. Also trigger when the user says "show me how X works", "animate X", "interactive explainer for X", or wants to turn a technical concept into a presentation-ready visual. This skill produces polished, interactive artifacts — not static diagrams.4---56# Tech Visualizer78Create stunning, interactive visualizations that turn complex technical concepts into9intuitive, explorable experiences. Every visualization should make the viewer think10"now I finally get it."1112## When to Read Reference Files1314Before building, read the appropriate reference:15- `references/patterns.md` — Visualization component patterns, layout strategies, and interaction blueprints. **Always read this first.**1617## Design Philosophy1819### The "Aha Moment" Principle2021Every visualization must have a clear **aha moment** — the single interaction or animation22that makes the concept click. Identify it before writing any code.2324Examples:25- **HMAC-SHA**: Seeing the inner and outer padding XOR with the key, then watching data26 flow through the two hash rounds27- **AES-CBC**: Watching the XOR chain where each block's ciphertext feeds into the next28 block's encryption — showing WHY changing one plaintext block cascades29- **ORB keypoints**: Seeing the FAST corner detector sweep across an image, lighting up30 detected corners, then watching BRIEF descriptors form as binary comparison patterns3132### Visual Identity3334Every visualization should feel like a **premium interactive textbook illustration**, not35a generic flowchart. Think: 3Blue1Brown meets an interactive data dashboard.3637Core aesthetic principles:38- **Dark theme by default** with vibrant, high-contrast accent colors for data flow39- **Monospace fonts** for data/hex values, clean sans-serif for labels40- **Purposeful animation** — every motion represents actual data transformation41- **Depth through layering** — use subtle shadows, glassmorphism, or gradients to42 separate conceptual layers (e.g., application layer vs transport layer)43- **Color encodes meaning** — establish a color legend early: input data, keys,44 intermediate state, output. Keep it consistent throughout4546## Output Format Decision4748Choose based on complexity:4950| Complexity | Format | When |51|-----------|--------|------|52| Single algorithm, linear flow | HTML (`.html`) | HMAC, SHA-256, base64 encoding |53| Multi-stage with rich state | React (`.jsx`) | AES-CBC, TLS handshake, TCP state machine |54| Comparison / side-by-side | React (`.jsx`) | ECB vs CBC, RSA vs ECC, BFS vs DFS |55| Data structure with mutations | React (`.jsx`) | B-tree insertion, hash table collision |5657When in doubt, use React — it handles state management for interactive controls more cleanly.5859## Building a Visualization6061### Step 1: Decompose the Concept6263Break the technical concept into **stages** that can be individually visualized:6465```66Concept → [ Stage 1 ] → [ Stage 2 ] → ... → [ Stage N ]67 ↓ ↓ ↓68 Visual repr Visual repr Visual repr69```7071Each stage should have a clear input/output shown visually, transform data in a way72that can be animated, and connect to the previous stage with a visible data flow line.7374### Step 2: Design the Interaction Model7576Layer these interaction types (use ALL that apply):77781. **Step-by-step controls**: Play/pause, step forward/back, speed slider. This is the79 primary navigation. Use a prominent step indicator (e.g., "Step 3 of 7: XOR with round key").80812. **Live input fields**: Let users type their own plaintext, key, URL, etc. The entire82 visualization should reactively update. Use debounced inputs to avoid jank.83843. **Hover/click inspection**: Hovering over any data block, wire, or intermediate value85 should show a tooltip or panel with the raw data, hex representation, or explanation.86 Clicking can "pin" the inspection panel.87884. **Side-by-side comparison**: When the concept has variants (ECB vs CBC, HTTP/1.1 vs89 HTTP/2), show them simultaneously with synchronized step controls.9091### Step 3: Implement with Polish9293Read `references/patterns.md` for detailed layout templates, animation patterns, and94data representation strategies for each concept category.9596Key principles:97- **Top-to-bottom or left-to-right flow** mirroring the algorithm's mental model98- **Staggered reveals**: Animate data blocks appearing 30-50ms apart99- **Active element highlighting**: Pulse/glow for current, dim for completed, base opacity for upcoming100- **Data flow lines**: Animate SVG paths with `stroke-dashoffset` for "drawing" effects101- Transition duration: 300-500ms for state changes, 150ms for hover effects102103### Step 4: Add Context & Learning104105- **Step descriptions**: Each step must have a 1-2 sentence plain-English explanation106 visible alongside the visualization (not just in tooltips)107- **"Why does this matter?"** callouts: At key stages, add a subtle info box explaining108 the security/performance/correctness implication109- **Edge case demonstrations**: Add buttons like "What if the key is all zeros?" or110 "What happens with identical plaintext blocks?" that demonstrate important properties111112### Step 5: Responsive & Accessible113114- Works at 768px+ width (optimized for desktop, functional on tablet)115- `aria-label` on interactive elements116- Keyboard navigation for step controls (arrow keys)117- Color is not the only differentiator (use shape/pattern too)118119## Quality Checklist120121Before delivering, verify:122123- [ ] Dark theme with consistent color coding throughout124- [ ] Step-by-step controls (forward, back, play/pause, reset)125- [ ] At least one live input field that reactively updates126- [ ] Hover inspection on data elements127- [ ] Step descriptions visible and accurate128- [ ] Smooth animations (no layout shifts or flicker)129- [ ] Color legend present130- [ ] The "aha moment" is clearly delivered131- [ ] Google Fonts loaded for typography132- [ ] No hardcoded magic numbers without comments133134## Anti-Patterns to Avoid135136- ❌ Static flowcharts with no interactivity137- ❌ Walls of text explaining the algorithm — the visualization IS the explanation138- ❌ Generic bootstrap/material UI appearance139- ❌ Tooltips as the only information pathway — key details should be always visible140- ❌ Animations that don't map to real data transformations141- ❌ Light theme with muted pastels (dark + vibrant is the default)142- ❌ Skipping the decomposition step — always plan stages before coding