A free, self-hostable tutorial platform taking you from Python basics to generative and adversarial AI — with live in-browser ML model demos powered by ONNX Runtime Web. No server required; everything runs in your browser.
Live: ikathuria.github.io/python-to-ai
| # | Lesson | Topics | Try it in the browser |
|---|---|---|---|
| — | History of AI | 80 years of AI, hype vs. reality (no code) | Animated timeline |
| 00 | Python basics | Data types, structures, functions, OOP | — |
| 01 | ML basics | NumPy, Pandas, data preprocessing | — |
| 02 | Supervised learning | Classification, regression, KNN, decision trees | Live predictions (ONNX) |
| 03 | Unsupervised learning | K-means clustering, PCA | Cluster assignment (ONNX) |
| 04 | Recommendation systems | Content-based & collaborative filtering | Movie recommender (ONNX) |
| 05 | Deep learning | PyTorch, backprop, neural networks | Gradient descent & activation playgrounds |
| 06 | Computer vision | CNNs, convolution, image classification | Colour classifier (ONNX) |
| 07 | Time series | Stationarity, ARIMA, LSTM forecasting | Moving-average smoother |
| 08 | Language (NLP) | Word2Vec, PMI, language models | Cosine similarity explorer |
| 09 | Generative AI | Next-token prediction, Baby GPT, RAG, diffusion | Be the language model |
| 10 | Adversarial AI | Adversarial examples, FGSM, prompt injection, defences | Fool a classifier |
| Path | What's in it |
|---|---|
index.html, app/pages/ |
The website (static HTML, served by GitHub Pages) |
app/onnx_models/ |
Trained models the site runs in the browser |
app/styles/ |
Brand tokens, shared styles and scripts, built lesson CSS, episodes.js (video list) |
0 Basic_Python_Concepts/ … 8 Adversarial Threats/ |
Notebooks behind each topic. Each folder has a README linking to its lesson |
scripts/ |
Export models to ONNX, keep the nav in sync, make share images |
tests/ |
Site checks that run in CI |
CLAUDE.md |
Conventions for working on the repo (datasets, adding lessons) |
PLAN.md |
Roadmap |
VIDEOS.md |
YouTube episode plan linked to each lesson |
BRAND.md |
Brand guidelines |
design/ |
Brand exploration: the 8 directions and the brand sheet |
Datasets aren't stored in the repo: notebooks download them from Kaggle on first run with kagglehub (public datasets, no account needed).
- Live demos: 15 ONNX models plus small JavaScript demos run entirely in the browser (no server, no Python needed)
- Learning path: lessons grouped into four stages, with a progress bar and "Continue" button saved in your browser
- Knowledge checks: a quiz at the end of every lesson; a perfect score marks the lesson complete
- Copy buttons on every code block and "Try it yourself" exercises
- Light and dark mode, mobile friendly
| Layer | Choice |
|---|---|
| Frontend | Static HTML/CSS/JS; lesson styles compiled with Tailwind CSS |
| Model inference | onnxruntime-web (runs in the browser) |
| Syntax highlighting | Highlight.js |
| Hosting | GitHub Pages |
View the site (no build step, no Node.js):
git clone https://github.com/ikathuria/python-to-ai.git
cd python-to-ai
python -m http.server 8000
# open http://localhost:8000Run the notebooks (macOS, Linux or Windows):
pip install -r requirements.txt
jupyter notebookWorking on the site:
python scripts/sync_nav.py # after adding/reordering lessons in scripts/lessons.py
npm install && npm run build:css # after changing Tailwind classes in app/pages/*.html
pip install -r requirements-ci.txt && pytest # the same checks CI runsThe ONNX models in app/onnx_models/ were exported from the notebooks. To re-export them:
python scripts/export_tutorial_onnx.py # scikit-learn models
python scripts/export_recommender_onnx.py # movie recommender
python scripts/export_colour_cnn.py # colour CNN (needs torch)- Videos on YouTube
- My website: ishani.kathuria.net
- Connect on LinkedIn
- Articles on Medium
- GitHub Wiki