Freestyle integration into Blender

December 29, 2010

Weekly updates December 6-26

Filed under: Update — The dev team @ 1:50 AM

The last three weeks were mainly spent for bug fixes and consolidation of the Freestyle renderer.

  • A bug in stroke rendering with round/square caps was fixed.  A freeze of the program was caused by a stroke having two vertices that reside (exactly or almost) at  the same position in the 3D space.
  • The Parameter Editor mode was improved so that it accepts quote symbols within the names of scene render layers and linesets.
  • Incorrect vertex normals in the case of smooth surfaces were fixed.  Many thanks to Stéphane for his careful code review and bug report!
  • Compilation errors with CMake on Linux were fixed by a patch from Écrivain through the BA Freestyle thread.  Thanks!

In addition, the Freestyle Python API has been slightly extended by wrappers of the following Operators class methods in the C++ layer:

  • getViewEdgeFromIndex(index): Returns a ViewEdge object in the current set of ViewEdges (0 <= index < Operators.getViewEdgesSize()).
  • getChainFromIndex(index): Returns a Chain object in the current set of Chains (0 <= index < Operators.getChainsSize()).
  • getStrokeFromIndex(index): Returns a Stroke object in the current set of Strokes (0 <= index < Operators.getStrokesSize()).

When you want to iterate over all objects in the current set of ViewEdges, Chains, or Strokes (for instance, in order to find the minimum and maximum Z depths, or sum up the lengths of all strokes), these API functions give a procedural programming way of accessing the objects, instead of relying on implicit side-effects of declarative rules (such as predicates and shaders).



  1. yet another great update, thank you for your continued hard work to bring the blender community this awesome toolset :-)

    Comment by blenderificus — December 29, 2010 @ 9:34 AM

  2. Is there anyway to save the configuration of parameter edit mode as style module?
    I sometime face the situation to use same setting for another .blend file.
    And I think it makes more easier to write a style module than writing one from scratch.

    Comment by tksg8086 — December 29, 2010 @ 5:10 PM

  3. tksg8086,
    At the moment, there is no way to export a Parameter Editor (PE) mode setup
    in the form of a style module. I am not sure if such a code generating
    functionality is worth implementing, because generated scripts will be just
    a cut-and-paste version of In addition, the generated
    scripts are likely to be messy and not suitable for further manual editing.

    As you may know, is the Python script that works as
    a style module in conjunction with the PE mode GUI. So, if you are interested
    in the implementation of an artistic option in the PE mode, then is the only file that you need to look into. There is no
    secret, and all the imlementation details are available in the file.

    For ease of reusing a PE mode setup, I have been thinking of allowing users
    to create presets (as in render presets for defining various rendering
    resolutions) through the Misc tab in the PE mode. Using presets, you will be
    able to apply a PE mode setup of a .blend file to other .blend files quite easily.

    If time permits, I am also interested in allowing users to link/append line
    styles between two .blend files (as in linking/appending scenes, objects,
    meshes, materials, and so on). This is possible because line styles are a
    distict data block type.

    Comment by The dev team — December 31, 2010 @ 1:04 AM

  4. thanks as usual

    Comment by ike — January 3, 2011 @ 3:26 AM

  5. less of a comment and more of a question, I have blender 2.49b, where can I get the scripts to use it with that? the new layout of 2.5 is really confusing. please help! a guide of how to get the scripts out of the 2.5 build would work also.

    Comment by Armando — January 12, 2011 @ 10:43 PM

  6. Armando,
    It is recalled that Freestyle for Blender is a custom version of Blender in which Freestyle is an
    integrated part of Blender. Freestyle is not just a set of scripts. You need a third-party build
    of the Blender Freestyle branch. You can download a Freestyle branch build from
    For instance, a build for Windows can be found in:

    It is also noted that the Freestyle integration work has moved on from the 2.4x code base to the
    2.5x code base since October 2009. The 2.4x-based Freestyle branch has not been updated at all
    (and won’t be). Many bug fixes and functionality improvements have been made in the new 2.5x-based
    Freestyle branch. It is likely that you will find the 2.4x-based Freestyle program quite buggy
    and unstable. If you prefer to use it, please be prepared :)

    Comment by The dev team — January 15, 2011 @ 11:52 AM

  7. Hi
    First many thanks for the freestyle blender port, it’s really awsome.
    I have a question about getting mesh texture on vertex color to drive strokes parameters.
    Is it planed, or maybe already doable ?

    Comment by mr_dooo — January 18, 2011 @ 10:31 AM

  8. mr_dooo,
    I am afraid I don’t get exactly what you mean by “mesh texture on vertex color”.
    To my knownledge, mesh texture and vertex color are two different things.
    At the moment, Freestyle does not use either of them to determine stroke attributes.
    Controling stroke attributes based on mesh texture and vertex color is a good idea.
    I would like to implement it when time permits.

    Comment by The dev team — January 19, 2011 @ 10:07 PM

  9. I was wondering… where can I find a gallery of modern works done in freestyle? Especially the latest ones? I’m a huge fan of sketch rendering.

    Comment by Leo — January 30, 2011 @ 2:38 AM

  10. Leo,
    There is no gallery of Freestyle renders at the moment. You might be interested in the
    Freestyle thread in, where branch users have been exchanging rendering
    results using Freestyle. I personally have a small blog site collecting my Freestyle renders.

    Comment by The dev team — January 31, 2011 @ 7:12 PM

  11. Hi
    thanks for you answer, I meant “mesh texture or vertex color” :)


    Comment by mr_dooo — February 1, 2011 @ 10:52 AM

  12. Mind telling me what settings were used for this: could you post a .blend file somewhere (if you have it)? I have been looking for shading exactly like this for over a month! (I have freestyle on 2.5)

    Comment by Armando — February 9, 2011 @ 3:55 PM

  13. Armando,
    The shader setup is indeed very simple. Here is an example .blend file:
    In the list of comments on the video clip on Vimeo, you will find my explanation of a similar shader setup using material nodes. In the .blend file above, I just used the color ramp of the diffuse component instead of relying on a color ramp node. Both achieve the same result.

    Comment by The dev team — February 10, 2011 @ 11:51 PM

  14. I’ve just installed 2.5 and your new version of freestyle =
    Problem: I went to your FAQ where it says to activate freestyle on the “output tab” of the render buttons, but there is no such button to do so.
    I installed 2.5 and dragged/dropped your build files into it, and blender 2.5 does not seem reflect any presence of freestyle functionality.
    I’m most likely doing something wrong.

    Comment by Leo — February 23, 2011 @ 8:48 PM

  15. Leo,

    Try this… (it’s just the bare-bones basic)
    Under the ‘Render’ menu, open the ‘Post Processing’ sub-menu. Select the ‘Freestyle’ box.
    Under the ‘Render’ menu, open the ‘Freestyle’ sub-menu. Find the empty ‘Freestyle Control Mode’ box (label may appear as ‘Control Mo’), and select ‘Python Scripting Mode’. Then click on ‘Add Freestyle Module’, a default will appear.
    Hit F12 to render.

    Comment by Camp — February 24, 2011 @ 2:19 AM

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

Blog at

%d bloggers like this: