Ben Wiley

Open Source

Below is a selection of open source software projects I have authored. Additionally, all the games I've worked on are open source.

UI Component Libraries


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

Win95 Media Player

A React media player component inspired by the Media Player app that shipped with Windows 95. Also powered by Cassette!

Programming languages: JavaScript

React GIF Player

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++

PICO-8 Tools


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


Volca Sampler

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