Freestyle Integration report, January 2011

(by Tamito Kajiyama)

In December 2009, we defined a list of things that should be finished before the merge into the trunk is asked [1].  This to-do list included fixes of stability issues, recovery of missing features, and additions
of a few new functionalities.

Among these things, a strong emphasis was first put on addressing the stability issues.  Most critical bugs were fixed in the first two months after the definition of the to-do list.  These fixes addressed: (a) a long-standing source of various instability issues related to 2D-to-3D inverse projection transformation [2, 3], (b) crash due to objects behind the camera [4], and (c) fatal instability related to the orthographic camera [4].  Problem reports from branch users also helped the consolidation of the branch a lot.  As a result, the stability of the renderer has been substantially improved.

After these stability improvements were made, the development moved on to the recovery of missing features, including (a) transparent strokes [5], (b) image-space density and Z depth information [5],
(c) full-sample anti-aliasing [6], and (d) border rendering [7].

Some documentation work was also done to migrate the Freestyle API reference manual into the new Sphinx-based documentation system for Blender 2.5 [8].
Having most of the initial to-do items addressed, we refined the list of final targets in June 2010 based on users” requests and available human resources.  Less important missing features were dropped from the list, while a key element was included.  The updated to-do list [9] consists of three items:

1. An artist-friendly GUI for interactive manipulation of line style parameters
2. Feature edge detection at the intersection of two faces
3. Completion of Freestyle Python API improvements

The new GUI aims to provide artists with an intuitive and easy-to-use line stylization toolset.  To start with, several GUI design approaches were discussed [9], and GUI designs of commercial NPR software
were reviewed [10].  The basic framework for Freestyle in Blender has been implemented as documented in [11].  The GUI is functional and ready for tests by users.

As of this report, subjective achievement rates of the three to-do items are 40%, 0%, and 80%, respectively.  Taking the amount of unfinished work and available resources into account, the completion of all the to-do items is unlikely to happen earlier than the next summer.

As cited above, updates on the development work have been posted to the Freestyle integration blog:

The Freestyle branch has been kept in sync with the trunk code base by regularly merging changes from the trunk.  Branch users have been actively exchanging techniques, application ideas, and rendering results through the Freestyle thread in

Thanks to volunteer builders, up-to-date Freestyle builds are available at:

Those who are interested in the reported new elements of Freestyle are highly encouraged to test and review this branch.

January 17, 2011
KAJIYAMA, Tamito (T.K.)


8 comments 5,184 Views
  1. Wow…

  2. Thanks Tamito and all the developers and builders for your hard work. I really like the free style renderer. 🙂

  3. almost there.. it’s been great watching the progress. when intersection lines are implemented, i’ll die happy.

  4. It looks so promising! Any plans of when it will be fully integrated with the main blender branch?

  5. Finally it will blend! 🙂

  6. :posted also in blender artist, I thought it would be worth a mention here if anyone has any thoughts on this edge method.:

    I like Freestyle….

    I have not taken the time to read this entire thread so I am not sure about what is being developed, but will you be able to add line selection type edges that are “marked sharp” such as when you have smooth shading on? Or could you even integrate a “Mark Freestyle Edge” and “Mark NON-Freestyle Edge” in the CTRL E menu? This would make it much easier to get those last couple edges that sometimes get missed or the ones that slip in that you do not want. More fine control would be awesome. Great addition to blender!

    PS: I lied, I LOVE Freestyle!


    TK, thank you for your work!

  7. PS:I forgot- TK mentioned
    “At the moment, this is not possible and a bit difficult to implement, because
    all the information the Freestyle renderer gets from Blender is a bunch of
    tris and quads generated by applying all mesh modifiers (such as subsurf and
    deformers) and does not include edge marks. Maybe in-depth enhancement
    of the Blender internal renderer would be required for supporting the edge
    mark-based edge selection.”


  1. Leave a Reply

    Your email address will not be published. Required fields are marked *


share this story on