This page contains a brief overview of research and implementation projects I have been working on. Some of these are directly related to my academic path, while others are personal projects I have been working on in my spare time.

Melodique

Melodique is one of my first ventures into musical programming. It uses simple music theory concepts to generate short melodic phrases. The melodic phrases are rendered visually using the HTML5 canvas, and audio output is produced by a built-in virtual analog sound synthesis engine.

Melodique: Algorithmic Melodic Phrase Generator


MusicToy

MusicToy is a minimalist grid sequencer. The idea was to make a tool that would encourage musical experimentation with no prior musical knowledge required. The interface is extremely simple and users can tweak musical patterns as they are looping.

MusicToy: Music Made Simple


Gradient

Gradient is a 2D grid world in which virtual "lifeforms" live. It is a simulation of natural selection in a computer program. The agents require consuming food to survive and evolve foraging behavior over time.

Gradient: an Artificial Life Experiment


Alpha C

Alpha C is a minimalist C compiler implemented in OCaml using LLVM. This project was initiated as part of the IFT6232 graduate compilers course at the University of Montreal.

Alpha C Project Homepage


Radiant

The Radiant Renderer is a 3D global illumination renderer I created for my COMP-400 Honors Computer Science course project. The goal was to learn more about global illumination and experiment with possible performance optimizations.

Radiant Project Homepage


xGameProject

xGameProject is a game development project I worked on intermittently from 2001 to 2005. The project was primarily centered on the development of a 3D game engine. It is through this project that I learned computer programming.

xGameProject Homepage


JS Shell

A simple, minimalist web-based shell to try out and experiment with JavaScript code. The code you type will be executed by your web browser's JavaScript engine.

JS Shell


Catalyst

The Catalyst Code Optimizer project aims to explore ways of enhancing the performance of compiled binary code by modifying its memory arrangement in order to improve instruction cache performance on the target platform.

Catalyst Code Optimizer Project Homepage


SABS

SABS, which stands for Sable Adaptive Benchmarking System, is a flexible benchmarking framework aimed at facilitating the creation of standard benchmarks and automating the benchmarking process.

SABS Project Homepage


XLSE

The XLSE project (eXtensible Lisp Scripting Engine) was created as a part of my COMP-400 course project (The Radiant Renderer). It is an Open Source LISP interpreter programmed in C++ which can easily be extended with new features.

XLSE Project Homepage


ZeptoXML

ZeptoXML is a minimalist XML parser following the DOM model which I created for my COMP-400 project (The Radiant Renderer). It features only two code files, no dependencies, and fully standard-compliant C++ code.

ZeptoXML Project Homepage