Projects

There are many more projects on my GitHub and Devpost!

Cards Against my Sanity

Dart (Flutter), Express.js

A mobile app implementation of the party game Cards Against Humanity using a cross platform Flutter app and Express.js backend using websockets.

Chess AI

Javascript

(In progress) A chess AI that uses minimax, alpha-beta pruning, and monte carlo tree search to play chess against a human player. It features several different techniques to evaluate the board state and make decisions.

Connect 4 AI

Javascript

(In progress) A connect 4 neural network that uses reinforcement learning to play connect 4 against a human player. The neural network is trained on user input, allowing the user to experience the improvement.

Stable Diffusion

Python

A two part project that creats images using a diffusion model, and then creates a model using the MNIST dataset. The model is then used to generate specific digits from completely random noise.

Auto Stitching Photo Mosaics

Python

This project uses Harris Corners to find features in images and RANSAC to match features between images. It then uses homography to stitch the images together and create a photo mosaic.

Face Morphing

Python

This project uses Delaunay triangulation to morph between two images. It uses affine transformations to warp the images and linear interpolation to blend between the two images.

Fun with Filters and Frequencies

Python

This project uses convolution to get the difference frequencies of an image, allowing us to do things like sharpening, blurring, and edge detection. It also allows us to create hybrid images and multiresolution blending using Gaussian and Laplacian stacks.

Image Colorizing

Python

A script that aligns three images of the same scene taken with different color filters to create a color image. It uses linear transformations to align the images, a Canny edge detector for preprocessing, and SSIM as the metric to find the color image.

Cloth Simulation

C++

A cloth simulation that uses mass-spring systems to simulate cloth physics. It uses Verlet integration to simulate the physics of the cloth and supports collision detection and texture/shade mapping.

Ray Tracing

C++

A ray tracer that uses the Möller–Trumbore intersection algorithm to render 3D scenes. It uses a bounding volume hierarchy, importance sampling, Russian Roulette rendering, and adaptive sampling to optimize rendering time.

Mesh Renderer

C++

A mesh renderer builds off of the triangle rasterizer to render 3D models. It uses De Casteljau's algorithm is a method to evaluate Bézier curves and surfaces for smoothing.

Triangle Rasterizer

C++

A triangle rasterizer that uses barycentric coordinates to fill in triangles with color. It supports perspective correct texture mapping and anti-aliasing.

Co-Fu

Dart (Flutter)

A mobile app built to connect home cooks with their community. (Vertical winner of the 2021 HackSC Hackathon)

Care-ma

Dart (Flutter)

A social media app built to spread joy and positivity.

Mastermind

JavaScript (Processing)

Interactive language learning game for mastering vocabulary and grammar through engaging gameplay.

Website Schmebsite

JavaScript, SQL

Developed and executed a comprehensive security assessment for a file storage website, identifying and addressing potential vulnerabilities such as SQL injection and XSS attacks.

CryptoVault Storage

GoLang

A file storage server utilizing various cryptography techniques to ensure integrity. Users can create, update, and delete files, as well as share them with other users.

C the issues

Python

A program to exploit various flaws in the C programming language and run shell commands on a server. GDB was used to find and debug exploits, and python was used to perform the commands necessary.

Machine Learning

Python

Multiple machine learning projects, including a neural network for approximating sin, classifying handwritten digits, and identifying language.

Reinforcement Learning

Python

Implementation of value iteration and Q-learning that are applied to a simulated robot controller and a simulated crawler robot. The robot controller is able to navigate a world and figure out an optimal path.

Multi-Agent Search

Python

Design and implementation of several search agents to create a version of PacMan. Reflex agents were build for ghosts and Pacman using minimax, expectimax, alpha-beta pruning, and more.

Ghostbusters

Python

Implementation of a Hidden Markov Model to track ghosts over time and a joint particle filter to track multiple ghosts simultaneously. Variable elimination, exact inference, approximate inference, and more were used to optimize the problem.

PacMan Search

Python

Implementation of several search engines in order to solve a PacMan style maze. The search engines include DFS, BFS, UCS, A* Search, and Greedy Search.

Deques

Java

Implementation of a Linked List Deque and a Array List Deque, which are then used to implement a sound synthesizer capable of playing music from Guitar Hero

NGordnet

Java

A browser based tool for exploring the history of word usage in English texts.

Build Your Own World

Java

A game that allows the user to explore procedurally generated mazes. It offers saving and loading of worlds, as well as music that is too loud.

Scheme Interpreter

Python

A python script for interpreting Scheme, a dialect of Lisp. It supports the core features of Scheme, including recursion, first-class functions, and lexical scoping.