A Library of OpenGL-based Mathematical Image Filters

Presentation and Paper

This page here is about a library of mathematical image filters which I presented at the Third International Congress on Mathematical Software. There is a video recording of the talk, and the slides of the presentation are available as well. Due to the fact that I used many live demonstrations of various applications, the slides lack images, so I do suggest you look at the video as well.

There is also a research paper in the conference proceedings, which has a few more details in some aspects.

I hope to make this research paper available here soon as well, but I'll have to double-check the legalese first to ensure I can legally do so.


You can download the sources of the latest version or browse the directory for other versions and artifacts.

Building and running

Currently the easiest way to give the code a try is this:

  1. Download the sources.
  2. Unpack them to a directory of your choice.
  3. Ensure you've got a fairly recent version of Apache Ant installed. 1.7 might work, 1.8 should work.
  4. Run ant in that directory to build the project
  5. Ant will automatically download ivy, if it isn't installed on your system.
  6. Ivy will automatically download all dependencies required by the project.
  7. The build will print warnings about deprecated Quicktime for Java and about your source tree not being a bazaar working tree. These warnings are expected and won't cause the build to fail.
  8. Run ant run to execute the code.
  9. If you are running OS X on an system with a QuickTime-compatible webcam, you can switch from still image to a live camera image. Give it a try.


2010-09-17 – Release 1.0.2
Allow parameters starting in pt in formulas which correspond to control points the user can move around. This is almost exactly the version used in my talk.
2010-09-11 – Release 1.0.1
Filters and input sorces can now be configured via the user interface. Also added editing capabilities for complex formulas.
2010-06-26 – Release 1.0.0
This is an early alpha release of the code, so that people reading preprint versions of my ICMS 2010 research paper can have a look at the described code as well. It is far from feature-complete, but I'm very much interested in bug reports as it is. So if something looks like it should work but does not, don't hesitate to write me.
2010-06-25 – Submitted final version of the paper
The final version of the paper has been submitted, pretty much at the last moment before the deadline.
2010-06-09 – Paper accepted
The preliminary version of the paper has been accepted, under the condition that I make the source code available, as I do on this page here.
2010-05-11 – Paper submitted
The preliminary paper was submitted to the ICMS server.

To Do

There are still a number of things I'd like to do before I present this software at the ICMS 2010 in September. Here is a list of the most important items:

The filter library will be maintained after the ICMS 2010 conference, so some name reflecting this fact should be chosen. So far I haven't decided on an appropriate name yet.
Portable Webcam
The Webcam support under OS X using Quicktime for Java works well enough. I'd like similar support for other operating systems as well. Unfortunately JMF is mostly dead, and in particular not available for 64bit systems. So I'll have to look for alternatives. Currently either FMJ or a combination of dsj for Windows and v4l4j for Linux seem the most likely solution.
User Interface
So far the user interface is very bare-bones. It should become at least a bit nicer, and offer some more features. Version 1.0.1 already has a number of improvements over 1.0.0 in this area, but this is still not perfect.
Web infrastructure
I'd like to set up Trac to provide an online browser of my development Bazaar repository as well as a bug tracker.