My goal is to make the blur filter value, size X for instance, changing while the movie plays. I want the blur going up and down in time like a sinus function, for instance size_X = 1 + sin(time).

So, I right clicked onto the size X value of in the blur filter of the video sequence editor and added a driver. Then, I went into the graph editor under drivers.

But from this point on, I do not know what to do, in order to make the time of the video clip the variable of the driver.


2 Answers 2


Why not use the cyclic function in the F-fcurve editor? Make 3 keyframes, 0,1,0 then extrapolate modifier cyclic.

Cyclic blur

Then you can spread them apart with scale S-key, constrain horizontal with X key


Can use the new use self feature of drivers. Here I'm using the text editor to edit a driver method. The strip is passed to this function, as is the current frame of the scene (the name frame is known to the driver namespace).

Below is a very simple example. You may wish to investigate using other properties of the strip, for example self.frame_start is the frame on which the strip starts, self.frame_duration is its length etc.

You will need to run the script again after making edits.

import bpy
from math import sin

def blurdriver(strip, frame):
    # strip the blur strip
    # frame scene.frame_current
    # strip_frame_start = strip.frame_start

    #print(strip, frame)
    return 1 + sin(frame)

# register to the driver namespace

bpy.app.driver_namespace["bd"] = blurdriver

Run this script and the method "bd" will be available to drivers. As shown below, where self is the strip itself, and frame is the current frame of the scene.

enter image description here

If you want the script to auto run when blender file starts, give it a .py extension in name, and click the register button. enter image description here


You must log in to answer this question.

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