Below is a listing of projects I worked on in my personal time. Unless otherwise noted, all work was done solo.

WebGL Experiments (2019)

Various experiments using WebGL which are worked on sporadically.

For more information, see the GitHub repository:

Realms (2018 - Current)

A Roguelike in pre-pre-Alpha. Hopefully one day it will see the light of day.

Ocular Engine (2014 - 2018)

A C++14 rendering engine with features such as:

  • Direct3D and OpenGL renderers
  • Resource Subsystem
  • Event Subsystem
  • Keyboard/Mouse Input
  • Scene Editor built with Qt and custom reflection

After over 500 commits I have decided to retire Ocular. It was a blast to work on and I learned a ton. If I were to do it again, I would do it very differently but that is the nature of these projects. Try something new out and see how it works.

I think it definitely deserves at least a retrospective in the future. Until then, feel free to browse my largest personal codebase.


noisegen (2017)

A web-based coherent noise generation tool, implemented using JavaScript and HTML5.

  • Coherent noise algorithms (Perlin, Simplex, Wavelet, Worley, Diamond-Square, etc.)
  • Pure noise algorithms (XorShift32, XorShift128, WELL512, CMWC131104, MT128, MT19937, etc.)
  • Grayscale and color palette manipulation
  • Multi-threaded using workers for maximum* performance.


* Nowadays I would offload most/all of the noise implementations to shaders for true maximum performance.

OBJParser (2016)

A fast, efficient, and easy-to-use parser for the OBJ and MTL file formats, built with C++14 using the Boost Spirit library. Originally intended for use in the Ocular Engine, it has been released as a completely stand-alone library.


Embers of Caerus (2012 - 2013)

Served as a graphics and engine programmer as part of an international group of volunteers developing a sandbox, open PvP MMO using the Havok Vision engine.

Worked on a host of systems including: shaders, texturing, water rendering, optimizations, etc.

Unfortunately, in the end the project did not pan out but it was great fun to be a part of it.

Website: (courtesy of the Internet Archive)