Projects

What I've built

Class projects, personal builds, and tools for the Dune: Imperium community — most recent first.

Dune Imperium Reinforcement Learning Engine

Dune Imperium Reinforcement Learning Engine

2026 · Ongoing

A Python reinforcement learning engine that plays Dune: Imperium Uprising: a full game-state orchestrator modeling players, contracts, tech, and the spy system (with Bloodlines expansion rules encoded), an MCTS-based decision engine combined with imitation learning, and a vision pipeline for extracting live game state from screenshots and logs. I also used Python libraries to scrape and parse card text and effects into a structured dataset the engine references when evaluating moves — applying classical AI search and modern ML to a complex, rules-heavy game environment.

Python Reinforcement Learning MCTS Imitation Learning Computer Vision
LB

LexBERT

January 2026 – May 2026 · Class Project

Built and evaluated LexBERT, a BERT-based passage-ranking model that augments transformer embeddings with lexical features (TF-IDF, Jaccard similarity, query term density) to rank MS MARCO search passages by relevance. Benchmarked against baseline BERT and SBERT using MRR, Recall, and Precision — LexBERT outperformed both across every evaluation, reaching up to 0.82 MRR versus 0.59 (BERT) and 0.71 (SBERT).

Python PyTorch Hugging Face Transformers NLP Information Retrieval
iG

invisiGAN

August 2025 – December 2025 · Class Project

Collaborated on a 5-person team to build invisiGAN, a conditional GAN in PyTorch that embeds imperceptible binary messages into generated images (MNIST/EMNIST). I researched conditional-GAN and steganographic (SteganoGAN) architectures to inform the generator, discriminator, and decoder design; trained the baseline model; extended evaluation to CIFAR-10; and built the project's GitHub Pages site.

Python PyTorch GANs Computer Vision Steganography
The Colosseum

The Colosseum

A full tournament management web app for The Colosseum, a 64-player Dune: Imperium tournament I organized. Features a spinning-wheel draft system, live group standings, a knockout-stage randomizer, password-protected result entry, and XLSX export for tournament records — end-to-end ownership of a production-style app, from UI/UX to data export and access control.

React TypeScript
Dune Tournament Discord Bot

Dune Tournament Discord Bot

A Python Discord bot that ran a large-scale Dune: Imperium Uprising online tournament — named houses, combinatorial group-stage scheduling, and availability-aware bin-packing to fairly assign match times. The bot also uses a vision API to parse tournament results directly from submitted screenshots, with all data persisted in SQLite: backend systems design paired with practical applied AI for a real, active community.

Python discord.py Vision API SQLite
WanderSync

WanderSync

August 2024 – December 2024 · Class Project

Using agile principles and an MVVM architecture, I led a team building a mobile app that helps users create synchronized trip schedules. Firebase stores shared trip data, so when one user adds another to a trip, changes sync automatically on both ends. Over this five-month project I learned Android app development and how to collaborate with a team, including user diagrams tracing data from Firebase to what the user sees on screen.

Android Studio Firebase MVVM
Chess Engine

Chess Engine

April 2024 – September 2024 · Personal Project

An AI chess engine that plays full games, calculating the best position up to five moves deep against an evaluation function, with chess notation printed for the first 58 moves on both sides so players can track the game. Testing against Chess.com bots put its strength at roughly 823 ELO. Alpha-beta pruning cut the engine's "thinking time" by 150%.

Python pygame Alpha-Beta Pruning
House Price Estimator

House Price Estimator

June 2024 – July 2024 · Personal Project

Trained a model to predict California home values from features like proximity to water, bedroom count, and other listing attributes — an introduction to machine learning and predictive modeling. The model reaches 87% accuracy, using scikit-learn for feature evaluation and analysis.

Python scikit-learn Jupyter Notebook
Football Weather API

Football Weather API

An app that connects a football API and a weather API to link sports and real-world conditions. Users pick from the top five European leagues (Premier League, Ligue 1, Bundesliga, La Liga, Serie A) and a year from 2012–2022; the app retrieves the league standings, finds the first-place team's city, and calls the weather API for a live weather analysis of that city.

Python REST APIs