Making Synfig easier to use brainstorming


Ah, somehow I didn’t receive a mail notification of your response. Thanks for the tips! I’ll try em.

Another feature request, although I don’t know how we could go about it: an innovative and efficient way to manage layers, because managing layers in Synfig is tedious.

We already have Encapsulation, but we can take this to another level. How about having a universal “Layer” option while every bline or region would be “Paths” inside the layers? Like every “Shirt Layer” would have complex paths that make up tie, pockets, collars, etc.? These layers can only be expanded for advanced analyses for path structure within that layer, but otherwise they remain closed. This way, you don’t need to rename each and every path in a project, especially since you’re working with hundreds of layers at a time. Another thing we could add to it is a “universal modifier”, as I mentioned in the previous post, at the very top of the layer stack; this way, we immensely speed up and tidy up the animation process.

Anywhos, that’s just a suggestion.

EDIT: Also, a “collapsible” arrow for Origins in Transform Layer. Reason being sometimes we like to have X and Y keyframing separate.

Also, an easier way to edit animation curves, as we do in Blender? It’d be great to have!


I think that #1 thing that should be done is to redesign editor component to be more like Inkscape.

  • Being able to fill region with pretty much anything, like gradient or tiled image (ok, I know last one isn’t in Inkscape, but it’d be nice feature) without playing with blend methods and layers (Alpha, Mix, etc.). Blend methods should stay as they’re very powerful, especially if you want to mix cartoon with real video, but for fills I think it’s an overkill.
  • Tools available in Inkscape and not in Synfig, like carving tool which allows you to change path by drawing, Calligraphy tool, etc.

#63 … ahead.html

There are many points we can learn from the above entry, for example, layer abuse issue. In the commets, the NODES vs LAYERS discussion is quite interesting as well.


I agree with jcome on layer abuse. Much, much time is used to select different layers. It’s very powerful but could probably be streamlined a bit.

That said one small thing that would speed up usage considerably is display of currently clicked layer in layers panel. If the layer is not already visible in the panel the view jumps to displaying it. In doing so the layer is displayed at the very top of the stack. Most often the layer I click is not actually the layer I want to manipulate but a layer on top of this, like a rotate layer, a paste canvas etc. I then have to click a layer, say a leg, the region layer gets selected, I need to scroll up in the layers list and then click on the desired rotate layer.

If the current layer was to be displayed in the middle of the stack or even with just 3-4 layers above it we will be able to directly click the desired layer after clicking in the canvas without having to first scroll up. Will be a huge timesaver.

Also a layer lock mode would be useful. Locking background layers from (canvas click) selection etc.


layer lock: Encapsulate and children lock is the first step. Disable layer selection completely is possible. Maybe adding a new column in the layer stack.
unwanted layer clicks: Use groups to select the desired layers.

But yes, more options for layer selection/handling would be great.


I can’t wait to see these ideas in The GIMP. But I can’t help thinking that to apply those ideas to Synfig would be tough. What you’d have is layers that exist as they do now in the XML for Synfig, but in Synfig Studio you’d have “Synfig Studio layers” that contain collections of “Synfig layers” chosen by the user.

It makes my brain hurt thinking about how you’d code that! :laughing:


Move Vertices up to the very top in the params panel (or at least very high).

When animating vertices is one of the aspects that is used the most. Now Vertices is at the bottom and I find myself constantly having to scroll down to get to the vertices waypoints.
Other often used params is located high in the list like origin, colour, amount and z-depth, followed by less used params like invert, antialias etc. And then Vertices at the bottom…
Much time scrolling will be saved if Vertices is moved up in the list order.


Can’t agree more on it. We need to figure out more details before go to improve parameters’ order.
At the first, we can have a well-ordered parameters list for each layer, it should be consistent cross-layers, and maybe (just maybe), we can make those parameters reordered-able in favor of a user.


When animating vertices the thing that can cause most problems to me is that the Time Track panel doesn’t line up with the parameters in the Params panel. That means I often animate the wrong vertex by mistake.

If I could have anything, I think it would be great if you could “tear off” the vertices into a separate vertices panel - that would make editing vertices much easier, as then they’d always be at the top. It might also be good if there was a way of uncollapsing all the vertices parameters so you could get to all of them immediately without having to click on loads of little arrows to display them all the time.


instead of “tear off”, how about if user can hide other parameters he is not working on or he does not want to see at a moment ?


If I had lots of Region layers, I would find it far more useful to look at a vertices panel than to got to the params panel and hide everything apart from vertices each time.

If I could just, for instance, drag the vertices row to make them appear in their own panel that would be the quickest way I could think of to edit them. I would want to make my own params panel I was interested in for a particular job. Each job often requires you edit a particular set of parameters - but I wouldn’t want to change the main params panel. This would just be an additional view.


It reminds me the new (CS6) photoshop layer filter:
We can have parameters filters:
By Name:
By Attribute:
By Type: Bool, Integer, etc… and Converted, Exposed, Linked, Animated

attached is photoshop layer filters in CS6 public beta version
Screen Shot 2012-03-26 at 下午2.24.52.png
Screen Shot 2012-03-26 at 下午2.25.43.png


I’ve felt trapped by my own words here: [Categorizing Parameters)
Obviously I’ve not taken care of that! :blush: :blush:

Anyway I have some things to mention:

  1. Parameters order are defined by the get_param_vocabulary function. So their position are hardcoded there.
  2. About show hide parameters I had always in mind to have to set of levels of parameters: begginers, expert. Its behavior can be: hardcoded or customized.
  3. One additional option is to hide/show (by user shortcut) animated and not animated parameters. I don’t know if it would be useful.
  4. Regarding to rows alignement the solution for that is to use hardcoded letter sizes (like Gimp does) for the whole application interface. That would avoid theme letter size variations and the misalingment of the rows between one panel and other. Alternatively the parameters panel shows one additional column with the waypoints but it hasn’t a timebar widget on it. Fussion time track panel to parameters panel looks like the best solution.



Seems a powerful filter system can achieve it. I am going to draw a mockup for this design later on.


Don’t worry, We all should have the same feeling that you are going to take more advanced/complex/powerful features implementations. :smiley:
I think this kind of issue should be started by some other developers who is not so skilled in coding for synfig, as me :mrgreen:


Hi, I’ve been Using synfig for a while, and it’s a great program, but I have a few Ideas on how it could be improved.

  I feel that while synfig has perhaps the best vector art morphing animation set up out there, its frame by frame applicability feels sub-par. I know it's possible to do it with constant way points, but it just lacks the free flow that other programs have and that most artists and animators enjoy. My suggestions is create a primitive brush tool one that's designed to paints simple vector arts that are not meant to be morphed, or at least not as freely as, blines. These would be mainly designed for simpler frame by frame purposes but would be easier to draw via mouse or tablet than the more complex bline system.
  For conveniences sake I think it be best that these paint lines would be placed in there own separate panel that contains its own special types of canvases, for the descriptions sake I'll call them drawing canvases. all the painted lines are fused into a selected drawing canvas, and each drawing canvas created also creates what could be called a drawing lock layer. The drawing lock layer would go into the regular layers panel and can be placed like any other layer. the drawings of each individual drawing canvas would render depending on where the drawing lock layer is located in the layers panel and would be effected by stretch, transform, rotate and blending effects like any other layer. Adding a zero amount boolean, designed similar to the time loop layer with a start and end time for the layers to exist and a Null Way point, which lowers the amount of any layer affected by it to zero till a new waypoint appears, would also be convenient. Since the most complex animations are typically a combination of frame by frame and tween's, this would appeal to more experienced animators out there, and the more free style drawing and simpler frame by frame would help make the transition easier for newer less experienced users. I think combining Synfigs amazing and powerful bline layer system with the more archaic, yet still somewhat valuable for creative purposes, brush systems of other vector and raster art programs would let synfig easily surpass almost everything out there. 

Also an unrelated idea, stretch and rotate parameters should exist inside the standard paste canvas param menu since they’re so commonly used.


I feel the need to re-elaborate cause I’m bad at explaining things. For one I’m not suggesting brush lines, since those are obviously a long way off for synfig. What I’m suggesting is a special layer where everything drawn on it is fused as one layer similar to Inkscape’s Union Tool, and that everything built on this layer could be erased or added onto without it being considered a new layer. That way i could have 1 or 2 layers for my eyeball instead of 13 and i could use animate editing mode to simply erase the contents of the layer and redraw as something new to make a more streamlined frame by frame process. It would also be of help if synfig improved its drawing tool to be more like inkscapes pencil tool. Thanks hope that I was clearer there.


You explained it very well in the first post. The idea is similar to this one (from feature request area):

The problem aren’t the features but the zero people working on implement them.
I’m working on add Cairo render to Synfig right now (in my few spare time) and as far as I know, nobody else is working with Synfig code in a continuous way.

Thanks for contribute to the brainstorm ideas anyway. I hope I can have more time to code and that someone else step in on Synfig coding.


I saw this in the UI Redesign - Param Window (Timetrack, Curve included) discussion

I’ve got one suggestions, because this comment reminds me that if something annoys me about Synfig, is having a houmongous ammount of layers (it at least doubles-up) because the outline layers are separated from region layers, so I came up with two possibilities to unclutter the thing:
It can act like most of vectorial software, grouping both region and outline layers in one “figure” layer (or region-outline-solid color, doesn’t matter) with the possibility of activating and deactivating the outline, solid or color layer. But in the end, even being separated layers, the GUI would show them as one layers with three elements that can be toggled.
But wait, what if I want to add some gradient between the outline and color layer?, well, that would have two possible solutions:

  • Letting the user separate the “figure” in outline and region, so he can put anything he likes between them.
  • Using segments of one unit of z-index. Something like:
    • 1 unit belongs to the whole “figure” layer.
    • Anything between 0.9999… and 0.00…1 is some point between the outline and the region.


If there’s something I can’t live without in Blender, it’s tools like “Box Selection” (hitting “B” on keyboard) and hitting “X / DEL” for quickly deleting selected. There are many more such shortcuts I use, but right now these come to mind.

Would it be possible to implement these in Synfig, for working on the Timetrack keyframes?