I love writing image-processing programs, except for the parts where I have to deal with file I/O, parameter tweaking, and multithreading. In addition, it almost always ends up being the case that the program I write runs from the command-line, reading in a single image and outputting a filtered image without giving any feedback in between. All of these factors combined make working with image filters very difficult...if only there were a program that could handle all the annoying details.
Enter Ingot. Ingot provides everything you need to make writing simple image filters a breeze. Write the function to render one tile of an image, and Ingot's thread pool will automatically multithread your filter. Does your filter take awhile to process the full image? No problem, the GUI shows gives live updates on the tiles that have been rendered so you can get a preview before it's done. Need parameters? Just declare them, and Ingot will handle adding them to the toolbox and setting up on-the-fly parameter tweaking. Now you can focus on just the important part --- the filter itself --- and not have to worry about the boring infrastructure code.