Projects
Here are some things I've made available on GitHub, including several packages published to npm.
games
- Dr. Mario is a SNES game I know inside and out, so I built it with Elm.
 - react-tetris embeds a game of Tetris in your React app.
 - Slime Volleyball is a game I used to play, now written in Elm.
 - Minesweeper is another classic, in Elm.
 - Dots is like the iOS game but in JavaScript, rendered on a 
<canvas> - Life is an implementation of Conway's Game of Life, built with React.
 
music
I have a Novation Launchpad with which I've built launchpad-marquee to display a scrolling marquee, as well as launchpad-s-reader to read input from the device.
- Pablo helps you make your own Kanye West album cover.
 - Jupiter is an album cover that I made dance.
 - Viz is a tiny library for building audio visualizations with HTML5 canvas.
 - Scales plays musical scales with the Web Audio API.
 - first-listen-dl used to download mp3s from NPR First Listen. It no longer works, but I like the gif in the readme.
 
languages
I'm reading Crafting Interpreters as it's written while implementing it in JavaScript Rust. The author also created a small language called Wren for which I've written some modules.
- elm-dot-lang is a Dot Language parser for use in Elm. It's used in Kite to import and export graphs.
 - boof makes it easier to write Brainfuck by giving you inline feedback about your code's behavior.
 - bf.go is a Brainfuck interpreter written in Go.
 - wren-json is a JSON parser.
 - wren-pure is a utility library.
 - lisp.js is a lisp interpreter written in JavaScript.
 - weave.js is a small, fast CommonJS bundler inspired by Browserify.
 
chat
- Lax is an IRC client built with React, Redux, and Electron. I'm 
brandlyon freenode. - Grill was a peer-to-peer video chat app built with WebRTC. It used to hit a signalling server over http, but browsers increased their security and broke it.
 
art
- butter.pics is an app that sorts pixels with the underlying butter.js.
 - snapchat.js can be dropped on your page to scribble all over it.
 - Moiré is a playground with some cool patterns.
 - LCD is a simple example of the lovely isomer.js.
 
angular
I used to play with AngularJS a lot, but I haven't in a long time.
- angular-youtube-embed embeds a YouTube player in your app.
 - angular-adaptive-backgrounds frames an image with its dominant color.
 - angular-drag-to-reorder drags items in an 
ng-repeatto reorder them. - The list keeps a list of your favorite tracks from SoundCloud.