Programming Art Animation Blog Everything


Controlling procedural modelling interactively with guiding curves

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

October 28, 2018

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.


September 21, 2018

Interactive art through growing vine people.

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.

Shawarma Tycoon

July 14, 2018

Grow your upstart Shawarma restauraunt into a local business juggernaut!

This project is functional but highly sarcastic.



November 26, 2017

A distributed job management system with dynamic dispatch

Safe shader construction

November 13, 2017

A prototype library for contructing and using WebGL shaders safely at runtime

Good Portraits

November 12, 2017

Artisan abstract portraits generated with hand-crafted code

This project is functional but highly sarcastic.


October 16, 2017

Experimenting with GL shaders


April 12, 2017

Creates a "Nude Descending Staircase"-like image given a video file


April 6, 2017

Arrange some objects so that it forms different images from different angles


March 25, 2017

Import a midi file, play All Star to the tune of it

This project is functional but highly sarcastic.


The Cal in the Hacks

November 13, 2016

Repurposing public domain books into poetry

This project is functional but highly sarcastic.

Path Tracer

October 24, 2016

A multithreaded Monte Carlo 3D renderer

Frontier 3D: Archipelagos

August 21, 2016

Procedurally generated 3D islands

English Parser

August 15, 2016

A program to analyze the components of simple Enlish sentences

MSCI Filter

July 23, 2016

If your assignment questions are too comprehensible, run them through this filter.

This project is functional but highly sarcastic.



November 14, 2015

A language for writing scripts on your phone


October 4, 2015

A programming language that doesn't really care about you

This project is functional but highly sarcastic.

September 9, 2015

Procedural music, taught with data from real artists.

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.

Rate with Science

March 28, 2015

A web app for finding a rating scale between two arbitrary things.


March 8, 2015

A stick figure animator for keyframed animation

Sari Wallpaper

February 21, 2015

A joke I'm playing on my sister where I remotely change her wallpaper to pictures of me.

This project is functional but highly sarcastic.

Random Bad Jokes for Android

February 1, 2015

Quality humor, mobile.


January 9, 2015

Calculate truth tables from a boolean algebraic expressions



November 26, 2014

A Perl content management system.

Twitch Plays Scribbler

November 17, 2014

Everyone spams commands into a chat window and a robot executes them as fast as it can while sending results back to users via a video stream.

November 8, 2014

We find time so you don't have to. Create an event and we'll find a time that works best for everyone attending.


August 27, 2014

A productivity suite that makes it easy to cram or study efficiently and without distractions.


August 27, 2014

We simplify the overwhelming choice of coding resources.

Words, Please

April 19, 2014

Find all the words that can be made with a set of letters.


January 4, 2014

An Actionscript 3 planetary physics simulator


Cheryl Pagurek

October 26, 2013

Cheryl Pagurek is a photo-based and video artist living in Ottawa, Ontario.

HTML5 Newgrounds Player

October 6, 2013

The Newgrounds Audio Player currently relies on Flash, so I built an alternative in HTML, CSS and Javascript.

MathSolver and XCalc.js

October 6, 2013

A graphing calculator build on my XCalc.js Javascript library.

Random Bad Jokes

September 1, 2013

Those who know me personally know that I love bad jokes to a fault. This site is a product of that.


February 24, 2013

A storyboarding and progress tracking webapp for animators who use Chrome.



October 14, 2012

Made for the Newgrounds Game Jam 8! The theme was "Cabin in the Woods" and then we had 48 hours to make a game. This is what we came up with.

Shape of the World

June 24, 2012

My computer science final: a C++ game about a circle in a land of squares.


Just a Head

December 25, 2011

Webcam-controlled! Move around to adjust the parallax perspective of the objects on the screen to try to get them to connect.

Corporate Rampage

December 25, 2011

Wreck as much as you can in the office without getting caught!

Adrian Gollner

December 18, 2011

Website of Adrian Gollner, a professional artist.

Gawk Clash Beta

April 23, 2011

Fight for your life in this fast-paced multiplayer Gawkgame!

Mindflow for Playbook

April 19, 2011

Mindflow for the Blackberry Playbook is an easy-to-use application that allows you to create visual representations of your thoughts.


March 5, 2011

A flowchart, mindmapping and outlining application.


Snowball Fight 2

December 25, 2010

Hit the enemies with snowballs and try to survive!

Joe on the Seven Seas

December 14, 2010

Joe is on a boat... again.

Laura Young

June 30, 2010

Website of Laura Young, a classical guitarist.