I guess every Blender user has the dream of having his own developer sitting right next to him to code everything you want.
During one of the recent „Blender Beers“, the more or less regular meet-ups of the slow but steadily growing Blender user group here in Leipzig, we decided to just make that happen. So we put together some money and hired Julian Severin Eisel, who also worked for the Blender Institute already, for 4 days to come to Leipzig and work on some workflow enhancements.
In the end it was four studios from Leipzig that contributed and raised the money:
blendFX, Mikavaa, Mathias Eimann and Knick Design.
Of course there is only so much you can do in 4 days. So on Monday we had a meeting to discuss what we would like Severin to work on. We showed him some of the problems we have in Blender, what we would like to have improved, and how certain worklows look like in other software. Kay Dombrowsky from trickkiste.tv gave Severin a short demo of his Blackmagic’s DaVinci Resolve color grading station.
It was good to also talk about some bigger topics, like for example how an improved undo-system might look like, or how you could implemented parametric mesh modeling in Blender. Hearing a developer’s opinion about that was very interesting. Not everything a user would like to have is also feasible.
And because Severin’s current development focus is UI and user interaction in Blender we settled for 2 projects:
Better node interaction and Custom wireframe colors.
Visual improvements of the node editor
We knew that ultimately we wanted to improve user interaction in the node editor, so we decided to approach nodes slowly by trying to come up with a better way to visualize the connection to output nodes. Especially during compositing with large node trees it can become really annoying that the connection between „functional“ nodes and the more „passive“ viewer or output nodes look all the same. When you are zoomed in there is no way to know which of the many node connection goes to the viewer. Even worse, if you use the file output nodes with multiple inputs your node setup can become really confusing and unreadable.
That’s why we tried out dashed lines for the connections to output nodes. I did like that, and Severin committed a patch to developer.blender.org, but the members of Blender’s UI team pointed out that dashed lines usually stand for broken or muted connections. That’s a good point, so we will have to come up with a different way of visualizing that. However, in general the idea to make the different node connections distinguishable was accepted. So hopefully there’ll be a solution for that soon.
Auto Node Offset
Many of us work with nodes all the time, in compositing as well as shading. As your node tree grows it quickly can become hard to manage, especially when you need to insert one or more nodes in the middle of your nodetree. You’ll have to manually move all following nodes aside to make room for the new ones. Do that a few times and it becomes really annoying.
So wouldn’t it be great if nodes would just move aside by themselves? Of course it would!
Severin quickly had the initial functionality working, and then it was mainly trying to find the best way to handle it and to solve all the special cases, like for instance how to deal with frame nodes, which distance should be used etc. And because he was working right next to me in the studio, I could immediately test and give feedback, which is always a good thing.
If you wanna test it, here is the patch: https://developer.blender.org/D1373
Below you can see a demo of the first prototype.
Another topic we wanted to tackle were colored wireframes. While Blender does have colored wireframes already, you can’t have custom colors per object. The colors are used to communicate certain things, for example whether the object is selected, belongs to a group, is an instance etc. That’s a good concept, but a it’s bit limited and not always what you need. Sometimes you want to visually organize your scene by differentiating the object colors based on various contexts. However, you still need to see whether an object is selected or active. So instead of just single colors we’ll use color sets.
We already have something like that in Blender: Bone Groups and Bone Color sets. Armature bones can be assigned to bone groups, and these bone groups can use a color set. These color sets already have different shades and colors built in, so that you always know if the bone is selected or active.
The idea is to build on this system and use it for everything in Blender. Object, nodes, masks, markers and tracks can use color sets, either by assigning directly, by automatically assigning based on context (for instance by Pass Index), or by using the color ID of a collection set.
Of course this is just a first draft and nothing is final and nothing is finished. But it was great to have Severin in the studio and work out ideas together, because we have a much clearer picture now of how context based colored wireframes could work. Being in the same room and being able to discuss problems together is so much more productive and immediate than just communicating over the Internet.
Blender is getting bigger and bigger. The Blender Institute can hire only so many developers, and the open movies have a strong focus on character animation and short films. So it’s just natural that there are areas in Blender that might not get the attention that the users might wish for. And that’s where I think other Blender based studios could jump in. Hiring a developer, even just for a short time, can make things go a little bit faster in Blender development.
Developers simply have a different understanding of Blender and how it works, what is possible, what is feasible or what would be a too complex project for a limited amount of time and budget. On the other hand artists usually have a better understanding what you really need to enhance your workflow and how to improve the user experience. That’s why the open movies are such a great way of Blender development.
I certainly hope we can repeat this and that other studios do this too. It would be a great way to ensure that Blender keeps on growing without leaving everything to the Blender Institute.