top of page

Course Projects

I enjoy dabbling in a myriad of computer science topics like game engines, artificial intelligence, machine learning and graphics. Below are a few examples of projects from special topic computer science courses.

Machine Learning

MNIST_categorization_results_edited.jpg

Built a simple image classification model using PyTorch to recognize handwritten digits (MNIST). The model uses two convolutional layers to extract features from 28×28 grayscale images, followed by fully connected layers to make predictions. It accurately classifies digits 0–9 while staying lightweight and efficient. I also added training, testing, and a visual audit tool to review model predictions and spot errors easily.

val_batch1_labels.jpg
results.png

Made a lightweight detection model for boats in satellite and/or drone imaging. I also made scripts to get polygons of marine protected areas to dynamically search for illegal fishing vessels and plan to link these two together with live satellite data such that when a new satellite overpass is made, boats in marine protected areas are automatically flagged. 

MPAs_1A_1B.png

Created a ultra lightweight pipeline for face detection and human emotion classification. This project is meant to be ran live, requires a camera, and is small enough to be supported on devices like AR glasses.

Made a simple flocking behavior interactive to bridge the short gap between AI and game development in HTML/CSS/JavaScript.  Hover with your mouse to interact!

Artificial Intelligence

Simulated annealing agent uses the simulated annealing algorithm to decide between choosing a better or worse state given a simulated temperature, which decreases over time, such that local maximums are disregarded for higher local maximums or the global maximum(s).

A* pathfinding agent uses the A* pathfinding algorithm to traverse two dimensional spaces optimally given a target position. I tinkered with the A* pathfinding package in Unity earlier on in college with a game development project before being introduced to this algorithm.

Connect four agent uses the min-max algorithm with alpha beta pruning in order to efficiently assess what a next good move would be given the opponent chooses a move that will be good for them. This algorithm was one of my favorite and I think it would be interesting to implement an agent to play through a RPG like Baldur's Gate 3 using a similar algorithm.

Chips Challenge agent uses A* pathfinding algorithm to dynamically assess which path is best in order to collect all the chips whist not being limited by any key-door combination.

Red Joystick
_edited.png

Game Engines

I independently implemented a flexible, networked game engine in the game engines computer science course in the game development concentration. This involved creating server client architecture to support multiplayer using ZeroMQ Pub/Sub and Req/Rep sockets and rendering figures via the SFML library. This project bolstered my existing understanding of game engines as well as familiarity working on large C# projects. One regret I have from this project is that I was learning C during this and this was my first C++ project so I wasn't able to use the best programming conventions.

Screenshot 2024-12-28 183122.png

Graphics

Using WebGL and JavaScript, I rendered images and colors in modular and replace modes via rasterization. Topics like triangle strip compression were interesting and potentially very useful in my research to create triangle meshes dynamically.

No Collections Here

Sort your projects into collections. Click on "Manage Collections" to get started

bottom of page