Projects
Things I have built to learn how they work. 11 so far, most recently updated first. Each one links to its source.
-
Nova
A tray-resident desktop assistant, summoned with a hotkey, meant to act on the machine through an LLM tool-calling loop. Risky actions will wait for the user to confirm.
Electron, React, TypeScript
-
envanalyzer
Traces which environment variables a JavaScript or TypeScript project reads, with a confidence score for each result. Published as two npm packages.
TypeScript, Node.js
-
Semantic Screenshot Daemon
Runs in the background, watches for new screenshots, has Gemini Vision describe each one, and an organisation agent picks the folder and file name. A vector store of past screenshots keeps its choices consistent.
Python, Gemini Vision API, FAISS
-
Small language model
A GPT-style transformer written from scratch: a custom BPE tokenizer, 8 layers and about 9 million parameters, trained on TinyStories.
Python
-
Mini Browser
A lightweight tabbed web browser with navigation controls and a combined address and search bar.
Electron, React 19, TypeScript, Vite
-
Multimodal document Q&A
Ask questions about a PDF and get answers grounded in both its text and its images, using CLIP, a FAISS index and the Gemini API.
Python, Flask, Next.js, TypeScript, LangChain, FAISS
-
Restaurant review RAG API
Answers questions about a pizza restaurant from its customer reviews, and indexes new reviews the moment they are added. The models run locally.
FastAPI, LangChain, ChromaDB, Ollama
-
Code Reviewer
Paste a code snippet and get an AI review of it.
Express, React, Vite, Gemini API
-
News summarizer and sentiment analyzer
Summarises news articles and analyses their sentiment, with a FastAPI backend and a Next.js front end.
FastAPI, Next.js, TypeScript
-
Virtual camera controller
Segments a person in the webcam feed with YOLOv8 and blurs, blacks out or replaces the background, then streams the result to a virtual camera. A small web page controls it.
Python, YOLOv8, OBS virtual camera
-
AI Flappy Bird
A neural network learns to play Flappy Bird, evolved over generations with the NEAT algorithm.
Python, Pygame, NEAT-Python