I saw Spiderman 3 two days ago and just didn’t feel like writing about it. Sure, I could have gone into the post-mortem of every little piece in it that worked and didn’t work, but I realised that none of that would go far enough into explaining why I found it disappointing. In a seemingly un-connected event, today I came across a mention of this Slashdot piece about Blender on Blendernation [later I also saw a related thread on Blenderartists]. Lo and behold there was a large number of people doing post-mortems of every little piece of both Blender and the Slashdot piece, that either worked or didn’t work for them. Just as I was about to dismiss the whole thing and put it off to sour grapes on one hand and over zealous teenagers on the other, I realised there was a connection I was missing. While everyone was tearing everything apart and analysing every word, sentence and minor feature, we were all forgetting to ask the most important question: How entertaining is your 3D software?
For this epiphany, I have only Spidey 3 to thank because I get the feeling that no one there sat down at the end of the screening of the first test edit and asked, “How entertaining is this movie”? Sure, they analysed the CG sequences to death and made sure the short pauses and the long emotional deluges were all perfect, but what of the cumulative effect? No one seems to pay attention to those in a world increasingly obsessed with the details.
But I digress, because while there is an important co-relation to make here, this article is not about Spiderman, but rather about software. And I think one of the biggest stumbling blocks when it comes to discussing software is thinking of it as only a “tool”. To me that seems like thinking of a motion picture as just some audio-visual information. But since movies are officially accepted as a creative medium, we do not think of them that way. We understand that in any creative piece of work, it is synergy that matters and not nitty-gritty. Sure every paint stroke counts, but what does that 1m by 2m cut of canvas on the wall make you feel when you step back and look at it? That’s what stays with you and that’s what makes you love or hate it, not the odd dab of paint in the upper left corner that just doesn’t fit.
Right now you’re probably thinking, “OK, but what does painting have to do with software? Software is just a tool.” And in spite of what I said before, in most cases, you are right. Some software is just a tool. If you’re using Openoffice.org to type out invoices, I’m pretty sure it’s just a tool to you. But when you are spending hundreds of hours of your life inside a piece of creative software to turn out that perfect image, it transcends “tool” very quickly. The moment you get seriously into a creative process, where you are doing it mainly for the pleasure of it rather than as a chore, you’re in it for the experience, and your partner in that experience takes on a personality of its own.
Let’s take music as an example. If you were to analyse it on a scientific and usability level, I’m sure one of the big name software sequencers might come out as the most efficient and user friendly music production device. That doesn’t seem to stop people from buying and trying to learn the guitar. Why would they want to do that to themselves? There’s no undo button, you can’t repeat exactly the same sound twice, it’s death on your fingers as they initially learn to squeeze the sharp metallic wires into the wooden neck, it’s cumbersome, it’s difficult to learn, you can’t get anything good out of it for weeks until you really understand it. This interface sucks! And yet many musicians are attached enough to those lumps of woods and wire to actually name them like their children. Even musicians who embrace the digital future often record their guitar solos live and mix them in with the synthesized material. Why? Because playing the guitar is more fun.
I can say the same for Blender. While I could find fault with various small pieces of it viewed in isolation, I enjoy the experience of using it as a whole. I actually “like” Blender. How many pieces of software can you say the same about? (Off hand I can only think of Inkscape which for me comes a close second) In the long run, and as a person who actually uses the software for results, that fun, that experience, that entertainment factor is what helps me create better. Creation is not a cold mathematical process of features and capabilities, but rather one of inspiration and persistence. Blender helps me persist, and it obviously helps a lot of other people persist too because so many fans seem to be forming a growing movement behind it. That growing movement of people adds to the experience that is Blender. Certainly not the least important of all these factors is that most people using 3D software, by the sheer power of numbers, are doing so for entertainment, as a hobby, because they like to, and not to make perfectly-scheduled renderfarm-based multi-million Hollywood blockbusters on a “tight” budget.
All this might seem like mystic mumbo-jumbo to the more pragmatic, technically inclined among you. Because while I might have answered why the creative user can prefer Blender over other ‘more technically solid’ options in the open source 3D software world, that doesn’t answer the original question proposed by the Slashdot post: “How come developers are still willing to put up with such an arcane code base?” The answer is the same: synergy, the fact that a system can be much more than the sum of its parts, and the Blender community is a very active system.
The greatest dis-service done to developers and programmers is to relegate them to the realm of well-oiled automatons. Programmers are just nerds who can mathematically throw together the correct sequences of code to get something done, right? If you put a thousand monkeys on a thousand desktops with an open text editor, eventually they will come up with the source code for Blender, right? Wrong. Anyone who erroneously thinks these things needs to realise that programming is one of the most creative activities you can ever be involved in. It’s not about the statements and formulas, just like a good story or a poem is not about the words and sentences. Programming is a high art just like any other, and you know what? Most open source programmers program for exactly the reason most artists paint. Because it’s fun. Maybe there are other better code bases out there to tinker with, but do they lead anywhere? Do they have a rabid fan-base of thousands who genuinely utilise their features? Do they have a list of enthusiastic spokespeople, informative websites, and entertaining forums to join? Are they fun to code?
You do the math. How entertaining is your 3D software?