Below is a selection of open source software projects I have authored. Additionally, all the games I've worked on are open source.
A flexible media player component library for React that requires no up-front configuration. Cassette powers the media playback on this site!
Programming languages: JavaScript, CSS
A React media player component inspired by the Media Player app that shipped with Windows 95. Also powered by Cassette!
Programming languages: JavaScript
A component for React that allows a user to toggle a GIF animation on and off.
Programming languages: JavaScript, CSS
A small polyfill implementation of React 16's Fragment component which is compatible with React 15.
Programming languages: JavaScript
A tool for extracting frames as still images from an animated GIF, in either Node.js or a web browser.
Programming languages: JavaScript
A ray-tracing 3D renderer implemented from scratch. Loads scene descriptions as text and shows render progress in real-time.
Programming languages: C++
A post-processor for making the web export for PICO-8 games display better on devices with small screens.
Programming languages: Python, JavaScript, CSS
An API for subscribing to changes in a PICO-8 game's GPIO state from JavaScript. This enables easy implementation of effects, such as device vibration, in response to in-game events.
Programming languages: JavaScript
A command-line utility that converts the PICO-8 variety of extended Lua syntax to standard Lua syntax.
Programming languages: Lua
Utility functions for passing numerical data between a web-exported PICO-8 game and its surrounding browser context, by encoding the data as binary in PICO-8's GPIO interface.
Programming languages: JavaScript, Lua
A function that can bind an arbitrary browser UI element as a touch-friendly PICO-8 game control.
Programming languages: JavaScript
Web app (desktop + mobile) for capturing musical samples and transferring them to the Volca Sample sample-based synthesizer
Programming languages: Javascript, C, TypeScript (JSDoc), SCSS
Tracks a pool of Steam user accounts and compiles data about games held in common between them. Built on top of the Steam Web API.
Programming languages: JavaScript, HTML, CSS
Asks the user for a few parameters, then outputs an improvised piece of blues music. This is the first application I built (I was 15 years old).
Programming languages: Java