I enjoy programming. I have made a lot of games, and computers that play games.
I have also explored lots of topics in computer science, such as parallel processing, and machine learning. Here are some brief descriptions of some projects I have worked on, with cool pictures and links to associated code.
In 2019 I was accepted into MIT PRIMES, a program that gives mentored research opportunities to talented high school students. Under the mentorship of William Kuszmaul I designed and implemented a cache optimal algorithm for the fundamental parallel partition problem. Through this project I gained experience with parallel computing and understanding of the role of memory hierarchy in efficient computing. Visualization of the algorithm
Parallel-Partition on GitHubIn my second year participating in MIT PRIMES I did more theoretical computer science research on the cup game. The cup game is a classic problem in computer science that models work scheduling. In the cup game on n cups, a filler and an emptier take turns adding and removing water from cups (i.e. new tasks come in and the scheduler must allocate processors to handle the incoming work). On each round the filler will distribute some new amount of water among the cups, and the emptier will remove some amount of water from some of the cups. The filler can distribute the water however it wants (as long as it places at most 1 water in each cup), but the emptier has an added "discretization constraint": it can only remove water from some fixed number of cups. The problem is to analyze how well each player can do, that is, how much water can the filler force to be in the fullest cup, and what is the upper bound on this fill that an appropriate emptying strategy can guarantee? We study several variants of the problem and answer some open questions.
Cup Games GitHubSome programs that play games, like chopsticks, and tick tack toe, and maze solving. Featuring: reinforcement learning, simulated anealing, genetic algorithms, and more!
AIThis is probably my first use of socketio. It is hosted on Heroku with a nodejs backend. You specify a name, it gives a nice color to you based on your name, and then you can do instant messaging with anyone else on the site!
Chat appI started this blog because I have learned a lot of cool things and want to share them. I love to do this in person, but I think that there is also something valuable about making a more structured presentation of ideas. This website will hopefully:
Purpose: Teach some python, have some fun. Socialize during the quarantine. I organized this club to help teach some of my peers how to code while we had a month off of school because of the coronavirus.
CoronaCodingClub on GitHubtheland is probably the best game ever made. In this multiplayer game you control a herd of animals as they travel around the screen. These animals are subject to needs such as hunger, and old age. Using these animals you may seek out enemies to attack, or other users to attack. Play for glory in defeating other players, and play to reach the top of the leaderboard (if you have a registered acount). Enjoy the stunning landscape which is composed of colorfull (quad)trees and natural resources (e.g. pizza).
thelandThis game is a really huge RPG that I made in C++ (yeah!) with SFML. It's very modular, so you can add your own plots and characters and worlds by just editing a few jsons!
theknightdawns on githubI think that making a 3D game would be really awesome. This is an attempt at using WEBGL (with the three.js wrapper) to make a cool 3d game. There is a block based world that you can move around in, and interact with mobs in.
SlipscapeThis game is the start of an amazing RPG. Me and Kevin thought about this game a lot, and started implementing it in js. We have big plans for the protagonist Bob, and are planning on writing a large plot for the game! The in game weather is one of the coolest features of this game, right next to the seeking mobs.
enchantedForestThis app (with python backend hosted on Heroku) reads data from your webcam (be sure to grant it access!). You can take a picture with it, and it will use k-means to quantize your picture into a few regions of similar color. Then it will make these regions random colors. Note: this is how I generated the picture of myself at the top of this website! (Although I ran a much higher res picture through the algorithm, on the website I don't want to send a lot of data, because I have Heroku free tier, so if you want a similar picture, download the source code from github)
face-colorThese games are mostly hackathon projects. They are in various stages of completion. The projects here include:
Control acceleration and orientation. Do not hit the asteroids except with your bullets.
AsteroidsI love math. It is beautiful. Here are some cool pictures related to math:
I love reading. My favorite books tend to be fantasy, science fiction, and Math / Computer Science books. Here are my top reccomendations: