contact me



OutcropVR is a toolkit for geologists. It uses virtual reality to enhance the experience of analyzing photogrammetry models, and allows the user to create lines and planes in 3D space on rock faces to make measurements.

Stardust Chrome Port

Stardust was a game made for the class Mac OS, and I played it as a kid. This is a Chrome port, since the original is unplayable on most Mac machines now.

Random Chess Generator

Chess 960 is a variant of chess where the non-pawn pieces are placed in random, mirrored locations on the back row. This evens the knowledge gap between players, as nobody can rely on memorized openings. This website is a convenient way to generate random Chess 960 boards.


Bounceball was the first game I ever completed. It's a quick paced, arcade style showdown game. It requires gamepad controllers such as an XBox controller, because a 360 degree analog stick is the most appropriate control scheme for this game. If you have 2-4 controllers and players, check it out (local multiplayer only).


My interest in computers began at the age of five, playing Stardust on my dad's PowerMac 7500. At the age of 14, I started making algorithmic art in JavaScript. Since then, I've dabbled in lots of different languages in every paradigm, and I really enjoy learning languages.
I also like learning about languages. My fourth semester in college I took Intro to Linguistics and decided to minor in it. In order to fulfill the elective requirements, I began taking advanced Spanish classes, culminating in 300 levels. This combination of formal, mathematical language study, natural language study, and the study of languages caused me to reconsider what a language is. A quote from Richard Montague interests me: “I reject the contention that an important theoretical difference exists between formal and natural languages.”
My coursework caused me to be interested in bridging the conceptual gap between formal and natural languages. This involves both improvements on programming languages and IDEs and also thinking about ways to improve natural language communication through technology. Since communication is the end-all goal of language, I am also interested in accessibility and internationalization.