Daniel Johnson's personal fragment of the web


This is a collection of some of the projects I have worked on in the last few years. I will be adding more as I find the time. You may also be interested in my list of publications.

Gated Graph Transformer Neural Network

A neural network model that is designed to be able to construct and manipulate graphs based on textual input.

Jazz Improvization With Neural Networks

Design and implementation of some recurrent neural network models of jazz melodies, done as part of the Intelligent Music Software team at HMC over the summer of 2016.

LEG Processor

An open-core ARMv5-compatible processor that I worked on with some other Mudd students. I built the integrated test framework that allows verification of the processor internals using QEMU.

Discrete and Computational Geometry projects

A bunch of mathematical group projects made for the “Discrete and Computational Geometry” class at Harvey Mudd.


A time-travel based puzzle game under 13 kilobytes that I made for js13k 2015. Read about it here, or just play it.

Classical Music Composition With a Neural Network

My design and implementation of a neural network that learns the local structure of classical music. Featured on Hacker News and Popular Mechanics! You can read about it here and see some cool visualizations here.

Augmented Shanahan

An in-browser virtual reality application that uses the features of the Shanahan building as markers. It then layers a game of snake on top of the detected wall. You can read about it here, here, and here.

Whiteboard Drawing Robot

A robot that draws on a whiteboard. You can read more about it here, here, and here.


A letter-swapping iOS game I created in 2013. Swap adjacent letters to form words and score points. Set up longer words to create special tiles, but watch out: unless you form a word, you can only swap each letter once!

Interactive Web Tutorial

A web tutorial I wrote for elementary school students that teaches elementary HTML and CSS using an interactive editor. The editor uses Mozilla’s Slowparse to analyze what the user is typing and interactively work with them to create a webpage step-by-step without restricting creative freedom. It allows users to choose what content they create, and does not remove that content as it goes. I encourage you to try it out.

HIMCM 2013 Paper

This isn’t technically a project, but I thought it was worth putting up here. This is the solution paper for the 2013 HiMCM Competition, in which my team got an Outstanding (only 8 teams internationally were awarded this). This solution paper was also reproduced in COMAP’s Consortium newsletter. Feel free to read it here.

© . All rights reserved. | Top