One concept, fifteen ways to explore it. An engine that generates interactive learning explorations, renders them, tracks every interaction as xAPI, and analyzes the behavior — built for modern education and learning research.
The library rests on the premise that how knowledge is presented changes what a learner does with it. Each design decision maps to an established school of thought in the learning sciences — not to a claimed result.
The founding idea: a single concept explored as a network, a chronology, or a Socratic question tree engages different cognitive skills. So the same content is offered in 15 formats rather than one.
In the code → config.keFormats defines 15 formats across
3 categories; a matching template renders each.
Managing intrinsic and extraneous load lets working memory focus on understanding. Formats that pace and stage information follow directly from this.
In the code → the Progressive Disclosure and Comprehension-Adapted formats reveal material in graded levels.
Pairing verbal and visual channels gives learners more than one route to meaning. This motivates the visual and multi-representation formats.
In the code → Concept Map, Timeline, Multi-Modal, and Comparison formats present structure visually alongside text.
Constructing understanding through questions and problems, rather than receiving it, drives the pedagogical formats — including lateral (cross-domain) thinking.
In the code → Question-Driven, Problem-Based, Lateral, and Collaborative Team formats.
Retrieval at increasing intervals strengthens retention. A dedicated format is built around repeated recall rather than re-reading.
In the code → the Spaced Repetition format is card- and recall-based.
If learning is behavior, it should be observable and analyzable. Every interaction is captured as a standards-based statement and interpreted against a per-format framework.
In the code → interactions become xAPI statements; an AI analyzer reads them with a format-specific behavior framework.
A Node.js/Express application with a deliberately small set of chokepoints: one gateway for models, one data layer, one place that defines the formats. Client code ships with no build step.
Every model call flows through one dispatch(). Switch providers with a single
environment variable.
9 providers → OpenAI, Azure, Mistral, DeepSeek, Groq, Ollama,
Anthropic, Google Gemini, Cohere. Default gpt-4o.
No SQL database. Every entity — sessions, explorations, analyses, assessments, users — is a JSON object in a Google Cloud Storage bucket, behind one data layer.
Keyed paths → sessions/ questions/ analyses/ assessments/
cache/ users/
Learner events are translated to xAPI 1.0.3 statements (mapped to ADL verbs) and posted to a Learning Record Store; reads query the LRS by session.
Standards → xAPI 1.0.3, ADL verb vocabulary, LRS-backed.
Each format carries a precise JSON contract injected into the prompt, so output always matches what its template can render.
One contract per format → in keGenerator, JSON-mode with
fence-stripping.
Requests are hashed by content-defining parameters. Explorations accumulate into a pool; once full, requests draw random variants instead of regenerating.
Default pool 20 → SHA-256 config hash at
cache/<hash>.json.
Bearer tokens are verified against an external OAuth gateway and cached; roles gate the admin, teacher, and student surfaces.
Tiers → admin · teacher · student.
Pick a format, domain, and concept. The gateway produces schema-valid content; the pool caches variants.
→A per-format template loads the content by id and renders an interactive experience — with an in-context AI assistant.
→Clicks, reveals, confidence changes and submissions stream out as xAPI statements to the LRS.
→An AI analyzer reads the statements against the format's behavior framework and returns a learner profile and metrics.
→Where it fits, who uses it, and the 15 formats it ships with — grouped by the cognitive category each serves.
Turn any concept into a shareable, interactive exploration in one config. Bundle several into an assessment; embed any of them in an LMS by iframe.
Try every format live with no sign-in, then learn with an AI assistant that explains both the content and the method being used.
Collect standards-based xAPI behavior at scale and run AI analysis with per-format frameworks — a testbed for how presentation affects learning.
What changes for each audience — framed as mechanisms the design produces, not as measured outcomes.