This page collects code written for Makematics. The projects represent implementations of algorithms or techniques that are useful across multiple media. They attempt to put the power of some of the topics covered on this site in the hands of artists, designers, and other users of creative coding toolkits. To contribute, please visit the Github repository for each project.


A marching squares implementation for Processing. Isolines finds areas of equal color within an image, similar to the “magic wand” tool in Photoshop. This Processing library is based on work by Murphy Stein.

Status: Isolines is functional and tested on Mac OS X.


FingerTracker is a Processing library that does real-time finger-tracking from depth images. It uses fast marching squares to find the contour of the hand and then estimates finger endpoints by looking at the shape of the curvature of the contour. This Processing library is based on work by Murphy Stein

Status: FingerTracker is functional and tested on Mac OS X.


LinearClassifier is a Processing library for linear classification and prediction of numerical data. It can be used with data of two or higher dimension. It includes tools for displaying the results in 2D. LinearClassifier is based on examples from Programming Collective by Toby Segaran.

Status: LinearClassifier is functional and tested on Mac OS X.


A Support Vector Machines implementation for Processing. SVM is a machine learning technique that uses labeled training data to recognize patterns and classify new incoming data. This Processing library wraps the LibSVM open source library.

Status: PSVM is functional for simple cases. Still in heavy development. Tested on Mac OS X.


A library implementing the Dynamic Programming optimization for Processing along with a number of applications of it. Dynamic Programming is a technique for optimizing certain kinds of recursive operations by “memoization”, progressively storing the results of operations in a grid of cells so that recursion becomes unnecssary.

This library includes implementations of a series of techniques that take advantage of Dynamic Programming: seam carving, sequence aligment, and longest common subsequence.

Status: DynamicProgramming is operational and tested on Mac OS X. The seam carving implementation is the most fleshed out.