Skip to content

feat: interactive knowledge mapper demo for public release#19

Merged
jeremymanning merged 53 commits intomainfrom
001-demo-public-release
Feb 19, 2026
Merged

feat: interactive knowledge mapper demo for public release#19
jeremymanning merged 53 commits intomainfrom
001-demo-public-release

Conversation

@jeremymanning
Copy link
Member

Summary

  • Canvas 2D renderer with pan/zoom, minimap, and hover tooltips showing bundle labels and concepts
  • Gaussian Process estimator (Matérn 3/2 kernel) for adaptive knowledge prediction across a 50×50 grid
  • Global concept insights — trophy (expertise) and graduation cap (suggested learning) modals now use a global estimator across all loaded domains, reflecting the full map rather than just the current view
  • Khan Academy integration — suggested learning links use unquoted search queries for broader, more reliable results; niche concepts filtered out to improve search relevance
  • Explanatory UI text — both insight modals include descriptions of how concepts are determined, plus a genuine-effort caveat
  • Professional light theme with Dartmouth Green primary, system fonts, and clean academic aesthetic
  • 16 domain bundles (Mathematics, Physics, Biology, Neuroscience, etc.) with UMAP-embedded articles and questions
  • Quiz system with KaTeX math rendering, active learning question selection, and response import/export
  • Particle background, responsive layout, keyboard shortcuts, and accessibility features

Test plan

  • Load app at /mapper/ and verify welcome screen renders
  • Select a domain and confirm map renders with article dots
  • Answer several questions and verify heatmap updates in real-time
  • Switch domains and confirm tooltips update (no stale data)
  • Click trophy icon — verify modal shows top 10 concepts across all loaded domains with explanatory text
  • Click graduation cap — verify modal shows bottom 10 concepts with Khan Academy links that return results
  • Click a Khan Academy link and confirm search page loads with relevant results
  • Verify genuine-effort caveat appears in both insight modals and the info/about modal
  • Test on mobile viewport (375×667) for responsive layout
  • Reset progress and confirm global concept accumulator clears

🤖 Generated with Claude Code

jeremymanning and others added 30 commits February 16, 2026 09:25
Generated via init-deep: project overview, structure, data flow, conventions, anti-patterns, and commands for the Wikipedia Knowledge Map pipeline.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Pipeline scripts overview (72 lines) and shared utilities reference (31 lines). Child docs cover script-specific conventions, anti-patterns, and lookup tables without repeating root.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Spec covers 6 user stories (domain exploration, navigation with 3D
transitions, smart question modes, knowledge insights, cross-domain
predictions, documentation), 20 functional requirements including
active learning question selection (FR-016–FR-019) and per-point
animation (FR-020), 12 measurable success criteria, and research
references (Weinshall, Hübotter, Müller) informing the active
sampling and transition approaches.

Checklist: 16/16 pass. Ready for /speckit.plan.
… loading

4 clarifications from interactive session:
- Question allocation: hybrid model (sub-domains unique, parents mix
  child + general questions, ~750-800 unique total)
- localStorage: schema version tag, graceful discard on mismatch,
  reset button with confirmation, export before reset
- Accessibility: WCAG 2.1 AA (keyboard nav, contrast, color-blind)
- Data loading: lazy per domain with progress bars on slow connections

New FRs: FR-021 (reset), FR-022 (export), FR-023 (WCAG 2.1 AA)
New SCs: SC-013 (Lighthouse a11y audit)
New edge cases: slow connection, localStorage unavailable, version mismatch
…onflict, missing tasks, grid size, default domain
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…ata placeholder

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
jeremymanning and others added 23 commits February 16, 2026 13:24
…right tests, and GitHub Pages deploy workflow

Phase 9: Generate 950 conceptual MCQs across 19 domains with length-balanced
answer options, compute embeddings (embeddinggemma-300m), PCA coordinates,
and export domain bundles to data/domains/.

Phase 10-11: Add responsive layout (mobile/tablet/desktop breakpoints),
touch targets, CDN fallbacks, skip-link, ARIA attributes, focus indicators,
screen reader announcements, and color contrast fixes.

Phase 12: Implement 21 Playwright tests across 5 specs (quiz-flow,
transitions, modes, responsive, accessibility) — all passing on Chromium.
Fix modes init order so quiz.init() runs before modes.init().

Phase 13: Add GitHub Actions deploy workflow for GitHub Pages, archive
legacy root-level data files in .gitignore, verify zero TODO/FIXME.
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-Claude)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-Claude)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-Claude)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-Claude)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-Claude)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…e improvements

- Particle system: spring-return physics with mouse repulsion on landing page
- Answered-question dots: correct/incorrect colored overlay with click-to-reanswer
- Response replacement: re-answering replaces old response instead of duplicating
- Minimap: knowledge coloring overlay, click-to-navigate with pan transition
- Renderer: BitmapLayer heatmap, custom HTML tooltips, collision-filtered labels
- Quiz: text sizing and KaTeX spacing fixes
- Math: kernelMatrix pre-allocation bug fix
…al rewrite

Replace all native <select> elements with fully-themed custom dropdowns
using reusable createDropdown() helper (ARIA combobox, keyboard nav).
Hide header domain-selector on welcome screen. Fix arrow direction to
point up toward dropdown. Update CTA copy, titlebar to 'Knowledge Mapper',
and rewrite about modal with accurate RBF methodology description.
Add theme-aware particle colors (neon pink dark / deep purple light).
Update all Playwright tests for custom dropdown selectors (42/42 pass).
…ap rewrite

Replace broken deck.gl MapView (Web Mercator projection incompatible with
[0,1] embedding space) with direct Canvas 2D rendering. Bundle drops from
793KB to 63KB (1193→37 modules). Includes mouse wheel zoom, drag pan,
touch pinch-zoom, synthwave heatmap colors, and smooth animated transitions.

Minimap now renders full-map thumbnail with per-cell heatmap, article dots,
domain outlines, and a draggable cyan viewport rectangle.

Also includes Wave 1 fixes: uncertainty-weighted coverage (T4), synthwave
insight colors (T5), resizable quiz panel (T6), option alignment (T7),
dropdown scrollbar styling (T8).

All 42 Playwright tests pass.
…oggle, response import, keyboard shortcuts

Phase 14 (T074-T089): 16 UI fixes addressing post-review feedback.

Theme consistency: dispatch theme-changed event from toggle, renderer/
minimap/particles all re-render on theme switch, minimap uses theme-aware
heatmap colors, backgrounds, domain outlines, and system fonts.

Quiz panel: toggle button (chevron) to show/hide, left-justified text,
white text on correct/incorrect answer backgrounds.

Tooltips: rich HTML with article excerpts, answered-question status
icons, knowledge-colored borders, edge boundary detection.

Colorbar: always visible when domain loaded, themed text/fonts.
Logo: all-green gradient. Mode buttons: white active text, improved
disabled tooltip styling. About modal: keyboard shortcuts table.
Import: upload button to merge exported response JSON.
Particles: green tint in light mode.
- Clear questions before adding new ones on domain switch to prevent
  stale tooltip data from previous domains
- Add bundle label lookup (article titles per grid cell) to cell
  hit-test with O(1) Map for hover tooltips
- Remove canvas-drawn _drawLabels — labels are hover-only via tooltips
- Fix quiz answer buttons: change display:flex to display:block so
  KaTeX math expressions flow naturally instead of fragmenting into
  columns
- Fix renderLatex: pure-number $6$ expressions now render without
  dollar signs
- Remove domain outlines from minimap (single viewport indicator)
- Use global estimator for full-map heatmap shading
- Guard $estimates.subscribe to keep welcome screen clean

Co-Authored-By: Claude (claude-opus-4-6) <noreply@anthropic.com>
…y text

- Trophy/graduation cap modals now use global estimator across all loaded
  domains instead of just the current view, so insights reflect the full map
- Khan Academy search links use unquoted queries for broader, more reliable
  results (quoted exact-match returned zero results for many concepts)
- Suggested learning filters out overly niche concepts (single-word or 5+
  word phrases) to improve Khan Academy search relevance
- Added explanatory text to both insight modals describing how concepts
  are determined and how Khan Academy links work
- Added genuine-effort caveat to both insight modals and the info/about modal
- Updated domain data bundles with concepts_tested and source_article fields
- Light theme as default, estimator improvements, particle background polish

Co-Authored-By: Claude (claude-opus-4-6) <noreply@anthropic.com>
@jeremymanning
Copy link
Member Author

addresses issue #18

@jeremymanning jeremymanning merged commit fae9ae4 into main Feb 19, 2026
@jeremymanning jeremymanning deleted the 001-demo-public-release branch February 28, 2026 03:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant