[Soc-2013-dev] Weekly report #3 UI Replay

Vincent Akkermans vincent at ack-err.net
Fri Jul 5 16:33:15 CEST 2013


My first report, hooray!


= Week 3 = 

== What I did this week ==

Due to other obligations this week was the first week I could spend on the Summer of Code. On Monday I set up my repository and familiarised myself with the codebase again. On Tuesday I had a chat with Ton and we agreed that I would spend the week getting into the SoC mindset with two main tasks. 

The first task involved debugging and committing a patch for the operator redo panel (rev 58020). With this patch the panel always displays the properties of the last operator, even after an undo. This is achieved by keeping references to the operators in the undo stack and the operator stack is rebuilt after each operator execution or undo. The current implementation could be much improved by doing away with the operator stack completely.

I have found that the behaviour of Blender's history system is hard to predict from the point of view of a user, especially because most of it is invisible. Mode switching makes this even harder. Also, it is hard to know exactly what you'll be changing with the operator redo panel after a couple of undos. This is more of a problem when all the operators in the stack are of the same kind (e.g. this happens a lot with common commands such as Translate) and therefore the name of the operator does not help you remember exactly what step in the history you are adjusting.

Ideally the different history stacks and the operator stack would all be unified in a single data model. History visualisation and navigation would then be much easier. For example, imagine the toolbar visualises the history stack and one coud click a step to return to that state. The step would unfold to show the operator redo panel for that step. That way the history is visible and one can be more certain of what result an undo action will have by looking at the current state of the stack. An added advantage of making the history stack visible is that parts of it can be selected to create a macro.

The second task was to explore a redesign of the toolbar, including the redo panel itself. I'm currently evaluating the toolbar designs of Blender, Luxology Modo, and Apple Motion. Ton recommended I read the book The Humane Interface by J. Raskin to become familiar with the interface philosophy Blender follows. This proved to be a good read. Raskin applies his knowledge of the limits of human cognition to interface design and presents lucid recommendations. The concepts from the book apply directly to the evaluation of the toolbars. Although I have some sketches and results I'd like to spend a little bit more time on this task before I share my thoughts.

As a side note I'd like to say that I found myself asking many questions of the current toolbar design, such as how many users actually activate the most common commands (Translate, Delete, etc.) from the toolbar as opposed to by keyboard shortcut. These sorts of questions are currently hard to answer definitively, but would be trivial if usage data were collected.

== Next week ==

Next week I'll continue the toolbar comparison and evaluation.

Also, I'd like to draw up a design for a more unified history stack and remove the operator stack completely.

== Questions ==

I'd be very grateful if somebody could provide feedback on the history stack patch.

Would anyone recommend I include another software package (perhaps with a particularly good or bad toolbar design) in my evaluation? 


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.blender.org/pipermail/soc-2013-dev/attachments/20130705/6ad722ad/attachment.htm 


More information about the Soc-2013-dev mailing list