June - August

(Half-June to Half-August)

July 30 - August 3

This week, my primary focus shifted back towards work on improving motion paths in Blender, given that this is one of the biggest bottlenecks for the Spring animators now.

  • Fixed bug where clearing paths didn't refresh the viewport (reported by Hjalti) [Spring Bug]
  • Made Motion Paths panel easier to access in Armature Properties (previously, Ghosting was getting emphasized more, despite being less useful)
  • Added profiling (timing) prints to the motionpath calculations, to quantify the scope of the problem. Current (2.8 branch) average times for 250 frames of animation:
    • Autumn "tests/run_cycle.blend" - 10.913 sec
    • 01_050_A.anim.blend (Spring only) - 14.95 sec
  • Investigated how to get motionpath evaluation occurring on stripped-down depsgraph/COW instances, where only the bare minimum data gets re-evaluated.
    • Started working on a proof-of-concept for this graph filtering approach.

General Development:

  • Changed behaviour of the "Clean Keyframes" operator to not erase handle and interpolation settings (f08f6c1adec)
  • Fixed T56199: Crash when using Annotations in 2D editors (using old keymaps, which would trigger the old operator)

GSoC (NPR) Mentoring:

  • Spent time compiling + testing the NPR branch (including fixing compile errors building without OpenSubdiv enabled)
  • Provided usability feedback to Yiming
  • Fixed refresh (messagebus subscribe) bug where changing

Side Note:

  • With the removal of many MSVC2013 compatability hacks (notably the Boost vs C++11 workarounds, and __func__ defines), I had to waste time finding local workarounds for these changes to keep a working dev environment until my new workstation is here and usable. Unfortunately, this does add a bit of extra overhead to prevent my local hacks from ending up in mainline.

July 23 - July 27

My main focus this week was on finishing support for Annotations.

  • Implemented support for dynamically updating icons (846f5d8f744)
  • Implemented fix for mode-switch piemenu problems (a54c30da76d)
  • Reintroduced "Stroke Placement" settings
  • Various DNA/RNA fixes for property conflicts between GP and Annotations, regarding stroke thickness + stroke placement settings (aa8b7f4368b)
  • Fixes for crashes in 2D editors when using Annotations following cleanup commits (171e231a8a8)
  • Various bugfixes for topbar support of Annotation/GP tools
  • Debugged stroke thickness rendering issues on Mac with billrey. Conclusion: A custom shader will need to be implemented here.

July 16 - July 20


  • Datablock collection filters for GP datablocks and GP Materials
  • Spent time investigating how to implement dynamically-updating icons for Annotation/GP layer previews
  • Spent time investigating solutions for mode-switch piemenu problems (where the new Grease Pencil modes

Patch Review/Developer Support:

  • Spent 3-4 hours every night fielding questions/ideas/etc. from @angarilov on IRC regarding patches for the constraint system, and other patches listed on
  • Tested and reviewed D3530 (Damped Track vector ambiguity)
  • Reviewing all the relevant code to determine if the proposed patches are reasonable solutions to the problems presented.

July 9 - July 13


  • Fix T55796: Motion Paths are not being drawn as overlay [Spring Bug]
  • Triaged & rejected T55928 (Dopesheet "show slider" is switch on when switching dopesheet mode to shapekey editor, and back to dopesheet mode)
  • Triaged & closed T55959 (Highlight the mesh instead of showing the bone in pose mode)

Grease Pencil:

  • Resolve "context fighting" issues with GP Objects vs Annotations
  • Fixes for Annotation layers getting created with the wrong names
  • Expose annotation tool settings in topbar
  • Simplify eraser behaviour (i.e. remove "soft" mode)
  • Change default color for Annotation strokes (to match the icon, and be more visible against the default background)
  • General code cleanup for issues/dead code discovered while investigating other issues
  • Investigated issues with getting GP Sculpt brushes to work in the Toolbar
  • Investigated ways to filter GP collections

Code Review:

  • Started reviewing D3530 (Damped Track vector ambiguity)
  • Performed first-pass review of NPR GSoC branch (D3505)

July 2 - July 6


  • Investigated T55709 (Poselib -> Add New Pose crash), and proposed solution
  • Fix T55777: Non-selected keys in Graph Editor are invisible [Spring Bug]
  • Triaged/Checked on T51644

Grease Pencil:

  • Code Cleanup for GP Branch
    • Removed remnants of previous attempts to support 3D View annotations using GP objects
    • Move GP Object defines to correct files
    • Move "GP Paper" settings into a popover
    • Code review for fixes/changes being added to the branch (see concerns raised on @antonioya's commits from this week for details)
  • Annotations
    • Added Toolbar support for Annotations in 3D view
    • Add missing icon data from icons_geom.blend so that the Annotation tools show the correct icons

June 25 - June 30


  • Introduce a "Filters" popover for housing all the less commonly tweaked animation editor filters, freeing up space in the headers and hopefully making some of these easier to understand (5f545dbde81)
  • Make the Search/Collection filters work without having to enable a toggle first

Grease Pencil:

  • Attended Google Hangouts meeting to reach consensus on a way forward for merging the GP branch, focussing on the scope/design of the Annotations system
  • Started work implementing the design we arrived at, based on getting an initially functioning version of the tool, equivalent to 2.77-ish Grease Pencil (but with modern immediate mode API). Got 3D view support working.

June 21 - June 22

  • Fix T55525: "Only Keyframes from Selected Channels" option in Timeline was being ignored [Spring Bug]
  • Various fixes for animation editor submodes not getting initialised correctly (following their inclusion in the Editors menu as standalone entries)

June 11 - June 14


  • Work on the new Drivers setup workflow
    • Display floating properties panel (instead of context menu) after adding a new driver (4605e57b0f6)
    • Tweaks to default py-expressions created, so that editing the driver settings will get a working driver immediately (9ab26bec276)
    • Tweaks to popover creation function so that popover panels stay open instead of disappearing easily (1ff28c2650a)
    • Various UI Tweaks
  • Reserving defines for Onion Skinning in the overlay settings (3122366b28d)

Grease Pencil branch:

June 4 - June 9

Holidays + Post Code Quest unpacking/recovery/etc.


Code Quest

April 4 - June 3 - In Amsterdam. See Code Quest weekly reports from Dalai


February - March

... To be ported from old wiki ...