Interactive math course as a single HTML file
A pipeline that turns a topic outline into a self-contained HTML course with sliders, graphs, and quizzes — six modules, no CMS, no hosting lock-in.
What changed. A six-module interactive course ships as one HTML file in an afternoon instead of a weeks-long production cycle.
Stack. architect–module–integrator pipeline · inline SVG and canvas · self-contained HTML · local progress
Context
Tutors and small online schools still ship learning as PDFs and slide decks. Building a module by hand — copy, figures, formatting — stretches across days. The result is static. Students read. They do not move a parameter and watch a curve respond. Updating a course means another production cycle.
This case is a teaching artifact, not a market product. It does not give investment advice, size positions, or forecast returns.
Task
Take a topic outline and produce a course a student can open in any browser: theory, worked examples, live plots, a calculator, and a self-check quiz. One file. No CMS, no CDN, no student account on someone else’s platform. Progress stays on the device. The pipeline has to finish in hours, not in a content-team sprint.
What we built
A four-stage generator. An architect model lays out topics, learning objectives, and module boundaries. Six module agents write in parallel — foundations, formulas, worked examples, interactive plots, a solver, and a quiz — each with its own sliders and checks. An integrator assembles the modules, unifies styling, and validates navigation.
The output is a single HTML file: CSS, scripts, and SVG or canvas inlined. Sliders recompute formulas in the page. Graphs redraw without an external charting library. Quizzes return immediate feedback. The student can work offline.
What changed
A six-module interactive course leaves the pipeline in three to six hours as one file a tutor can email or host anywhere. Students explore variables instead of watching a recorded take. There is no student database to operate and no plugin stack to patch.
What we would do differently
Put a structural gate in the integrator from the first run: every module must expose a heading, at least one interactive control, a quiz item, and no broken in-page links. We originally eyeballed the assembled HTML. Parallel agents will omit a quiz or ship a dead fragment unless that absence is a failed build, not a review comment.
Related service: Web apps