LearnSynth
Turn text, audio, or video into study-ready materials—summaries, concept maps, quizzes, cloze drills, flashcards, and TTS.
Flutter client + FastAPI backend orchestrating open and hosted LLMs. Default model: GPT-OSS-20B (OpenAI open model) via an OpenAI-compatible endpoint.
App Screenshots
See LearnSynth in action
Add Content
Upload text, PDF, audio, or video files
Library
Organize and access your study materials
How it uses GPT-OSS-20B
Leveraging a powerful, open model for high-quality generation.
- Primary open model: GPT-OSS-20B
- Routed via an OpenAI-compatible /v1/chat/completions interface (streaming), exposed to the client as /llm/generate.
- Strong performance for summarization, key term selection, and Q&A generation.
- Swappable providers via environment variables; fallbacks allowed if configured.
Core Features
Everything you need to accelerate your learning workflow.
One-click study pack
From any text, PDF, audio, or video source.
Summaries & deep prompts
Get the gist and explore deeper concepts.
Concept map
Visualize connections with data + image export.
Quizzes & cloze drills
Quickly validate your understanding.
Flashcards + simple SRS
Reinforce key terms and definitions.
Whisper transcription + OCR
Powered by PyMuPDF and Tesseract for accuracy.
High-Level Architecture
A modern, scalable stack for robust performance.
Flutter (Android / Windows / Web)
FastAPI backend:
/upload-content → ingest (text/pdf/audio/video → text)
/analyze → summary, concept map, prompts, quiz, flashcards
/llm/generate → streaming, OpenAI-compatible
Services: Whisper (AV), PyMuPDF + Tesseract (OCR), gTTS (TTS)
LLM providers: GPT-OSS-20B (primary), optional fallbacks via env vars
Client Build Flags
API_BASE
Backend URL (release builds default to production; override with --dart-define=API_BASE=...).
ENABLE_OFFLINE_LLM
false by default (enable only when local GGUF models are installed).
Quick Start Snippets
Flutter web/windows/apk (production backend):
flutter run --dart-define=API_BASE=https://learnsynth-api.fly.dev --dart-define=ENABLE_OFFLINE_LLM=false
Local dev (local backend + offline LLM):
flutter run --dart-define=API_BASE=http://localhost:8000 --dart-define=ENABLE_OFFLINE_LLM=true
Backend Quick Start
Get the server running with Docker Compose.
cd backend
cp .env.example .env
docker compose up --build
Key endpoints:
.env is ignored. Backend masks tokens in logs.
Technology Stack
Downloads & Links
Get the latest builds and resources.
Website
Official project homepage.
Demo Video
Watch a walkthrough on YouTube.
Latest Release
View release notes on GitHub.
Android APK
Direct download for Android.
Windows Setup
Installer for Windows.
Verify checksums (optional)
Use PowerShell to verify file integrity with SHA-256.
Get-FileHash .\\app-release.apk -Algorithm SHA256
Get-FileHash .\\LearnSynth-Setup-1.0.0.exe -Algorithm SHA256
Roadmap
What's coming next for LearnSynth.