Skip to main content


Computer Vision for Memorability

Info Reimplemementing and testing Khosla et al.’s MemNet[1], and beyond. Goals The original MemNet has proved difficult to use and access in recent years. We would like to implement it so that we can use their work for our own research. The short term goal is to simply get it working. In the long term we’d like to improve upon the architecture using pre-training, and possibly some other progress in neural network architecture that has been made since 2015.

Accelerated Gammatones

Last winter, I worked on a personal project I call ongaku (from the Japanese for ‘music’). This was an attempt to use manifold learning to create a metric space for music. The preprocessing relied heavily on a method called Gammatone Cepstrum Analysis. This method was intended to replace Mel Frequency Cepstral Coefficients. Where Mel Frequency is a logarithmic transformation of sound frequency, in an attempt to simulate human perception of sound.

Computational Rupahistory

This is an ongoing project to create 4X-style simulations of civilizations in a simulated world. This is intended to be a long-term project, that I will add to over the course of a long period, when I have some free time. Some Background: Rupahistory is a portmantau from the Maori word “rūpahu” meaning “fake” or “liar” and the Greek “historia” meaning history. Warning: The following discussion is boring. I suggest skipping straight to “The Map”.

Bandcamp Album Cover Analysis

This is a project to look into the question: How do indie musicians use visual signs to indicate their subgenre? The main functions are in, and do basic web scraping. Analysis will be done in the jupyter notebooks Proposal.ipynb, Prelims.ipynb, and Analysis.ipynb. These will also be uploaded as blog posts to my website. The github repository can be found here. The Exploratory analysis (corresponding to Proposal.ipynb) can also be found at this blog post.


Overview Ongaku is a method for creating playlists programmatically, using only the content of the song alone. It uses gammatone cepstral analysis to create unique matrices to represent each song. A gammatone cepstrum is similar to the more common spectra used for audio analysis. Instead of doing a Fourier transform, we do a reverse Fourier transform, and then apply a transformation according to the gammatone function. This function was designed to mimic the signals sent to the brain through the cochlear nerve, the nerve which connects the ear to the brain.

Fluxx for Robots

Introduction: Fluxx is a mildly popular card game. All things considered, it’s actually fairly contentious. It has a score of 5.7 on Board Game Geek, but it has a serious cult following. This is a python implementation of version 5.0 of the Vanilla Fluxx card game. The full rules are available here. The core idea is that the players can play cards which change the rules of the game. Each turn, each player draws a certain number of cards and plays a certain number of cards.