Daniel Johnson's personal fragment of the web

Discrete and Computational Geometry Projects

At Harvey Mudd, I’m taking a cool class called “Discrete and Computational Geometry”, a special topics course taught by Professor Satyan Devadoss. It’s a very interesting class. In lieu of normal problem sets, we instead do a bunch of group projects, each one very freeform. The basic instructions are “go make something related to this class”. Here are a couple of the projects my group made:


TIME || ƎMIT: A game for js13k

Story time: So a few years ago, after playing Portal and loving it, and after making my iOS word game Wordchemy, I was kind of in a game-design zone. I brainstormed a ton of ideas: from memory games, to arcade-style games, to physics-based puzzle games, and many more. One idea, however, stuck with me. The basic idea was this: what if you could go backwards in time? Not as in traditional time travel, where you appear in the past, but actually backwards? Everything else would seem to be moving in reverse: things would fall up, people would be walking backwards, and you might even see your (relative) past self undoing your actions!

I ended up never making most of those games, but that time-travel idea stuck. I started designing levels for it, and actually started to build it once, but I never got it to a playable state. But every once and a while, I’d start thinking about it again. I decided that one of these days I was going to make it.


Composing Music With Recurrent Neural Networks

(Update: A paper based on this work has been accepted at EvoMusArt 2017! See here for more details.)

It’s hard not to be blown away by the surprising power of neural networks these days. With enough training, so called “deep neural networks”, with many nodes and hidden layers, can do impressively well on modeling and predicting all kinds of data. (If you don’t know what I’m talking about, I recommend reading about recurrent character-level language models, Google Deep Dream, and neural Turing machines. Very cool stuff!) Now seems like as good a time as ever to experiment with what a neural network can do.

For a while now, I’ve been floating around vague ideas about writing a program to compose music. My original idea was based on a fractal decomposition of time and some sort of repetition mechanism, but after reading more about neural networks, I decided that they would be a better fit. So a few weeks ago, I got to work designing my network. And after training for a while, I am happy to report remarkable success!

Here’s a taste of things to come:


Squared 3.0 for Pebble Time

For a few years, I’ve had a Pebble, and I recently upgraded to a Pebble Time. So far I really like it: its more comfortable, it looks cooler, and it has a color display! However, my favorite watchface for Pebble (Squared by lastfuture) was only black-and-white, and it seemed like a waste to use a non-color watchface on my color Pebble. So, naturally, since the watchface was open-source and Pebble has great development tools, I was able to make a color version!

I present, Squared 3.0: Screenshot

The code is available on GitHub, and you can download it from the Pebble App Store if you have a Pebble Time yourself. Enjoy!


Creations of the musical variety

Now that I’m done with my first year of college (wow!), I’ve actually had significant amounts of free time. I’ve been using some of that time to compose electronic music in Ableton Live, and I’ve managed to accumulate enough songs that I figured I should put them online somewhere. So, without further ado, my new SoundCloud account! (ta-daaa!)

So that’s pretty cool. Hope you enjoy!

(For those of you paying attention, the artwork that goes with each of the songs is actually an exported image from my MotionCells experiment. The two seem to go together quite well!)


© . All rights reserved. | Top