The problem with free

I came across an interesting essay recently that sheds a bit of light on why free/open source software hasn’t been more widely adopted in production environments. I’ve been using Inkscape, Blender and Gimp for much of my design work this semester, and I have to say Frederic Brooks nails it in his software development magnum opus, The Mythical Man-Month.

He starts off by analyzing garage-workshop software that often does things much better than suites on which hundreds of programmers sweat for years, and gives a good explanation for how that’s possible. Essentially, a program may be brilliant (and all three of the packages mentioned above do some things extremely well), but to be successful on the market it has to also be a system (in other words it has to to be able to work with other programs), and has to be a product, meaning it has to be reasonably usable by a wide range of people, not just savvy programmers. He says most of the time spent on a software package is not developing its meat-and-bones features, but actually taking them from the concept stage to being a system product. And that’s where many open source software packages fall short – they are often developed by and for programmers, who have little actual knowledge of what a professional user expects. In that respect Blender certainly is a notable exception in every regard – it is a system product of the highest caliber, but it has also been developed to a large extent by filmmakers, who are its target audience. Gimp is also a solid performer, and does the things you expect it to do very well. In general has very few shortcomings in comparison with Photoshop, the package it’s most often compared to.

Inkscape, however, is a different story altogether. It has some truly outstanding features (the tiled clone feature for one is amazing and very useful, see this post for a sample of what it can do), but it often breaks down at the day-to-day usability level. Printing and exporting in vector format is a chore for all but the simplest graphics. The program is constantly being developed, but the developers (as with most FOSS projects mostly volunteers) seem uninterested in making it a tool that professional users could apply in real production environments. Sure, you can do pretty much everything with it that you can with Illustrator and it doesn’t cost a dime, but what good is that when basic features like exporting and printing are an obstacle course? One that is possible to navigate, to be sure, but an obstacle course all the same.

That falls in neatly with Brooks’ argument – if you want Inkscape to output bitmap images (i.e. the format preferred by internet-minded types), Inkscape can’t be beat. But you better not want your final output to be vector-based, or you’re going to run into problems. Sure, on discussion boards someone will helpfully suggest that in the end all output is bitmap, since printers make dots not lines. But that misses the point that having the extra stage to go through does nothing to make your workflow smoother, and workflow is what professional software is all about. Just ask Adobe.

Inkscape is not alone in this, unfortunately. While there are more and more Blenders in the free/open source/libre software universe, it has some ways to go before it can truly stand on its own against commercial software. Having said that, I’m still wholeheartedly on its side, having put my money where my mouth is on more than one occasion. I simply think it’s worth having them around, if only as real competition to the mainstays of the industry.

Stop-motion

I’m not sure if this is ever going to be of any serious use for me, but I just had to give it a shot:

[flv:http://cygielski.com/blog/wp-content/uploads/2009/07/dadadance.flv 480 360]

Whaddya think?

A world of sound

Just when you thought you were safe:

[flv:http://cygielski.com/blog/wp-content/uploads/2009/07/frogmovie2.flv 480 360]

Audio done in Audacity (an open source audio recording/editing program) and synched in Blender‘s video sequencer. The drops are actually just me tapping my finger on my laptop’s microphone. Sound FX to the max!

The Gimpy Fly

[flv:http://cygielski.com/blog/wp-content/uploads/2009/07/fly.flv 480 360]

I thought I could do the whole thing with the Gimp Animation Plug-in (GAP), but the video encoder is buggy and I couldn’t get it to make an AVI file. After several attempts, I put the single frames into Blender for final processing. Let me know what you think.

Video editor

Blender continues to amaze me – it’s basically a self-contained AV production suite – you’d need at least two different pieces of high-end (read “extremely expensive”) software to replace it. Here’s a simple fade between the old and new version of the pavilion animation, to show a very basic functionality:
[flv:http://cygielski.com/blog/wp-content/uploads/2009/07/pav_YR_cross.flv 480 360]

New rendering

This really took a long time – about 4 minutes per frame (total render time more than 24 hours – not sure how many exactly). However, after some tweaking to the sun/sky settings and the photon sampling rate, I think the results are at least passable. I also put this through Blender’s compositing node editor to correct Yafaray’s gamma, which came out too pale. Final output to FLV file done on Riva FLV Encoder – which, for the record, is free but not open source. This means that the entire workflow did not use a single piece of commercial software.

Well, here are the results:

[flv:http://cygielski.com/blog/wp-content/uploads/2009/07/pav_YR_comp.flv 480 360]

BTW, since I’ve been asked: the pavilion is not a full-fledged project by any means – it’s just a quickie something to allow me to test software.

Update: just checked – Riva’s website doesn’t specify its license terms, but it FFmpeg and LAME modules, which are both released under the LGPL, an open-source license. So all is well.

A few hours later…

… I have an animation of the pavilion ready:

[flv:http://cygielski.com/blog/wp-content/uploads/2009/07/pav_yr.flv 480 360]

This took an inordinate amount of time to render in Yafaray – and I’m still not happy with the quality of the results – too much noise at the edges (the patchiness of the “grass” is not from the renderer, but the external flash encoder). I think Yafaray is mainly good for stills, where you can crank up the settings and wait for it to churn out the results. MentalRay in Maya still has this one beat, especially in terms of the quality of the sky light and the cleanliness of images.

Next I think I will see how Big Buck Bunny was lit – it’s rendered without final gathering in Blender’s internal renderer, but it’s all really nice. Here’s the main advantage of open source and Creative Commons licenses – it allows you to learn from the work of others. Beautiful.

I also want to test out Kerkythea – it’s a free (though not open source) renderer, which appears to be fast AND to give exceptional results.