πŸ—ΊοΈ NEW INTERACTION MODEL

Visual Knowledge Explorer

An infinite-canvas interface for exploring visual knowledge spaces. Start with one focused image, zoom out to discover related visuals, pan to explore, and click to focus on new images.

Status: Prototype (new interaction model testing)

Impact: Completely isolatedβ€”main lesson remains untouched

Goal: Create a map-like experience for visual exploration

🎯 Interaction Model

  • βœ“ Zoom in/out with +/- buttons or scroll wheel
  • βœ“ Pinch to zoom on mobile
  • βœ“ Drag to pan when zoomed out
  • βœ“ Click any image to focus and explore from there

πŸ—οΈ Architecture

  • βœ“ Provider-agnostic image source layer
  • βœ“ Openverse + Meemor cache supported
  • βœ“ Quality filtering built in
  • βœ“ Extensible for future providers

⚠️ Important: Safety First

  • βœ“ This is a completely isolated prototype
  • βœ“ Main lesson visual cards are untouched
  • βœ“ If explorer fails, lesson still renders normally
  • βœ“ Text always loads first, images are optional
  • βœ“ No page-blocking operations

Try the Explorer

Select a Topic

πŸ“ Exploring: Elephant

African and Asian elephants

How to use: Use +/- buttons or scroll to zoom, drag to pan, click images to focus.

Visual Explorer

Focused

Loading visual explorer...

πŸ’‘ Testing Checklist

  • β–‘Desktop: Click +/- buttons to zoom, use scroll wheel, drag to pan
  • β–‘Mobile: Pinch to zoom, drag to pan, tap images to focus
  • β–‘Interaction: Explorer feels smooth and responsive
  • β–‘Fallback: If explorer breaks, lesson text still renders
  • β–‘Different Topics: Switch topics and verify smooth transitions

πŸ—οΈ Architecture

Components: VisualKnowledgeExplorer (main), VisualKnowledgeExplorerPage (test)

Provider Registry: visualProviderRegistry.ts (abstraction layer)

Providers: openverseProvider.ts, meemoCacheProvider.ts

Interaction: Zoom (0-100%), Pan (x,y), Click to focus

Layout: Infinite-canvas with CSS transforms for smooth animation

πŸ“‹ Technical Approach

βœ“ Provider Abstraction: Providers implement common interface (search, getImage)

βœ“ Infinite Canvas: CSS transforms for smooth zoom/pan, no page reflow

βœ“ Lazy Loading: Images load as needed when viewport expands

βœ“ Gesture Support: Pinch zoom, drag pan, scroll wheel zoom

βœ“ Quality Filtering: Hard rejects (memes, logos, text-heavy, low-quality)

βœ“ Mobile First: Touch-native interactions, button fallbacks

πŸš€ Next Steps

  • βœ“ Wire up provider registry with real image retrieval
  • βœ“ Implement infinite-canvas spatial positioning algorithm
  • βœ“ Test gesture handling on mobile devices
  • βœ“ Gather feedback before integrating into lesson flow
  • βœ“ Add support for diagrams, illustrations, and other visual types