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
FocusedLoading 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