Hack Week 3: MathMap

MathMap Screenshot

I’ve used this Hack Week, like the last one, to work on my long-time pet project MathMap, culminating in two releases, 1.3.3 and 1.3.4.

MathMap 1.3.3, released early in the week, features an optically much improved composer, implemented by Herbert Pötzl, as you can see in the screenshot above.

Also new is a Gaussian blur filter which can be used in the composer as well as in hand-written filters. What’s noteworthy about this filter is that it’s the first filter that is not implemented in the MathMap language, but rather in MathMap’s implementation language, C, which is why I call it a “native filter”. The reason for this is that the MathMap language, which is very similar in spirit to pixel shader languages (but more powerful), does not lend itself well to filters which cannot be efficiently calculated for each pixel separately. The only way to implement it would be for every pixel to be calculated to loop over its pixel region (the size of which depends on the blur radius) and sum up the pixels.

At the end of the week I released MathMap 1.3.4, which, apart from bug fixes and performance improvements, adds yet another native filter (three, actually), namely convolution. It doesn’t realize its full potential yet, because there’s no sane way of providing pixel-precise convolution kernels, but I’ll fix that sooner or later.

To give you a feel for the new features of MathMap I’ve put together a new screencast, despite grave technical difficulties. It focusses mostly on the composer and the new native filters. I’m also presenting an interesting way to make black and white images which you might find interesting independent of MathMap. Have fun!