pths: A Bidirectional Monte Carlo Pathtracer2015 - Present
This path tracer implements almost everything from the original Veach paper. This also includes textures, environment mapping, importance sampling, Cook Torrance bsdf. I am currently working on implementing Kelemen style metropolis light transport and light transmission. I am investigating subsurface scattering. This project is written in Haskell, so it is slightly slow though I am working on optimizing it. It can render one sample of a 100k triangle scene in approximately 10-30s in my very old machine (Q6600), using 3 cores. I plan on re-writing this for the GPU when I have a chance. Soon I'll have some more graphics up here as well as a list of papers with my summaries of how to implement them and the challenges they posed along the way. The code has now been released, see the link above. There's a reimplementation for the GPU as well.
Myron Tile & Stone's Website2015 - 2016
Myron Tile and Stone is a distribution company that specializes in high quality building materials. I designed and coded a website which is dyanmic in the sense that a heirarchical product listing can be created with featured sections. A news component and other CRUD aspects were also coded. This website is still in light development. It was written in python with Flask and sqlalchemy. I learned both of these technologies and wrote the site in much less than a month as compared to my earlier website: I had no framework and that was much more tedious.
Realtime Graphics Engine2009
This OpenGL 3 engine supported all platforms. It supported a range of features, including unlimited dynamic lights with VSM shadow mapping, including sun lights with cascading shadow maps. This is due to the deferred nature of the engine. The engine supported tonemapping, HDR lighting, real-time screen space motion blur and screen space ambient occlusion amongst other things. This was originally for a car sim project which was scrapped as I went to University. Another component of the game was a proecedural tree generator based on a paper by Weber. It had rudimentary particle support.
Since I kept getting beat at chess by my peers, I decided to write this as a last hope in order to beat them. Unfortunately it never supported castling, though it included a full GUI with move history. It used alpha-beta pruning with a fairly in depth static analysis of the board. The next step would be to modify these weights with a genetic algorithm playing against humans or other AIs.
I wrote, operated, and maintained a website dedicated to the game RuneScape. I also wrote a program which enhanced the gaming experience by providing you with hints and tips as well as useful tools for new players to experienced players. This program was downloaded over 100k times and drove enough traffic to my website to buy a series of better games to play.