Daniel D. Johnson

Other Projects

Here's a collection of some of my side projects and miscellaneous other things that I've made.

Discrete and Computational Geometry projects

A bunch of mathematical group projects made for the “Discrete and Computational Geometry” class at Harvey Mudd. One of these projects was later turned into a multimedia exhibition paper at SoCG 2018.

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. A paper on the design process was published at EWME 2016.


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

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.


An iOS game I created in 2013, where you swap adjacent letters to form words and score points. You can use multiple swaps to set up longer words, but every letter can only be moved 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.

HIMCM 2013 Paper

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.

Artistic projects

I've also dabbled in some generative artwork and visualizations.


Polygons are randomly subdivided by growing lines.

Shift Clock

A clock that is formed by a coordinated swarm of squares.


GPU-accelerated light-tracing with lenses and other refractive surfaces.

Infinite Triangles

A fractal implemented on the GPU.

QR Clock

Because scanning a QR code is the easiest way to check the time.

Poems to Music

Transforms phonemes in text into music.


An exploration of the visual properties of text wrapping.

Stacked Clock

A clock formed by stacking multiple timescales tip-to-tip, then interpolating smoothly between them.

Motion Cells

Drawing lines by following a changing vector field.