Intertect is a platform aimed at teaching students who are familiar with high-level languages (Javascript here) the fundamentals of computer architecture. We walk through the foundations of architecture and guide you through creating a whole pipelined MIPS processor emulator in the browser!


FairTear is a tool to tear apart algorithm-dataset pairs to determine whether they are fair or not. As ML becomes more and more widespread, understanding the underlying models becomes ever more necessary, and FairTears seeks to do this by exposing when biases are present in a model (i.e. using income level or race in making a decision).

Video demo of FairTear


DeepGIF is an extension of the classic Neural Style Transfer algorithm, where we make it possible for you to do style transfer (temporally consistently) across a GIF. You’re also able to mask parts of the image and apply different styles to them accordingly (i.e. the background and foreground are different styles here).

Chess Wizard

Chess Wizard is 3D chess game written from scratch using three.js. Note: Chess Wizard has not been optimized and runs on a free tier Heroku server, meaning that, unless you have a powerful laptop, it is likely to lag. It works fine on a 2017 MacBook Pro, but is quite choppy on a Dell XPS 15.


Manhattan is a visualization of the movement of major scientists and researchers from/related to Princeton University of the Manhattan Project. Hovering and clicking any of these dots also provides a snippet of audio corresponding to that particular move.

Deanonymizing BTC Wallets

Here is my Princeton University senior year thesis, which discusses the use of spectral clustering and other general graph clustering algorithms on a heuristic graph developed atop the base BTC transactions graph towards deanonymizing wallets, i.e. associating wallet hashes with entity names.


NeuroPath is an implementation of a neural branch predictor (i.e. a simple MLP) on an x86 emulator system. The graphs shown here are the results of correctly predicted conditional and indirect branches by various branch predictors, including two neural predictors I implemented.