12/13/2021 - 04/07/2023
A webscraping program with a custom GUI written in PyGame.
This was my first project as a freelance developer.
One challenge in this project was mapping out all the possible ways the website could
fail, and writing readable code to account for all of them.
10-15-23 - 11-20-22
For Computer Architecture class, I was tasked with designing and implementing a
novel CPU architecture with a custom instruction set.
Of the strategies shown in class, we decided to tackle a multi-cycle
accumulator design. It has 21 native instructions and operates at 65MHz.
10-15-23 - 11-20-22
A Scheme interpreter written in Racket, written fully in Continuation Passing Style.
02/08/2023
I was inspired one day to simulate an oil slick on a rainy day using what I had recently learned in Physics 3. How much a particular color reflects off the oil depends on the thickness at that point, sampled from a grayscale image. Using OpenGL, I simulated and blended together all the different wavelengths of visible light after reflecting off the surface of the oil. The whole thing took me about an hour to do, and it was super fun!
View on Github06/26/22 - 07/11/22
A platformer racing game where you play as a frog who can swing with his tongue.
I wrote this game in two weeks for the Creatus Game Jam in June 2022.
I used a finite state machine to handle player movement, and wrote a server in NodeJS to
host multiplayer.
10/11/21 - 10/18/21
A platforming game written for GamesPlusJam 2021. This was my first time participating in a game jam. I am really happy to have done it. It was a huge learning experience.
Play It View on Github07/28/22 - 08/01/22
An adventure game about surfacing from the bottom of the ocean in a submarine. You use steam to propel yourself forward. If you run out of steam, you have to start all over. This was my second game jam. After the first game jam, I was able to steamline the development process, and spend more time on graphics and level design. Sadly something went wrong when I was deploying it, so part of the screen got cut off.
Play It View on Github11/21/22 - 11/29/22
Around this time, I was really interested in lighting effects in games. I use raycasting to compute what is visible in the scene. To simulate reflection off a "3D" surface, I scale the light's intensity by the dot product between the normal map and light vector. This was a really fun project to make.
View on Github06/12/22 - 06/16/22
I was inspired by YouTube videos where people use genetic algorithms to beat games, so I wrote a feed-forward neural network. Little did I know that they were not the same thing. This was my first experience with A.I., and it helped me to de-mystify a lot of it.
View on Github01/11/22 - 04/29/22
A web app for tracking my finances. My banking app removed the ability to track purchases by type, so I just did it myself. I was astounded by how easy and fun it was to build a functional web app with user authentication and databases. The biggest challenge I had was the CSS.
View on Github10/25/22 - Present
I trained a model of YOLOv7 on a Robomaster dataset for use in competition. It detects red or blue LED armor plates on robots. I've gone through too many models to count at this point, but recently its performance has increased greatly. This playlist contains the most recent models I've trained running on videos of our own robot.
04/17/22 - 05/12/22
A pool simulator written in pygame. I came up with this idea in physics class when we were learning conservation of momentum. Sadly it didn't work. Instead, the solution involves a lot of linear algebra concepts.
View on Github01/12/22 - 01/24/22
A falling-sand style simulator inspired by Noita. In this project, I challenged myself to follow the advice given in the book Clean Code by Uncle Bob, which I recieved for Christmas that year.
View on Github02/18/22 - 02/20/22
A webscraper that checks the Smyths Toys website for a PS5 in stock. This was written as a freelance job for Upwork. When a location has them in stock, an SMS message is sent via Twilio to the user to notify them.
View on Github