I’ve done a lot of smaller stuff that doesn’t really deserve its own page. You can find more projects on my GitHub and BitBucket pages.


BLS Renderer

The game Blockland lets you build with internet legos.  I built a thing with JavaScript and WebGL to let you view Blockland save files online.  This entailed reverse-engineering the Blockland save file format (most of which had been previously documented by the Blockland community) and the Blockland brick format.  I also learned JavaScript and WebGL.  The whole thing took about two days.


(you’ll need a browser with WebGL enabled; the latest version of Google Chrome and a decent computer should do it)

  Persona 3 FES BGM Tool

I made a tool for adding music to Persona 3 FES.  It includes a pretty detailed readme.txt explaining how to use it. Part 1, part 2, and part 3 of my writeup on what I did.


There’s also a less-well-tested version for Persona 4 I made by request.  I’m pretty sure this crashes randomly due to the address the music selection routine stores its RNG seed at.


WaniKani Radical Search

I study Japanese as a hobby and commonly come across Japanese characters (kanji) I don’t know in the wild. Since I can’t type a character I don’t know to look it up, the next best thing I can do is break it into parts (radicals) that I do recognize and search for those. I use a website called WaniKani to study kanji which teaches its own radicals with names that are designed to easily fit into mnemonics. Unfortunately, other learning materials do not use the same names, so I can’t just type the radical names into an online dictionary. So, I wrote a simple webpage that allows me to search Wanikani’s data for all kanji that contain a combination of radicals. It’s even got autocomplete! Fancy.

You can access it here. The source code is also available on GitHub.

Another Finite Element Method Library

A parallel finite element method library I built as a class project using PETSc and MPI. It supports 1D/2D/3D problems with box element meshes. It supports domain decomposition and loading meshes from the Gmsh “MSH” format. The documentation is currently nonexistant – I’ll do a writeup someday. It’s available on BitBucket..

More eventually!