Interactive Visualization Creator

SkillAI & models

Build interactive visualizations for Next.js (SVG, Canvas, Three.js, Framer Motion). Use when creating diagrams, animations, simulations, or data visualizations.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Interactive Visualization Creator skill

What this skill tells your AI

The instructions your AI receives, as published by lev-os/agents in skills-db/design-ux/interactive-visualization-creator/SKILL.md and read by ahel’s review.

When to Use: Building interactive visualizations for Next.js/React sites that need to both look stunning AND teach concepts effectively through interactivity.

When NOT to Use: Static charts (use a charting library), pure decoration with no pedagogical purpose, or backend data dashboards (use admin tooling).

Core Insight: The best visualizations are not fancy effects in search of a purpose. They make concepts viscerally obvious that would take paragraphs of text to explain poorly. Every animation, every interaction, every color choice must serve comprehension.


The Golden Thread

These are the invariant truths distilled from 100+ production visualizations across jeffrey_emanuel_personal_site, frankentui_website, frankensqlite_website, and asupersync_website. They are non-negotiable:

#PrincipleWhy It Matters
1Pedagogy drives design, not aestheticsA beautiful viz that doesn't teach is just a screensaver
2Progressive disclosure over information dumpReveal complexity gradually via steppers, scroll triggers, phases
3Device-aware quality tiers, not responsive compromiseLow/medium/high particle counts, different interaction models per device class
4Dual interaction modelsDesktop = hover + parallax + keyboard; Mobile = tap + haptic + bottom-sheet
5Spring physics over linear interpolationSprings feel natural; linear feels robotic
6SVG for structure, Canvas/WebGL for particlesPick technology by visualization type, not familiarity
7Lazy initialization is mandatoryIntersectionObserver + rootMargin. Never render heavy content off-screen
8prefers-reduced-motion is not optionalFull accessibility support in every component, always
9Real algorithms, not fake dataEmbed actual implementations (CMA-ES, Myers diff, Hoeffding's D) for correctness
10Comparative juxtapositionSide-by-side before/after makes differences viscerally obvious
11Color is semanticgreen=success, red=error, amber=warning, cyan=active, blue=info. Consistent always
12useRef for high-frequency, useState for UIRAF loops, mouse tracking, physics sims use refs to avoid re-renders

See GOLDEN-THREAD.md for the complete deep-dive with code examples from all four projects.


Quick Router

I need to...Go to
Build a state machine / algorithm walkthroughCOMPONENT-PATTERNS.md > Stepper Visualizations
Build a network graph / relationship diagramCOMPONENT-PATTERNS.md > Network Graphs
Build a particle system / 3D sceneCOMPONENT-PATTERNS.md > Particle Systems
Build a scroll-triggered animationCOMPONENT-PATTERNS.md > Scroll Animations
Build a real-time simulation with slidersCOMPONENT-PATTERNS.md > Live Simulations
Build a comparative / side-by-side viewCOMPONENT-PATTERNS.md > Comparative Views
Handle mobile vs desktop properlyMOBILE-DESKTOP.md
Make it teach effectivelyPEDAGOGY.md
Optimize performancePERFORMANCE.md
Copy-paste starter patternsQUICK-REFERENCE.md
Decompose ANY concept into a visualization designCONCEPT-DECOMPOSITION.md
Compose visualizations into a cinematic page narrativeSCROLL-NARRATIVE.md
Map narrative intent to exact motion recipesMOTION-LEXICON.md
Derive premium visual aesthetic from a single accent colorAESTHETIC-DNA.md

Visualization Type Selector

What you're visualizingTypeTech Stack
Process with discrete stepsStepperFramer Motion + SVG + AnimatePresence
Relationships between entitiesNetwork GraphSVG circular layout + Bezier curves
Data distribution / statisticsInteractive ChartD3 math + SVG/Three.js + sliders
Tree / hierarchyTree VizSVG computed layout + path highlighting
Comparison of two approachesSide-by-SideSplit grid + shared stepper + color contrast
Timeline / evolutionScroll-TriggeredFramer Motion whileInView + staggered reveals
Particles / 3D spaceParticle SystemReact Three Fiber + quality tiers
Ambient backgroundDecorativeGSAP/Framer + CSS + IntersectionObserver

See COMPONENT-PATTERNS.md for architecture and code for each type.


Creation Workflow

Phase 1: Concept Design

  1. Decompose the concept: Use the Concept Decomposition Engine to identify entities, states, transitions, and the teaching variable
  2. Define the teaching goal: What concept should the reader understand after interacting?
  3. Identify the "aha moment": What specific interaction makes the concept click? (See 5 aha patterns)
  4. Choose visualization type: Use the decision tree above
  5. Sketch the states: What are the discrete states/phases the user will see?

Phase 2: Architecture

  1. Select technology stack: See Tech Selection below
  2. Establish visual aesthetic: Derive dark canvas, glass surfaces, and color palette from accent color using AESTHETIC-DNA.md
  3. Design interaction model: Desktop hover vs mobile tap paths
  4. Plan quality tiers: What degrades on low-end devices?
  5. Define color semantics: Map colors to meaning before coding

Phase 3: Implementation

  1. Build the static frame first: SVG structure, node positions, layout
  2. Add the stepper/controller: Navigation controls for temporal visualizations
  3. Wire up animations: Framer Motion transitions between states
  4. Add interactivity: Hover/click/drag handlers
  5. Implement device adaptation: Touch detection, quality scaling, bottom sheets
  6. Add accessibility: reduced-motion, ARIA labels, keyboard nav

Phase 4: Page Composition

  1. Choose narrative arc: Select a page template that matches your content
  2. Allocate scroll budget: Assign vertical space per section using the scroll budget calculator
  3. Choreograph entrances: Apply SectionShell pattern with staggered reveals
  4. Run the billboard test: Screenshot random scroll positions — each must be coherent

Phase 5: Polish

  1. Assign narrative beats: Map each section's emotional intent to a Motion Lexicon beat for exact spring/color/timing recipes
  2. Spring-tune all transitions: Adjust stiffness/damping until motion feels natural
  3. Add micro-interactions: Haptic feedback, particle bursts, glow effects
  4. Test on real mobile: Not just browser resize - actual touch interactions
  5. Validate pedagogy: Does a first-time viewer actually learn the concept?

Tech Selection Guide

NeedTechnologyWhen to Use
State transitions, layout animationFramer MotionDefault choice for all animated React components
SVG diagrams, node graphs, treesSVG + Framer MotionStructured diagrams with <50 animated elements
Particle systems, 3D visualizationReact Three Fiber (Three.js)>100 particles, 3D space, WebGL shaders
Canvas 2D renderingRaw Canvas + RAFCustom rendering not suited to SVG DOM
Statistical calculations, scalesD3.js (math only)Scales, color interpolation, statistics. NOT for rendering
Complex data tables with vizTanStack Table + VirtualSortable/filterable data with virtualization
Timeline animationsGSAPComplex sequenced timelines (alternative to Framer)
Charts with large datasetsEChartsWhen D3+SVG would choke on data volume

Technology Anti-Patterns

  • Never use D3 for DOM manipulation in React (use D3 for math, React for rendering)
  • Never use Three.js for flat diagrams (SVG is simpler and more accessible)
  • Never use CSS keyframe animations for interactive state (can't respond to user input)
  • Never use react-spring AND Framer Motion together (pick one animation library)
  • Never use force-directed layout for fixed diagrams (compute positions deterministically)

Key Reusable Patterns

Stepper Controller — The single most reusable pattern (used in 30+ visualizations). Prev/Next/Play controls with keyboard support, auto-play, step dots, and haptic feedback. Full implementation in QUICK-REFERENCE.md.

Semantic Colors — Consistent across all visualizations: emerald=success, red=error, amber=warning, cyan=active, sky=info, violet=accent, slate=muted. Color is never the sole indicator — always pair with icons/labels/shapes. Full palette in GOLDEN-THREAD.md.

Spring Physics — Default transitions: { type: "spring", stiffness: 200, damping: 25 }. Snappy: stiffness: 400, damping: 35. Magnetic: stiffness: 150, damping: 15, mass: 0.1. Full configs in QUICK-REFERENCE.md.


Validation Checklist

Before considering any visualization complete:

  • Teaches something: A non-expert can explain the concept after interacting
  • Works without animation: Meaningful in static/reduced-motion mode
  • Desktop interaction: Hover states, keyboard navigation, cursor feedback
  • Mobile interaction: Touch targets >= 44px, haptic feedback, no hover-dependent UI
  • Performance: Lazy init via IntersectionObserver, RAF for physics, no layout thrashing
  • Accessibility: prefers-reduced-motion, ARIA labels, focus indicators, color-not-alone
  • Spring-tuned: All motion uses spring physics (not linear/ease), feels natural
  • Semantic colors: Consistent with the color system above
  • No orphaned animations: All RAF/intervals cleaned up on unmount
  • TypeScript types: All props, state, and callbacks fully typed

References

TopicReference
Copy-paste patterns for every viz typeQUICK-REFERENCE.md
The 12 invariant principles with code examplesGOLDEN-THREAD.md
Detailed component patterns by visualization typeCOMPONENT-PATTERNS.md
Device-specific interaction and quality strategiesMOBILE-DESKTOP.md
Pedagogical design principles for teaching with vizPEDAGOGY.md
Performance optimization patternsPERFORMANCE.md
Concept → visualization decomposition engineCONCEPT-DECOMPOSITION.md
Scroll narrative architecture for full-page compositionSCROLL-NARRATIVE.md
Motion lexicon — narrative beats to animation recipesMOTION-LEXICON.md
Visual design system — dark canvas, glass, shadows, typographyAESTHETIC-DNA.md

Signals

GitHub stars
22
Forks
2
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
interactive-visualization-creator
Source
github.com/lev-os/agents