I'm a programmer with an interest in computer graphics. Particularly, I'm interested in how tools affect the things we make, and how software can influence design thought.


August 13, 2021

A library for efficiently drawing to a texture in p5 WebGL mode.

This gives you access to Framebuffers, which are WebGL-only and similar to a p5.Graphics, but faster, and includes depth information.

GLSL Autodiff

August 13, 2021

Tired of doing math to get normals in your vertex shader? Same. Use this library to write your function once and generate derivatives automatically!

Sometimes, I want to displace mesh vertices in a vertex shader. After doing this, the normals of a surface should change. However, per-vertex normals don't automatically update! Manual updating of vertex normals requires you to take the derivative of your displacement function. This library automates that process so that it takes less time and is less prone to user error.

The Engulfed Cathedral: CS488 final project

July 25, 2018

A raytraced 3d renderer and short animation created with it for Waterloo's computer graphics course.

I used this project to implement graphics techniques such as photon mapped lighting, ambient occlusion, volumetric materials, constructive solid geometry, and inverse kinematics, along with sampling methods for inverse procedural modelling.

Major programming projects Side projects

Arts and Design

In my spare time, I draw, make animations, and write music. I make a lot of sarcastic cover songs as well as serious music.

Art Animations Music