Things I've built.
A mix of paid work, school projects, and things I built because I wanted them to exist. The first four have live sites — open them in a tab. The rest live on GitHub.
Twitch Detox
Chrome extension to detox the Twitch experience. Hides recommended channels, auto-playing streams, and homepage distractions while keeping followed channels visible.
Reddit Detox
Chrome extension to detox the Reddit experience. Removes recommendations, promoted posts, and adds friction overlays to help stay intentional.
YouTube Detox
Chrome extension to detox the YouTube experience. Hides Shorts, recommendations, and autoplay, and adds friction delays to keep browsing intentional.
pdf2audio
Converts PDFs to audiobooks with chapter-by-chapter audio output using Kokoro TTS. Drop in a PDF, get a full narrated audiobook back.
Adaptive Strategy RL
Strategy-conditioned RL — teaching one neural network multiple play-styles via strategy-vector conditioning. Proof of concept on LunarLander, targeting Rocket League.
Color Wheel Histogram
Python script that visualizes the color distribution of an image on an HSV color wheel. Useful for color analysis and photography.
Million Spotify Playlists
Led a team predicting playlist success on a 36 GB dataset of 20M songs. Built a sequential cache for 10× faster data access. 89% accuracy using ensemble methods (Random Forests, Logistic Regression, Ridge).
GeoGuessr AI
CNN that identifies GPS coordinates from Google Street View images. Collected 50K images via custom data mining and trained the model to 85% accuracy on large coordinate bins.
AbiGAIL
Inverse Reinforcement Learning bot for Rocket League. Uses GAIL to imitate expert behavior, trained on thousands of high-level matches via the RLBot API.
Gnomebot
Discord bot I've maintained for 4+ years. Uses GPT and DALL-E 3 for conversations and image generation. Tracks quotes, monitors air quality, integrates with Google APIs. Self-updating and always live.
AI Playlist Generator
Android app with Google Assistant integration. Describe a vibe ("music for walking on the beach") and it generates a Spotify playlist using ChatGPT to pick the songs.
Transformers for IRL
Research project using GAIL and VAIL with Transformer-based reward networks for Inverse RL. Tested on LunarLander-v4. Transformers gave more stable training but converged slower than linear networks.
Codenames Online
Full implementation of Codenames using TCP sockets and Pygame. Plays like the real thing. Comes with an Android companion app for local multiplayer.
Tetris RL
Built a Tetris engine from scratch and trained agents using hand-implemented genetic algorithms and NEAT. The models learned to survive for several lines but lacked long-term strategy.
D&D AR Battle Map
AR app that places and moves player tokens on real-world surfaces for D&D. Replaces physical miniatures — players can scale and reposition characters for tabletop play.
SFO Passenger Traffic Sim
Discrete-event simulation of passenger flow at SFO's international terminal. Used real TSA and flight data to model de-boarding, gate assignments, and wait times.