AI-powered teaching material generator for educators
Getting Started »
·
User Guide »
·
Report Bug
LumenExMachina is a Windows desktop application that helps teachers and educators create complete, professional teaching materials using AI. From a single topic description, it generates structured outlines, study texts, worksheets, solutions, self-tests, presentations, interactive quizzes, illustrations, and mini-apps — all exportable to DOCX, PDF, and GIFT (Moodle) formats.
Deutsch: LumenExMachina ist eine Windows-Desktop-Anwendung, die Lehrkräfte bei der KI-gestützten Erstellung kompletter Lehrmaterialien unterstützt. Die App-Oberfläche ist zweisprachig (Deutsch/Englisch), die generierten Inhalte können in jeder Sprache erstellt werden.
- Outline Generation — Hierarchical course structure with learning objectives, key terms, illustration ideas, and mini-app suggestions
- Outline Chat — Refine and iterate on the generated outline through natural language conversation
- Document Generation — Six document types with block-based content (headings, paragraphs, lists, code blocks, callouts, Q&A)
- Study Text, Worksheet, Solution Key, Self-Test, Presentation, Interactive Quiz
- Illustration Generation — AI-generated images placed contextually within documents
- Mini-Apps — Interactive React or Vanilla JS applications embedded in teaching materials
- Quiz Export — GIFT format for Moodle import, or standalone interactive HTML quizzes
- Document Export — Professional DOCX and PDF output with math formula rendering (KaTeX/LaTeX)
- Reference Documents — Upload existing Word/PDF materials as context for AI generation
- Multi-Provider AI — Choose between Google Gemini, Anthropic Claude, OpenAI, or local LM Studio
- Bilingual UI — Full English and German interface
- Content Language — Generate materials in any language regardless of UI language
- Project Files — Save/load complete projects as
.lmxfiles (ZIP containers with embedded assets)
- Windows 10/11 (x64)
- .NET 10 SDK
- WebView2 Runtime (usually pre-installed on Windows 10/11)
- An API key for at least one AI provider (see AI Providers)
git clone https://github.com/hf75/LumenExMachina.git
cd LumenExMachina
dotnet restore
dotnet buildSet your API key(s) as environment variables:
# Google Gemini (recommended — supports text + image generation)
setx GEMINI_API_KEY "your_key_here"
# Anthropic Claude (optional)
setx ANTHROPIC_API_KEY "your_key_here"
# OpenAI (optional)
setx OPENAI_API_KEY "your_key_here"
# LM Studio — local models (optional)
setx LMSTUDIO_BASE_URL "http://localhost:1234"
setx LMSTUDIO_API_KEY "your_key_here"dotnet run --project LumenExMachina.App| Provider | Text Generation | Image Generation | PDF Input | Local |
|---|---|---|---|---|
| Google Gemini | Yes | Yes | Yes | No |
| Anthropic Claude | Yes | No | Yes | No |
| OpenAI | Yes | No | No | No |
| LM Studio | Yes | No | No | Yes |
Tip: Google Gemini is the recommended provider as it supports all features including image generation and PDF reference documents.
- Create a Project — Define topic, target audience, learning objectives, and scope (short/medium/comprehensive)
- Upload References (optional) — Add existing Word or PDF documents as context
- Generate Outline — AI creates a hierarchical structure with chapters, subchapters, key terms, and illustration ideas
- Refine Outline — Use the built-in chat to adjust the outline through natural language
- Generate Documents — Create study texts, worksheets, solutions, self-tests, or presentations
- Generate Illustrations — AI creates contextual images for the documents
- Create Mini-Apps — Generate interactive learning applications (React or Vanilla JS)
- Generate Quizzes — GIFT format for Moodle or standalone interactive HTML quizzes
- Export — Download as DOCX, PDF, or GIFT files
LumenExMachina/
├── LumenExMachina.App/ # WPF desktop application (UI, ViewModels, Services)
│ ├── Views/ # XAML views (Project, Outline, Documents, Export, Settings, ...)
│ ├── ViewModels/ # MVVM ViewModels
│ ├── Services/ # UI services (rendering, file dialogs, settings)
│ ├── Localization/ # EN/DE string resources
│ └── Assets/ # Bundled JS libraries (Quill, KaTeX, React, Babel)
├── LumenExMachina.Core/ # Core library (models, services, prompts)
│ ├── Models/ # Domain models (Project, Outline, Document, Blocks, Quiz, ...)
│ ├── Services/ # Generation service, persistence, contracts
│ ├── Prompts/ # AI prompt templates and JSON schemas
│ ├── Serialization/ # Custom JSON converters
│ └── Utilities/ # JSON cleanup, GIFT helpers
├── LumenExMachina.Export/ # Export engines (DOCX, PDF, GIFT)
├── LumenExMachina.Gemini/ # Google Gemini AI provider
├── LumenExMachina.Anthropic/ # Anthropic Claude AI provider
├── LumenExMachina.OpenAI/ # OpenAI GPT provider
├── LumenExMachina.LmStudio/ # Local LM Studio provider
└── LumenExMachina.sln # Solution file
| Type | Description |
|---|---|
| Study Text | Comprehensive learning material with explanations, examples, and illustrations |
| Worksheet | Exercises and activities for students |
| Solution Key | Answer key for the worksheet |
| Self-Test | Self-assessment questions with immediate feedback |
| Presentation | Slide-style content for classroom use |
| Interactive Quiz | Browser-based quiz with multiple question types |
LumenExMachina saves projects as .lmx files — ZIP containers containing:
project.lmx (ZIP)
├── project.json # Complete project data (outline, documents, quizzes, mini-apps)
└── assets/ # Generated images (Base64-encoded)
Legacy .tfg files from earlier versions are still supported for loading.
- UI Framework: WPF with WPF-UI (Fluent Design / Mica backdrop)
- Runtime: .NET 10 (Windows)
- Architecture: MVVM pattern with async/await throughout
- AI SDKs: Google GenerativeAI, Anthropic SDK, OpenAI SDK
- Document Export: DocumentFormat.OpenXml (DOCX), QuestPDF (PDF)
- Math Rendering: KaTeX (browser preview), CSharpMath (PDF export)
- Rich Text Editor: Quill.js via WebView2
- Mini-App Runtime: React 18 + Babel (JSX transpilation in-browser)
- Dependency Injection: Microsoft.Extensions.DependencyInjection
- Serialization: System.Text.Json with custom converters
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License — see the LICENSE file for details.
This project uses several open-source libraries and components. See THIRD_PARTY_NOTICES.md for full attribution and license information.
- Built with the help of Claude Code by Anthropic
- UI design powered by WPF-UI Fluent Design components
- Math rendering by KaTeX and CSharpMath