Sunday, November 6, 2011

Design & Open Source

I just watched a very interesting presentation by Mozilla designer Alex Faaborg, which touched on a subject I've been thinking about a fair bit: How does design work together with open source?

In my mind there is a certain contradiction between open source and having strong design. Open source has potential similarities with designing via focus groups. We have to avoid descending to committee design - designers will know that this is something to avoid.

Why? Because it's akin to having too many cooks in the kitchen. As Faaborg points out, when combining everyone's favorite color, you will end up with grey. Additionally,  one of the most central aspects of being a designer is the ability to say no, to keep focus on a few things and do them really well.

What they've done at Mozilla to solve this is really quite nice:

  • They define a set of 'Core principles'
  • They use testing to validate designs, not to actually design

I'm particularly interested in the first point, defining a set of design principles for Blender. If we had those set in stone, I think we'd achieve a few things:

  • Elevate UX discussions using more precise terminology
  • UX issues could actually go into the bug tracker
  • Fewer discussions about smaller things - you can refer to the core principles instead

The next question to ponder is, what should those design principles be? Below, I've listed a few good resources for design principles for inspiration:

Jacob Neilsen's Design Heuristics

Jef Raskin's Interface rules

Whitney Hess' UX guidelines


  1. This is an interesting talk, thanks for posting.

    For very specialized apps like web browsers, or even imovie, sculptris, mypaint, etc. it's much more simple to design a nice minimal interface that is still effective. The biggest challenge with an app like Blender is that it's more like the firefox mockup with the hundred buttons in terms of what it can do- some principles of minimalist design will work, but at the same time it isn't realistic in some cases.
    Looking at the render panel however, one can see where it can be simplified. Both the Dimensions and Output panels are rarely-accessed yet open by default. The Shading dialogue would be more apt to have open because the user does significantly more test renders than final ones.
    Also, to me the material assignment workflow seems convoluted, while the vertex group assignment workflow is intuitive and straightforward- it would be a good step to adopt the vertex group mindset for materials, it would simplify things greatly.

  2. Hi William.

    I've written a post trying to explain a couple of UX bug reports I would submit and the rationale behind the decisions.

    It'd be great to know your opinion about it.

  3. Hi Bill,

    Marosh from Innsbruck, Austria here...I've just found your blog describing the customization of Blender UI. I've been thinking of changing my Blender interface for a long time, but my Python skills are rather scarce and a thing I need is a good example I would be able to follow. Following concrete examples and tutorials was also the way I learned my Blender skills. Do you happen to have any kind of tutorial regarding Blender's GUI, that would help me extend my Python scripting skills? I did look for tutorials on the web, but the information is rather fractured and unlike designing in this Software quite inconsistent.
    Thank you for your time and I would be very grateful for help of any kind.

    Best wishes!