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
brandly
on 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-repeat
to reorder them. - The list keeps a list of your favorite tracks from SoundCloud.