An interactive tour of machine learning. Every concept is taught the same way:
- The problem that forced it — the itch someone had that made the idea necessary, not a timeline of dates.
- In plain terms and the mechanism — one explanation for anyone, one for the technical reader, side by side.
- Something you can poke — a small interactive playground both explanations
narrate, computed live by the
oop_mllibrary through its API, so what you see is the real algorithm rather than a re-implementation in JavaScript.
Three components, three repositories, each deploying on its own cadence: the library, the API that exposes it over HTTP, and this site, which calls the API and never imports the library. The site is nested inside the library's project folder for convenience but keeps its own git history and remote — the parent repo ignores it.
Next.js (App Router) · React · TypeScript · Tailwind. Playgrounds are hand-written SVG driven by pointer events, fetching fits from the API.
The site needs the API running alongside it:
# in ../api
.venv/Scripts/uvicorn oop_ml_api.main:app --reload # http://localhost:8000
# here
npm install
npm run dev # http://localhost:3000Set NEXT_PUBLIC_API_BASE_URL (see .env.example) to point at a deployed API.
A concept is a page under app/concepts/<slug>/ that fills the reusable
ConceptPage shell (components/concept/) with its four parts and a playground
widget (components/widgets/), plus one endpoint in the API. The shell enforces
the teaching structure so every concept reads the same way.