This page contains demos. Except they might not all work...

I did try to get everything working, but the (now defunct) Processing.js library has its limitations. For instance, you can't import Java libraries while using it. I am not an expert on javascript, but I did manage to debug and fix one of Processing.js's issues (not handling mobile device clicks/taps correctly) to help both myself and the rest of Prof. Chris Harrison's DHCS class for our final projects in 2021. You can download the fixed code if you like.

Update (2022): I've started using p5.js and Javascript proper, and aside from having to actually learn Javascript, it seems fun!


Built with Javascript frontend + custom NLP (implemented in python) backend.

NewsSense is an interface to help people make sense of the news by viewing multiple perspectives surrounding a single news event. Rather than rely on a knowledge source compiled by a third-party arbiter of "truth," NewsSense helps readers understand the consensus & contradiction between different reporting venues. This enables NewsSense to provide real-time analysis as stories evolve.

Nighttime Garden

Built with P5.js

Ever since middle school I've liked the pythagorean tree fractal. I was procrastinating, so I made this little garden to plant trees, grass, and moons in. You can blow wind through the grass with your cursor.

Miniature Keyboard

Built with Processing & Processing.js. View the code.

I built a tiny little predictive keyboard for small screens. This was for Prof. Chris Harrison's DHCS class at CMU.

Vector Cloud Visualizations

Built with Processing. View the code.

It's what it sounds like: A relatively basic way to visualize & explore a 2d embedding space.

Affectionate Letterboxed Clone

Built with Processing, using Python to generate new games. View the code.

In college, my friends and I got hooked on Letterboxed from the NY Times. But they only release one game a day, so I built this little app so we could keep playing forever. Todo: Make it playable in P5.js.

Random Walk Pixel Generator

Built with Processing. View the code.

A random walk with 5 degrees of freedom. Sometimes I let it run in the background, and then pause to print the pixels I like.

Matrix Text

Built with Processing. View the code.

Every CS major has this experience: your friends jokingly ask if you're a hacker. I made this for the bit.