Skip to content Skip to navigation

Random Projects

These are some of the side projects I've worked on over the last few years, arranged approximately in descending chronological order of when I started each project.

Overmind Screeps AI

Screeps is an MMO strategy game for programmers. Like most RTS games, the core objective of Screeps is to expand your territory and defend against other players. However, unlike most RTS games, you cannot actively control your units; you must instead write code to govern their behavior using JavaScript (or a transpiled language - I use TypeScript). The units run in real-time even when you aren’t actively playing the game, and the game progresses on the scale of weeks or months, so the more you can automate, the better. Since I started playing the game in January 2017, I’ve created a Screeps AI, which I dubbed Overmind, that I've contributed some ~150,000 additions to. I've also recently started a series of blog posts to share some of the cool things I make in it!

Fun with Mathematica

Sometimes when I get bored, I calculate random things in Mathematica and put them on a blog, like finding the vibrational eigenmodes of a cow, or describing a particle in a fidget-spinner-shaped potential well. I've also written a practical guide to Mathematica, specifically for use in problem sets, as part of an "upperclassman workshop" that I gave in my senior year of college. The guide became quite popular and well-distributed within both my house and the more general Caltech undergraduate population.


Sometimes I amuse myself in my spare time by answering science- (especially physics-) related questions on the Ask Science subreddit. Good questions pop up a few times a week, and to date, I've answered over 150 of them. You also learn a few things in the process of explaining something to other people.

Grid Computing

During my sophomore year of college, I spent some free time writing an (unfinished) easy-to-use grid computing framework and bought a batch of old computers on wholesale to construct a small computer cluster to test my framework on. A pair of freshmen at Caltech are continuing development on my framework using the cluster I built.


A popular plugin I wrote in 2015 that can render an arbitrary time-animated scatterplot using matplotlib and ImageMagick. I developed the framework to simplify the animation process of some complex time-of-arrival plots I was making to study electromagnetic shower dynamics while I was doing research with CERN.


There's a popular freshmen-only course at Caltech called "Physics 11", which is a sort of think tank to get new undergraduates involved in research. The class comes with a guaranteed research fellowship the following summer, but it is unique in that admission to the course is decided by the quality of your solutions to a pair of mathematical modeling problems, nicknamed "hurdles", which are different every year. Freshmen applying for the course are given about a month to solve each problem, which can be anything from simulating the granular dynamics of agitated glass spheres in sand to calculating the optimal US tax rate to maximize tax revenues.

Building a toy fusion reactor

During middle and high school, I built a variation on the design for a Farnsworth Fusor, which is an inertial electrostatic confinement device that can act as a weak neutron source by fusing small quantities of deuterium ions. I used my reactor to perform a series of rudimentary experiments for Intel ISEF which demonstrated a method of neutron collimation by using an additional ion gun to impart a velocity differential in the deuterium ions, skewing the momentum distribution of the neutrons produced in the fusion reactions. If you're curious, I have a (very old) Flickr album of photos of the reactor at various points in construction.