How to clean f-curves that have linear lines so that the only keyframes that are kept after the cleanse are the peaks and lowest keyframes where the curve's slope changes.

What I have tried:

  1. The Decimate (ratio) command - after a certain percentage seems to change the keyframes interpolation to not linear and doesn't keep the peaks and valleys but tries to form an arc between the two points.
  2. The Clean Keyframes command - seems to remove keyframes in a constant interval betweeen keyframes but after a certain threshold it doesn't keep the peaks and valleys.

Is there a way to clean hundreds of objects that have similar animations of their location data? Attached is an image illustrating the keyframes that should not be removed.

clean fcurves keep peaks valleys

Context: these objects are from a particle simulation that had its particles motion converted to keyframes using the script given in this answer: Convert particle system to animated meshes


1 Answer 1


The function Key > Decimate (Allowed change) seems to work pretty well in this task, both with "Error margin" and "Ratio" behaviour.

  • $\begingroup$ +1 ... how could missed there are two decimations :) Thanks $\endgroup$
    – vklidu
    Dec 9, 2022 at 19:08

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .