GSoC 2020: Outliner Weekly Reports


Please leave feedback in this topic: GSoC 2020: Outliner Discussion and Suggestions, thanks!

Week 1: June 1 - 6

This first week is already off to a great start:

  • Created design task to show progress of subprojects I have also listed the smaller issues and papercuts I hope to fix this summer on the design task.

  • Last September I started a patch to cleanup outliner selection. I started from scratch on Monday and now the patch is awaiting review (this will go in master to fix an issue). Already committed the patch to my soc-2020-outliner branch.

  • @LazyDodo made a Windows build for testing:, Thanks! :slight_smile:

  • Started work on the first task, Mode toggling and Activation Column Currently activation of scenes, collections, and cameras works from a new left column in the outliner. When in edit mode, you can also use the left column to toggle objects in or out of edit mode.

Next Week’s goals:

  • Add support for pose mode toggling to the column, and other fixes.
  • Currently the column selection code is not ideal because I ran into a small UI button issue. Once resolved, I will cleanup that code.
  • Remove data activation and mode toggling on outliner selection in favor of the column.
  • Continued selection cleanup in preparation for properties editor tab switching.
  • Fix once the selection cleanup is in master
  • Make a design task for context menu improvements.
  • 1 or 2 smaller tasks.

Wow, love active camera toggling from the outliner, that’ll speed things up.
Great work!

1 Like

But that was already the case, if you click the camera icon.

I’m confuse. :thinking:


nice job!

I just wanted to point at at specific thing I noticed about the outliner.

Sometimes we have a lot of objects in the scene and we want to inspect quickly the properties of those objects, like for example if they have a different delta transforms or custom normals. So an easy way would be using down arrow on the keyboard but as you can see in the gif below the objects are showed in dark orange therefore the property panel is not updating.

It would be nice if someone could implement this behaviour.


@ThinkingPolygons If you look at the task (linked above the video) it mentions the reasoning behind this. Selection, activation, mode toggle, etc. are all mixed up, and we are separating them. So yes, currently you can click the camera data icon to change active camera, but in my branch you will not be able to.

@giuseppebufalo fixing that is actually in my plans for next week. I linked to the task above. Also, if you have other feedback, post it here: GSoC 2020: Outliner Discussion and Suggestions

Nice to see this project started.
Do we post issues of this current build here in this thread?

1 Like

I’m not sure, until @natecraddock replies, I posted my feedback in the main Outliner discussion, here are my impressions.

1 Like

@jc4d and @slowk1d it would be preferred that all suggestions and feedback (including with the windows) build be on the feedback topic. Keep in mind that the features in the daily builds are not complete, and there are known issues, so look at the progress for the specific task in case it’s already known:


Thanks! Already posted feedback there.

1 Like

Week 2: June 8 - 13

I did not complete all items on my list for the week, but overall it was great. On the bright side I finished my CS algorithms class at my university so now I’m much more free to work on this project! And I’m still ahead of my anticipated schedule.

  • Added walk left/right navigation with arrow keys
  • Switched to radio icons instead of check and dot. The icons aren’t finalized, but this already is better (the check doesn’t get confused with the collection exclude checkbox.
  • Fixed an issue preventing me from properly using icon buttons (thanks @julianeisel!)
  • Cleaned up the code for drawing the column
  • Now every object mode can be toggled with the left column (see video). This makes it much easier to see which object is in a specific mode, and makes it simple to swap to a different object.
  • Removed activation on selection for collections and cameras. Now the only way to set the active collection is with the left column.
  • Created two new design tasks:

Next week’s goals:

  • Start on properties editor syncing:
  • Hopefully get my cleanup patch reviewed for 2.90
  • Small fixes to make selection more consistent
  • Other smaller fixes on my todo list

Week 3: June 15-20

This has been a great week: I finished my final exam, and got a lot more done than I expected!

  • Made a few commits to 2.90 to fix issues. I started these before GSoC, and it is nice to finally have them finished.
    • Outliner selection cleanup (702e00f91088)
    • Fix walk navigation not activating (8ce1a6026273)
    • New unified Delete Hierarchy operator (26c0ca3aa7f4)
    • Fixed an issue selecting objects linked in multiple collections. The top and selected elements in the outliner would be selected.
  • Started (and I think finished) properties syncing. See the GIF for a demo. Now selecting data (mesh, materials, modifiers, bones, etc.) in the outliner will switch to the correct tab in the properties editor. The hardest part here was ensuring it respected any pinned data in a properties editor. I think I got it correct, but let me know if anything goes wrong!
  • Fixed mode column toggling when Lock Object Modes is disabled.
  • After some discussion with some others, I have removed the camera and scene activation from the mode column, you can read the reasoning here: GSoC 2020: Outliner Discussion and Suggestions.
  • Started collection color tagging! This is in a private branch so there isn’t anything to see yet.

Next week:

  • Fix a few remaining issues with mode toggling.
  • Fix any loose ends with properties syncing.
  • Get feedback on the mode column from the Blender Animation studio if possible.
  • Get feedback on the first iteration of collection color tagging.
  • Start on manual object sorting: if there is time.

Thanks for all the feedback along the way!


Week 4: June 22-27

It’s been a slower week. I fixed a few issues and cleaned up the code a bit.

I added collection colors! Adding that to the Collection struct is simple, but the hard part is proving to be finding a method of displaying it in the outliner that is visible but not overpowering. It’s caused quite a discussion over on the other thread GSoC 2020: Outliner Discussion and Suggestions. I’m reading every reply and will try to make the best decision possible! I’ve implemented many of the suggestions along the way as well, some are easily integrated with the drawing code, and others require a bit of restructuring.

The reminder of my time was spent reading the code for the remaining tasks of my area. I spent a lot of time reading the code in outliner_tree.c and outliner_dragdrop.c and making small changes. I’ve had a few successful experiments with modifier drag+drop in the outliner, but just in a local branch. I’ll be committing it soon. Now that I’ve read the related code and made plans I’m ready to start on the remaining goals of the summer.


Week 5: June 29 - July 4

It’s been a great week! The first evaluation is over, and I am still ahead of schedule!

  • Participated in Code Quality Day with some outliner cleanup
  • Added autoscrolling to outliner drag+drop (2.90)
  • Changed hierarchy line drawing. Now the lines draw for collections only and are colored based on the collection color.
  • Draw collection color roundrect behind collection icon.
  • Add collection colors to user preferences for custom theming.
  • Add collection color icons to context menu.
  • Move collection exclude checkbox to left column (may move again)
  • Add modifier drag and drop for sorting and linking

Video demonstrating modifier drag and drop, autoscroll, and collection coloring:

Some small things may change for collection colors still, but the design is stabilizing nicely.

Next Week

  • Clean up modifier drag and drop and fix a few remaining issues
  • Apply same drag and drop code for constraints
  • Object drag and drop
    • Sorting
    • Parenting without holding shift
  • New collection from selection