How you improve Blender Freestyle?

Blender Freestyle has been around for sometime and been used for many projects, hence there are wealth of experience of using alpha/beta/test builds. As Freestyle will “soon” be in Blender trunk, and before that actually happen, we at BNPR love to hear your ideas of possible improvements. (Like UI, features, add-ons, modifiers, speed etc.)

Yes, we are getting your feedbacks and suggestions. Tell us what you want to see in future Freestyle. Ideas can be as simple as feature request, but those requests with solid example are the stuff we love most (less of us guessing and scratching our heads like Suzanne if she has hands).

3, 2, 1… BEGIN!!!

PS: If everything goes well, we’ll summarize all the requests to be given to our beloved developers.
Update: If you face problem in any area of Freestyle, we like to hear them too.
Update 2: We are open to receive more of your improvement suggestions until the end of the month (July 31st 2012), then we’ll compile everything up neatly to be given to the developers.
Update 3: A brief report has been made to outline your suggestions here and a full report of all your suggestion can be found here.

  • Light

    My main concern is about the speed. Currently it is running on single CPU core. No idea of now to multi-thread mesh calculation, not a developer.

  • Speakingmute

    I would like to see the sphere radius and kr epsilon derivative returned to the general parameter editor. The paper “Suggestive Contours for Conveying Shape” doesn’t require any deep understanding of differential geometry to be understood – curvature and the radius of curvature are fairly intuitive concepts, and their relationship to suggestive contours is explained quite well in the article. And even if someone fails to grasp this paper, they can simply use trial and error to get the best results. As it stands now, using suggestive contours with the default settings in the parameter editor is pretty much useless – since I don’t know (or have the desire to learn) how to script for blender, I’m currently forced to choose between the greater detail and accuracy for lines or the greater customization and ease of use available in the general parameter editor. 

  • Ejnar Rasmussen

    1: SVG output from the perameters editor.

    2: selections of intersections between faces.

  • Vicentecarro

    1- Import/export full freestyle settings and not only linestyles ( maybe plain text or XML ).
    2- Respect sub-groups when appending groups from another file. (This won’t be done cause it’s a blender structural problem or “feature” according developers).
    3-When something is excluded from freestyle (using group exclude) it should be effectively ignored. Currently all the meshes are “readed” in the first step.
    4- multi-thread
    5- it should inform about how much RAM it will use during the freestyle render.
    6- A working “quit” button, so you can instantly exit from the render when a problem (e.g. virtual memory usage) occurs.
    7- Freestyle pass, so we can use it independently.
    8- Fix to line even through transparent materials. (Z buffer problem) 
    9- Option to render freestyle when doing an OpenGL preview
    10- Of course, intersections
    11- Optimization

  • Light

    Adding to my suggestion: FreeStyle needs its own button in the properties window. Just think of it like material/texture. Current Freestyle is making the render section way too long, often need much scrolling and collapsing of submenu. Also if #7 of Vicentecarro’s suggestion can be done, this will make more sense in large production setup.

    • Vicentecarro

      +1 to “its own button in the properties window”

    • definitely agree that it’s clogging up the render section, its own button would be fab

    • Jesse

      +1 to this. One of my biggest complaints with it.

  • my list:
    – multiple thread usage. believe it’s on a todo list somewhere (it was, once).
    – other optimization for instance really excluding groups and lines if excluded, not loading mesh and calculating the strokes, and then not draw them. 

    – ignoring meshes in other render layers that don’t have freestyle enabled. this is i believe what currently happens.

    – the ui should be changed somehow. render section is too long now. maybe making it some kind of modifier would work, or as suggested      giving it its own button in the properties window. we as users could come up with something, since all the ui is done in python, it’s quite easy to play with

    – a freestyle pass is a good idea. I asked TK once, and he replied: “For what concerns render passes, I won’t implement a Freestyle-specific pass of stroke color pixels, just because of consistency with other components of the Combined pass such as solid, halo and edge”now from a user perspective i would say: screw consistency, it should be easy to use. I dont see why one would go for consistency if that makes the compositing a lot more difficult. maybe there’s more to it than that, this is just my opinion.

  • A freestyle pass would be very welcome indeed, thought there was one, but have just checked and alas it’s missing. Ah, just checked, it has an Include checkbox for Blender Internal render, but nothing for Cycles.

    I know Cycles is made for more realistic renders and so isn’t inherently suited to Freestyle, but it sounds like Cycles will become the default renderer once complete, leaving blender internal to depreciate without maintenance. It might be a mistake to just assume that blender internal will always be there for Freestyle to make use of…

  • stephen: TK already said that, since freestyle only draws on the combined pass and loads blender mesh data, making freestyle compatible with cycles should be quite easy. i don’t believe it’s a priority at the moment though.

  • pancreasboy

    I second the request for svg export, or ultimately swf format to import into Flash files to keep their file size down.

  • Vicentecarro

    One more suggestion (or improvement about my own #3 suggestion),
    The include/exclude options should be completely redone. Currently you can only include OR exclude just ONE group. Each linestyle should allow different combinations of rules, for example:
    include group “characters” and include group “cars” but exclude group “car_wheels” and exclude group “set”
    Currently for setting up the previous example you would need to create new groups matching the rule, cause there is no way to do it directly.

    • Jesse

      Agreed. Not having multiple group functionality is extremely crippling.

  • Vicentecarro

    Update about my list:
    #6 “A working “quit” button, so you can instantly exit from the render when a problem (e.g. virtual memory usage) occurs.”. Done 😀
    T.K. Just committed a patch(r49015) for that feature, and it works 🙂
    One less.

  • Grafos

    Integrate with cycles? Don’t know if it’s feasible, just saying it would make me happy

  • Jesse

    A freestyle pass would be very nice, but something a little more advanced would be more desired. I would like to access individual line sets in the compositor. Perhaps a freestyle input node where you can choose which line set you want to use? 

    • Jesse

      You could also have Blender generate a new render layer for each line set, but the input node solutions seems more elegant imo.

  • Marcos Perez

    Freestyle has a lot of features but, 

  • Marcos Perez

    Freestyle has a lot of features but, for having and enjoying all its power it needs to offer its results as an independent layer in the nodes compositor.
    one layer for each kind of line or one layer with the final result? Those would be improvements, but having a layer is very important.

  • Gman

    ‘Selection by Vertex Group’ or ‘Selection by UV Island’. If such feature already exists, I have not found it…
    I cannot discover any means to assign unique line sets to these items. ‘Select by Edge Mark’ doesn’t really work too well for me.
    The reason why I want to do this is so that I can use 1 mesh, 1 material, and use a toon node shader with a texture controlling the colouration.
    I do not want to have to use multiple meshes and materials to accomplish detail contours. 
    See attached image.

  • thejikz

    I think it would be nice to have about 10 presets packaged with Freestyle. They would have to be fairly bullet proof settings. Things that are like the some of the scripts– Japan Big Brush, and then a solid style that could emulate blenders own “edge” setting. A hidden line with dotted lines, etc. this would give frustrated beginners something to work off of. It would be nice if there was a way to output parameter settings to a CSV of txt file or something so that it would be easier to export/import those settings for other users to use, rather than sharing an entire .blend file. 

  • @  jikz  thought about that, but main dev’s want the freestyle python api to be less c/c++ -ish and more pythonic. therefore i guess the python api will undergo quite some change still, making a script saving the paramater settings very time consuming to maintain, for now atleast.
    the idea is very good though.

    • thejikz

      You are right, I suppose it would be a back burner item for when Freestyle is stabilized. I envision a button in the Freestyle render options to “Import” and a button to “Export” settings. The problem would be backward compatibility if freestyle changes a lot, so I could see this as a headache, but it would be rather convenient!! 

  • RemoteCrab131

    It would be awsome if the lines could work with transparent materials/textures.
    I use Ztransparency with alpha maps and nodes on my car model, but it never worked out perfectly after 2 weeks of trying.
    car model pictures here:
    is it possible to set line styles inside the material tab, so this way each material can have a different line style? maybe still need the global line style for everything that does not have a material…
    I think that using a material tab to determine the line style is more easier and more functional than what it is now.. but they both have their advantages.

  • Portjos

    I was reading on blenders website that freestyle can be used for architectural visualisation. I’m an architect and blender would solve all my blender problems if only I could just use it for creating 2D drawings (I prefer not to use the dxf plugin, which never seems to work), which is why I’m so hopeful about Freestyle. However, forgive me if I’m ignorant in what freestyle can do, but for an architect to use it they would still need the following basic things (in order of importance):
    1. To be able to make sure drawings are to scale.
    2. To be able to add text and dimensions (and lines)
    3. To be able to put multiple views on the page.
    Hopefully someone recognises the opportunity here to accommodate a huge group of people that are dying to use blender!!

    • thejikz

      You may be interested here–
      Scaling can be done with Blender, but making Prints (plotting) may be very tricky.
      You can do text and dimensions, but it needs a lot of work to make standardized IMO

      Multiple views on page can be done via compositor.

      Blender would need major work to do what you (we) want as far as traditional CAD is concerned. Freestyle will be helpful for mainly visualization, but is not necessarily optimal for “Industry Standard” Drawings.

      I would like to see blender get more features, but in the mean time– I use DraftSight <– not open source, but FREEEEEE!

  • In my opinion the most important improvement would be a possibilty to use different line settings for different materials. Maybe the freestyle line set and stroke set should be placed in the material properties windows. So every user could easyly, link, unlink or exclude line set ups. The internal render is cool for freesyle. the usage of panoramic cams and an svg-export also would be great. But any implemenation to using different linesets for different materials would be really important. I am not a coder and maybe the RAM couldn`t deal with the data amount… .