linear speed, but curved motion: difficulty adjusting TCB interpolation to follow an arc


Ever since I began working with Synfig, I have been confused by waypoint interpolation, and I often find that settings which I think will give me a smooth arc instead cause a slow-fast-slow-fast movement, or my animations follow unexpected curves.
Maybe somebody can help me wrap my head around this using an example project (see attached).smooth-motion.sifz (3.22 KB)

Note: I know that this can be achieved by following a spline, but this is to help me understand movement with waypoint interpolation, so that is how I would like to do it. I have read the documentation on interpolation and I am still very confused.

Essentially what I would like is linear speed but a curved shape, between waypoint 1 and waypoint 4, following the blue line. I have tried editing the TCB settings and improved on the original default settings, but both attempts are still way off.
Often when I try to do this it ends up creating an obvious ‘corner’ at waypoints 2 and 3. I don’t want the circle to slow down at all as it passes them, I essentially want waypoints 2 & 3 to be invisible to the viewer. It seems like reducing the Tension setting improves this aspect, but I can’t get it to a constant linear speed.

Do I need to include extra waypoints either side of these (i.e. waypoint 0 and waypoint 5) in order to achieve the curve that I want?
Any other suggestions for more reliable/more accurate use of waypoint interpolation?


TCB interpolation is a mystery to me. I tried to use it sometimes but its overshooting can’t be easily controlled. I always thought TCB can be represented as a curve similar to two-vertex outline, so if you hit ‘Edit TCB’ you’d see a standard handles of a curve, but I can be totally mistaken.

Anyway, I am interested in this topic too. It would be nice to see some practical examples in which TCB interpolation is useful with a detailed explanation.


Yeah, I find it really frustrating too. It seems like such a basic element of animation, yet in Synfig, I am really stuck on it.

Do you have any other non-TCB tricks to get smooth arc movement as I described (other than following a spline)?


It seems to be impossible. Following a spline is the only choice I can think of. Theoretically, I think it’s possible to achieve what you want using TCB interpolation if it was implemented correctly.

As far as my knowledge goes, we have the following interpolations in Synfig:

  1. Clamped. It’s practically TCB interpolation with hardcoded parameters to prevent overshooting. Only ‘Temporal tension’ works in ‘Edit’ dialog.
  2. Constant. Does not interpolate. Value simple changes at specific waypoint.
  3. Ease In/Out. Value changes slowly at the end(In) or start(Out) of the waypoint. Only ‘Temporal tension’ works in ‘Edit’ dialog.
  4. Linear. No curve, just a straight line. Value changes linearly, without any slow in/out, overshooting, etc. Although, also accepts ‘Temporal tension’ in ‘Edit’ dialog, so you can make ‘easy in/out’ kind of interpolation out of linear.
  5. TCB. Seems powerful at first sight but inconvenient as hell. You have to change some magic numbers carefully playing animation after each change to see the result. Moreover, seems that ‘In’ direction will always affect ‘Out’ direction, so it’s literally impossible to make custom ‘TCB In’ with, let’s say, ‘Linear Out’. I hope I am just really missing something.

To conclude, interpolation in Synfig is a mess. If you want my harsh opinion:

  1. Clamped interpolation should be removed. It exists only to compensate badly implemented TCB interpolation.
  2. TCB interpolation should be made default without overshooting. Similar to Clamped in current state.
  3. User should be able to restrict parameters of TCB to ‘Only In’ and ‘Only Out’.
  4. TCB ‘Edit’ dialog must represent a graph (curve) with handles (Out/In), so user won’t have to suffer with magic numbers.

I am not strong with math, so above is mostly my observations, so take it with a grain of salt. I easily could’ve said something stupid if, for example, I get concept of TCB wrong. And sorry for the long post, hope I was able to clarify some things.


Thanks for your thoughts on this, hmm, yeah, it’s a bit of a mess alright! I completely agree about the need for visual handles to set interpolation rather than trying to get TCB to work by throwing numbers at it :slight_smile:

I just realized that this post should be in the Synfig related help forum category, not 'general discussion - but I can’t see a way to move it.
If an admin sees this, please feel free to move it!


Done :mrgreen: