Turn a lesson brief into an editable explainer video — script, visuals, narration and timeline.
Describe a lesson or drop in your teaching material. Explainer Studio plans it, generates it, and lets you edit every scene before exporting.
Self-hostable · model-agnostic · runs fully offline · Apache-2.0
Warning
Pre-alpha. The architecture is settled and documented; the code is being built in phases. Nothing is published to npm yet. See the plan for what ships when. Stars and issues welcome; production use is not yet sensible.
Making a good explainer video takes hours a teacher does not have. Tools that generate one usually produce something you cannot fix, lock you to one AI vendor, send your material to a server you do not control, or quietly stop working when the subscription lapses.
Explainer Studio is built the other way around:
- Everything is editable. The output is a structured document, not a rendered blob. Change the wording, swap an image, retime a scene, remove it entirely.
- Every lesson is validated by code, not by a model. Deterministic gates check layout, narration sync and pedagogical structure before anything is saved. A weaker model produces a worse lesson — never an invalid one.
- No vendor is required. Anthropic, OpenAI-compatible endpoints and Ollama all work. Run it entirely on your own machine with no API key and no network.
- Your lessons outlive the tool. The document format is openly specified. Stop using Explainer Studio and you still have a readable, re-renderable file.
| Artifact | Format |
|---|---|
| Lesson document | explainer/v1 JSON — portable, diffable, git-versionable |
| Interactive lesson | in-app, embedded, or a shared link — pauses for learner answers |
| Video | MP4 |
| Captions | WebVTT / SRT |
| Narration audio | per line, per language |
| LMS package | SCORM 1.2 / 2004, xAPI |
"Teach photosynthesis to grade 7, 5 minutes" (+ your textbook chapter, optionally)
│
① BRIEF proposes objectives, key facts with page references, misconceptions
│
② ★ YOU APPROVE ★ the point where you decide what is taught
│
③ GENERATE script · scenes · visuals · timing · narration
│ validated by deterministic gates at every attempt
④ REVIEW watch it, edit any scene
│
⑤ EXPORT play in class · MP4 · captions · SCORM · link
Step ② is deliberate. Fixing a wrong objective there takes seconds; finding it after twenty scenes have been generated and paid for takes a rebuild.
What we do not claim. The gates check that a lesson is structurally sound — layout fits, narration syncs, the teaching arc is complete. They do not check whether it is factually correct. You review the content; we make reviewing fast and fixing easy.
Requires Node.js 22+ and pnpm 9+.
git clone https://github.com/BingooAI/explainer-studio.git
cd explainer-studio
pnpm install
pnpm devOpen http://localhost:3000. No account, no API key, no network call — the editor, player and sample lessons work out of the box, using your browser's built-in voice.
To generate lessons, connect a model. Fully local, no key, nothing leaves your machine:
ollama pull qwen2.5:14b
# then point the studio at it in Settings, or:
export LLM_BASE_URL=http://localhost:11434/v1Or use a hosted provider — Anthropic, OpenAI, Groq, or anything OpenAI-compatible — by pasting a key in Settings. Costs are shown before you generate and totalled after.
The engine and player are published as packages, so you can embed lessons without adopting our server, auth or database.
npm i @bingoo.ai/explainer-core @bingoo.ai/explainer-reactimport { ExplainerPlayer } from '@bingoo.ai/explainer-react'
<ExplainerPlayer doc={doc} bundle={bundle} locale="en" />See ARCHITECTURE §13 for the three integration depths — from using only the open document format, to embedding the full authoring experience.
| You are | How to run it |
|---|---|
| A teacher | Desktop installer — macOS, Windows, Linux (Phase 5) |
| A school or district | Docker Compose, your own keys or none at all |
| A developer | pnpm dev, as above |
Storage is your choice: local filesystem by default, or any S3-compatible bucket — Cloudflare R2, MinIO, Backblaze B2, AWS S3. No student data is ever collected; this tool processes curriculum, not learners.
| PRODUCT.md | Who it is for, what it produces, the release plan |
| ARCHITECTURE.md | How the system is designed and why |
| ENGINEERING.md | Rules for changing this repo — read before contributing |
| docs/spec/ | The explainer/v1 document format |
| docs/adr/ | Architecture decision records |
Contributions are genuinely designed for, not merely tolerated. Every extension point is a registry: adding a manipulative, a locale, a layout template, a provider or an exporter should not require changing a single existing file. If it does, that is a bug in our design — please say so.
Start with CONTRIBUTING.md. We use DCO
sign-off (git commit -s) and no CLA — deliberately, so the project structurally cannot
be relicensed or taken private later.
Apache-2.0 for the entire repository. Copyright © Bingoo.ai.
The licence covers the code; the name and logo are covered by the trademark policy. Apache-2.0 grants no rights to the "Bingoo" or "Explainer Studio" names.