2026-04-29 Β· D1βD4 dimensional spine Β· Phase 1 active
localhost:8765Canvas A is a working interactive physics tutor staged for collaborator testing. The Studio landing page lets a student start from a curated demo card, type any topic, paste any wiki/article URL, or upload a PDF.
[focus:elem-id]β¦[/focus] markers; runtime polls audio.currentTime and toggles tutor-focus by char-position approximation.9-module architecture (per CANVAS_TUTOR_ARCHITECTURE_v1.md). All modules at π βΊ or better. Full module roadmap β
[focus:elem-id]β¦[/focus] markers + scheduleFocusCues() runtime poller.window.boardState with permanence levels. Phase C (active reconciliation) deferred.Each takes <2 minutes. Try them in order β they go from instant (cached) to slow (live ingestion).
Expected feel: instant. No waiting. No dead air. Watch for: voice-visual sync is broken β the narration won't track which element is being talked about. This is the Phase 1.5 priority.
Bernoulli's principle, Doppler effect, Compton scattering).Expected feel: continuous engagement, no spinner, never silent.
https://en.wikipedia.org/wiki/Bernoulli%27s_principle or https://en.wikipedia.org/wiki/Wave-particle_duality.Also try a PhysOlympiad wiki URL: https://physolympiad.com/wiki/biot-savart-ampere
Limitation: scanned-image PDFs (no embedded text) won't work yet β needs OCR which isn't built. Text-PDFs only for now.
Phase 1 (Activation engine) is mostly done. Before moving to Phase 2 (Board craft), we need to close two visible quality gaps the user identified during testing: (1) voice and visuals don't talk to each other, (2) lessons feel like demoware, not real teaching. Phase 1.5 is dedicated to fixing both.
Recommended sequence for Phase 1.5:
When all of Phase 1.5 is done: tutor speech is synchronized to what the student sees on the board, the 20 demo lessons are genuinely teaching (not demoware), and the pipeline has automated quality gates. Then Phase 2 (Board craft v1) starts on solid ground.
Click any phase header to expand. Active phase + partials are expanded by default.