May 12, 2010 Catching Common Image Processing Programming Errors with Generic Unit Tests When implementing image algorithms, I am prone to make these mistakes: swapping x and y; working on the wrong channel; making off-by-one errors, especially…

April 16, 2010 Simple, Fast* Approximate Minimum / Maximum Filters *Fast = not toooo slow… For the image restoration tool I had to implement min and max filters (also erosion and dilation—in this case with a…

April 7, 2010 Poisson Disk Sampling Example Code I decided to put the Poisson disk sampling code here for download since the site that hosted it is down. The code accompanies the…

October 8, 2009 15 Steps to Implement a Neural Net (Original image by Hljod.Huskona / CC BY-SA 2.0). I used to hate neural nets. Mostly, I realise now, because I struggled to implement them correctly. Texts…

May 28, 2009 Getting More out of Seamless Tiles I wrote an article for Dev.Mag covering some techniques for working with seamless tile sets such as making blend tiles, getting more variety with procedural colour manipulation,…

April 28, 2009 Generating Random Integers With Arbitrary Probabilities I finally laid my hands on Donald Knuth’s The Art of Computer Programming (what a wonderful set of books!), and found a neat algorithm…

April 15, 2009 Estimating a Continuous Distribution from a Sample Set It is sometimes necessary to find the distribution given a sample set from that distribution. If we do not know anything about the distribution,…

April 15, 2009 Generating Random Points from Arbitrary Distributions for 2D and Up I have already covered how to generate random numbers from arbitrary distributions in the one-dimensional case. Here we look at a generalisation of that…

April 9, 2009 Cellular Automata for Simulation in Games A cellular automata system is one of the best demonstrations of emergence. If you do not know what cellular automata (CA) is, then you…

December 15, 2008 A simple texture algorithm – faster code and more results Faster Code A while back I wrote about a simple texture algorithm that I have been exploring. The Python implementation was very slow –…