This page includes a sampling of my open source projects, primarily those that I’ve written about on this page. I hope they may serve to educate, or to demonstrate interesting concepts.
I’ve included a bit of history for each.
An Asteroids clone written in C. This began as a less-is-more Asteroids clone that I wrote over the course of several weekends, while procrastinating over my studies.
A web app for learning about graph-based search algorithms.
This app uses the 8-puzzle (a particular variation of the Sliding Puzzle) to visualise the behaviour of common graph-based search algorithms.
This was originally written while I was working as a tutor for RMIT’s Intro to Artificial Intelligence course. It replaced an aging Java Applet that frequently crashed on newer systems, and resulted in improved student outcomes for the relevant assignments.
A header-only JSON Schema Validation library for C++.
Valijson provides a straight-forward (though admittedly verbose) validation API that allows you to load JSON Schemas, and validate documents loaded by one of several supported parser libraries.
Validating JSON in C++ is a problem that I was first exposed to while working for one of my past employers. Although there were other JSON Schema validators out there, each was written to support a particular JSON parser. I thought it would be an interesting to experiment to build a validator that could work with any parser, using template meta-programming to abstract away the differences between parsers.
This has proven to be a successful experiment. Since first publishing the code in 2014 (with support for three parsers), at least another five have been added by contributors!