Thanks to the intercession of Dario M. we are pleased to interview Andrew, author of PhotoFlow , a new RAW editor designed for all photography enthusiasts. Enjoy the reading!



1) First thing, some questions on yourself. What's your name? What's your job?
You can call me Andrea, and I'm a humble servant of the Open Source cause.


2) How did you get involved in the programming world?
I've been interested in programming since the early days of university, when I realised that computers and software would have a crucial role in my professional life. Today software development is part of my daily work, although mostly in the field of scientific programming. Image processing is sort of a recent hobby.


3) And in the photography world?
My first camera was an Olympus XA (do you remember the mythical "ovetto"?), when I was probably between 6 and 10 years old... too far away to remember exactly. I started taking pictures of anything, like any other kid with a camera in its hands. 
Once I had enough money in my pockets, I bought my first reflex, a Pentax with a budget 35-70mm zoom, to which I added three close-up lenses... that was my entrance door into the fascinating world of macro-photography! 

About ten years ago I bought my first (and only) digital camera, a glorious D300 that is still serving me well today. Digital photography has been a revelation: I could finally join my two hobbies, photography and programming.


4) Could you please tell us more about Photoflow? How did it start? Why did you choose not to contribute to the development of some other software like Darktable/Rawtherapee etc? Which are the Photoflow strengths and exclusive features? Why a common user should choose it?
The typical workflow of a Linux photographer is to do the initial processing with a RAW developer like RawTherapee or Darktable, and then switch to GIMP for the final touch-ups. This is simply because none of the Open Source photo editors provides at the same time high-quality RAW development, adjustment layers and non-destructive local editing. That's where PhotoFlow enters the game...

I remember having followed a discussion on the Rawtherapee forums about adding support for adjustment layers. The conclusion was simple: it would imply rewriting a good portion of the processing pipeline. The current situation with Darktable is better, as it supports local editing through blending masks for most of the tools, however adjustment layers are not in the todo list of the developers.

Last but not least, they are both limited to single images. No way for example to combine two or more exposures in a single image with extended dynamic range.

So I decided to take a different approach: define my ideal photo editor, see what building blocks could be used as a starting point, and eventually incorporate code from both Rawtherapee and Darktable whenever possible, just to avoid re-inventing the wheel.

First of all, what could be the characteristics of an ideal photo editor? Here is my shopping list:
  • allow the direct processing of RAW files 
  • be non-destructive 
  • provide a real-time preview of the current editing 
  • allow to combine multiple images 
  • support adjustment layers as well as layers grouping, to achieve complex effects
  • allow local editing with grayscale blending masks 
  • allow the editing of rather large images (100 mega-pixels or more), without "killing" your machine
Developing a suitable processing pipeline has been my first big problem, and the main initial showstopper for the project. I'm not a professional programmer, and PhotoFlow is developed entirely in my limited spare time, therefore I could not afford one or more years for writing a decently optimized and fast processing engine. Luckily, I came across a little software gem called VIPS, an image processing library originally written for processing multi-spectral images of ancient paintings. VIPS is designed to process large images in a memory-efficient way, is intrinsically multi-threaded, and provides one of the fastest and better optimized processing frameworks on the Open Source market. No surprise that Wikipedia uses VIPS to scale-down large images (http://blog.wikimedia.org/2013/09/12/vipsscaler-implementation-wikimedia-sites/). Last but not least, the library is still in active development, and the authors are very responsive to user requests. After few email exchanges, it was clear to me that PhotoFlow was going to be built on top of VIPS.

From there on, PhotoFlow has been entirely built on top of VIPS, re-using existing code whenever possible. For example, the RAW processing part is largely derived from Darktable (RAW decoding and color matrices) and RawTherapee (Amaze, LMMSE and IGV demosaicing algorithms). 

On the photo-retouching side, Photoflow includes a growing number of processing filters from the great G'MIC project (blur and noise reduction filters, film emulation, edge detection, etc...).

Last but not least, PhotoFlow saves sidecars files in XML format, without modifying the initial image(s). The XML files simply "register" all the editing steps, which are then "replied" by PhotoFlow whenever the file is opened. As such, any aspect of an edit can be modified and tweaked without any limits.

To conclude, PhotoFlow might well replace both your favorite RAW converter and GIMP in your daily photo retouching work, so why not give it a chance?


5) On the Git repository I saw both an OSX DMG and Arch Linux binaries. I suppose you use both OSX and Linux. If I am correct, which are the flaws of Linux with respect to OSX in the photography field?
I'm using OSX for work, but Linux for anything else (even my TV set is hooked to a MythBuntu machine...). Honestly, for photography work I can switch between one system and the other without noticing any difference, except maybe for printing support which is better under OSX.


6) Tricky question: Nikon or Canon? What is your camera of choice?
Nikon, of course! I almost always owned Nikon cameras and lenses, including a second-hand F4 before buying the D300 that I'm still using today, after almost 10 years (in the digital era, 10 years is like a century...).