Personal Projects

This is a portfolio of some noteworthy projects I’ve been involved with. Source and demo links are, if applicable, listed with each project.

The Beat Machine

pythonjavascriptvuewebaudiofull-stackopen-source
December 2018 - Present

The Beat Machine is a webapp, API, and library for remixing songs by procedurally modifying their beats. I’ve chosen to feature it at the top of this portfolio because bringing it to fruition involved a very diverse skill set.

The Python library (beatmachine on PyPI) finds beats using a recurrent neural network trained and provided with the audio analysis library madmom. This has numerous advantages over periodic beat calculation, with the primary one being a tolerance for tempo drift.

The API, also written in Python, exposes this processing functionality over HTTP on a Google Cloud Run container.

Finally, the web frontend that is in Javascript with Vue. The webapp itself is a static site that uses Axios to make its requests. The site was designed to emulate retro text-mode user interfaces without facing the usability issues that came with them.

A screenshot of The Beat Machine's web interface.

Personal Website & Code Portfolio

javascriptwebfrontendopen-source
August 2019 - Present

Have you seen this one somewhere before?

My website is a constant work-in-progress which can make it difficult to describe. However, a few things remain constant: the site is deployed on Netlify, generated with Hugo, and styled with Skeleton.css as a base. Here’s a fun fact: all of these project info cards are separate Markdown files with their tags and links as frontmatter!

It looks like this element can't be displayed. That's fine. But if you want to see the effect, try using a recent browser that supports <canvas> and has scripts enabled.

Stockpile

kotlinjavagradlejvmgraphicsgame-devopen-source
August 2018 - Present

Stockpile is an unofficial modification (“mod”) for Minecraft: Java Edition whose flagship feature is barrels, a prevalent mass storage concept in the modding world. It uses the Fabric modding toolchain to build and run against Minecraft. At the time of writing, Stockpile has over 34,000 downloads on Twitch.

As many Fabric mods do, Stockpile uses Mixin, an ASM-based library for manipulating JVM bytecode at the source level. For some rendering code, it also uses OpenGL exposed via LWJGL. However, most of this is abstracted by existing Minecraft code.

An screenshot of Stockpile in action with its logo at the bottom.