Old Projects

Here are some older projects of mine, including an 8-bit sound synth, a lisp raytracer, and a procedural graphics engine.

Here’s some summaries of a few of my older projects…


JRtAudio is a java library for really low-level audio programming. It provides a bridge between a Java program and RtAudio, and was built to compare performance between it and the standard javasound library. The verdict? Javasound won.

The project is hosted on google code.

Ligeti’s visual metronomes

One hundred asynchronous metronomes: applet. (A simple audio-visual experiment inspired by Ligeti’s 100 Metronome Symphony.)

Fluid Simulation

This applet implements a fluid simulation. It is a port of Jos Stam’s realtime fluid solver c code over to processing.

Superformula Challenge

A program for breeding funny little shapes governed by the superformula. The program presents a petri-dish like environment in which organisms float around. Left-click to add or mutate an existing organism, or middle-click to enter a shape-editing mode where you can modify the parameters of the superformula directly.

The source includes a windows executable under the release/ directory. You will need to install Qt4 to run it or compile it.

Lisp Raytracer

Raytracing aims to produce “realistic” images by simulating the effects of rays of light. I implemented a raytracer in the LISP programming language. The code requires a lisp interpreter to run.

Procedural Graphics Engine

Procedural worlds are built entirely by algorithms. Procedural methods exist for generating realistic terrain, clouds, flora, and texture. The screen shots below show a realtime demo I built that uses no artist-supplied geometry or texture. The simulation lets you walk around and explore the world. (2006)

Simple Physics Engine

Penguin is a point-particle physics engine I built in a while back with a friend, Duck Nguyen. It simulates the effects of many idealised point particles and allows the user to add forces (like springs, or gravity) to them. It supports collision detection. The c++ source is available and is documented using Doxygen. (2005)