Projects

A curated selection of ML systems, agents, and edge deployments.
JumpNet — Vision-Based Game Agent
Computer Vision · Imitation Learning · Python · PyTorch

Real-time visual decision system for a one-button platformer (~18 ms, ~87% accuracy). Combines a CNN backbone with dual heads for jump classification and press-duration regression.

CNN Imitation Learning Game AI Python
Face Landmarks Detection (OpenCV DNN + Facemark)
Computer Vision · Landmarks · Python · OpenCV

Real-time 68-point facial landmark tracker built with OpenCV DNN face detection and Facemark LBF, extended with EMA smoothing and per-frame CSV logging for analysis.

OpenCV Facemark EMA CSV
Edge AI Sound Classifier on Raspberry Pi Pico
Edge AI · TinyML · Audio · C++ / Python

End-to-end TinyML pipeline on RP2040 that classifies short audio into baby cry, doorbell, smoke alarm, background. 33-dim features (Goertzel bands + spectral stats), multinomial Logistic Regression (~87%), and C++ firmware with real-time z-score, softmax, and hysteresis FSM.

TinyML Audio Raspberry Pi Pico Logistic Regression
Pico Edge Trend Alarm (RP2040)
Time Series · On-device Inference · C++ / Python

Edge AI pipeline for detecting workload-induced heating trends on the Pico: data logging firmware, Python logger, rolling OLS slope features, Logistic Regression, and C++ inference with oversampled ADC, slope buffering, and hysteresis/hold FSM.

Time Series Edge AI Pico SDK TinyML
Mini SCADA Console (Raspberry Pi Pico, C++)
Embedded · RP2040 · USB-CDC · C++

USB-CDC command console simulating an industrial field device: internal temperature telemetry via ADC4, logging, and LED control. Designed to mimic SCADA-style interaction via a serial terminal (PuTTY @115200).

Pico SDK USB-CDC ADC CMake/Ninja
VAE vs VQ-VAE Face Compression
Representation Learning · Image Compression · PyTorch

A side-by-side comparison between continuous and discrete latent spaces for compressing face images. Evaluates reconstruction quality, latent structure, and failure modes of VAE vs VQ-VAE architectures on the same dataset.

VAE VQ-VAE Face Dataset PyTorch
Conditional GAN — Sketch Generator
Generative Models · cGAN · PyTorch

A conditional GAN trained on Berlin sketch drawings, generating class-specific sketches from a discrete label input. Includes improved training tricks, loss tracking, checkpointing and a small GUI for interactive sampling.

cGAN Computer Vision Generative
PDF Summary Chatbot (Local LLM)
Local LLM · RAG · Tools

A local, privacy-friendly assistant that indexes PDFs, extracts key sections, and lets you query documents using a lightweight LLM. Includes chunking, similarity search and answer attribution with references to the source pages.

RAG Local Inference Python
Advanced Dataset Viewer / Data Recorder
Tooling · Visualization · Python / GUI

A GUI-based tool for inspecting large datasets, recording new examples, and visualizing labels or metadata. Designed for debugging ML agents and understanding real-world data distributions before training.

Data Tooling Visualization Python
Real-Time Image Color Palette Extractor
Streamlit · OpenCV · k-means · Color Science

Streamlit app extracting dominant colors from images in real-time using k-means, CIE LAB space, and ΔE2000 distance. Designed for designers and ML preprocessing workflows.

OpenCV k-means CIE LAB ΔE2000
Applied Linear Regression (x5)
Regression · scikit-learn · Real Datasets

Five hands-on regression projects on real-world datasets (salary, cars, wine, insurance, trips) using scikit-learn, focusing on feature engineering and metrics.

Python scikit-learn Pandas
Machine Learning Algorithms Comparison
Classification · Metrics · scikit-learn

Compares Decision Tree, SVM, and KNN classifiers using Accuracy, Precision, Recall, and F1-score on the same dataset. Includes clear plots and metric tables.

Decision Tree SVM KNN Metrics
Sentence Prediction with Q-Learning
Reinforcement Learning · NLP · Python

Character-level Q-Learning agent that tries to reach target sentences. A playful RL/NLP crossover exploring reward design and state spaces.

Q-Learning Text Exploration
Wavelets & Clustering Parity
Signal Processing · Clustering · PyWavelets

Odd/even classification with wavelet features and unsupervised clustering — an intentionally over-engineered toy problem to highlight feature engineering.

PyWavelets k-means NumPy
Daily LeetCode Progress
Algorithms · Data Structures · Python & C++

Ongoing series of algorithm & data structure challenges — daily solutions and 5-day recap posts. Focus on patterns and reusable problem-solving techniques.

LeetCode DS & Algo Python C++
Simple Shell in C
Systems Programming · POSIX · Processes

Minimal CLI shell to explore processes, files, and basic syscalls. Implements command parsing, forking, exec, and process waiting in pure C on POSIX systems.

C POSIX fork/exec