Programming Side Projects Art Animation Blog Everything


Controlling procedural modelling interactively with guiding curves

Written in collaboration with Abhishek Madan, Andrew McBurney, Paul Bardea and Tammy Liu.

Proceedings of Graphics Interface, March 28, 2019

A method of interactive procedural model searching, written for my fourth year research project.

We present a likelihood function for Sequential Monte Carlo sampling that lets artists draw guiding curves to control the output of generating grammars. This framework enables the high-level structure of models to be intuitively specified while allowing for sufficient variation in the low-level details. Our method can be computed at interactive rates to enable the short feedback loops required for exploratory design.

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.

Frontier: Programming Generative Art

June 14, 2015

2D procedural landscape generation.

I make use of Perlin noise for terrain generation and describe how to think about breaking complex shapes into recursive fractal-like structures to generate trees and houses.

More Programming

Side Projects

Typography Whale

June 9, 2019

A sketch in which a whale is composed out of extruded text.

Rolling Shutter

June 6, 2019

A script to offset rows of pixels in time to produce an extreme rolling shutter effect.

WebGL Clouds

May 28, 2019

A small experiment in rendering with signed distance fields.

Content-Aware Fill for Sequenced Music

March 24, 2019

Content-aware fill for regions of the piano roll editor.

More Side Projects


Sketchbook Dump, Winter 2019

March 22, 2019

Little works of art from my last term at the University of Waterloo.

Sketchbook Dump, 2018

December 28, 2018

Little works of art from the year 2018.

Mackenzie King Bridge

April 30, 2018

View of Mackenzie King Transit Station and Confederation Park, Ottawa.

View from QNC

December 16, 2017

View from inside QNC in the winter

More Art


Get Back to Work

April 18, 2019

A vignette about daydreaming when you have work to do.


May 4, 2017

A vignette about the changing of seasons.

On Privacy and Encryption

March 8, 2017

A video essay about why we shouldn't build backdoors into our encryption

Air on the Side of Caution

June 2, 2014

A mysterious man tries to get on a plane.

More Animation


A year and a half of music

December 19, 2018

As a Google Play Music subscriber, I get jealous of Spotify's year-in-review stats. I decided to remedy this by scraping my music listening data and doing some analysis myself.

Improving the procedural modelling workflow

November 17, 2018

A discussion of the most tedious parts of something made to make modelling less tedious, and how they can be improved.

Real-time shadows: arriving at the SSAO algorithm

April 14, 2018

A review of the design constraints leading to the widespread use of SSAO

Purpose: A Year in Review

December 21, 2017

A reflection on the growing up I did this year.

More Blog