Firestarter is a drawing app for comics and illustration with an agent panel. Describe a scene and it lays out the panels and writes the dialogue into them. Ask for an eight-page chapter and it plans the chapter, shows you the plan, then draws every page. Speech balloons and captions stay as editable text objects on the canvas, so a line can be rewritten without regenerating the art. It also produces coloring books, posters, greeting cards, and system diagrams, and exports a chapter as a single PDF.

Product engineering, not a demo
- Installers for Windows, macOS arm64, and macOS x64, published through GitHub Releases with self-update.
- Layered canvas with brushes, shapes, image import, guides, and undo history.
- Token-gated shared backend for the hosted path, and a self-host path where the server is a single Python file with no dependencies outside the standard library, packaged in Docker. Dropping the dependency tree was a deliberate choice: the self-host story has to survive a user who will not install anything.
- Routing. One module decides which model runs which step. Layout, dialogue, and rendering go to different models, and the routing table is data, not code paths.

Model bake-off
Before choosing defaults, the same prompts were run through GPT-5-image, Gemini 3 Pro Image, and Gemini 2.5 Flash Image, and the outputs kept side by side under version control so the decision is auditable. Dialogue generation has its own benchmark runs, stored as paired JSON and Markdown reports.

| Property | Value |
|---|---|
| Codebase | ~12.5k lines, Electron/TypeScript front end, Python back end |
| Platforms | Windows, macOS arm64, macOS x64, self-updating |
| Backend | single stdlib-only Python file, Dockerised; hosted or self-hosted |
| License | PolyForm Noncommercial, commercial rights reserved |