Graph Operators


Bake selected F-Curves to a set of sampled points defining a similar curve


Simplify F-Curves by removing closely spaced keyframes

Parameters:threshold (float in [0, inf], (optional)) – Threshold
bpy.ops.graph.click_insert(frame=1.0, value=1.0)

Insert new keyframe at the cursor position for the active F-Curve

  • frame (float in [-inf, inf], (optional)) – Frame Number, Frame to insert keyframe on
  • value (float in [-inf, inf], (optional)) – Value, Value for keyframe on
bpy.ops.graph.clickselect(extend=False, column=False, curves=False)

Select keyframes by clicking on them

  • extend (boolean, (optional)) – Extend Select, Toggle keyframe selection instead of leaving newly selected keyframes only
  • column (boolean, (optional)) – Column Select, Select all keyframes that occur on the same frame as the one under the mouse
  • curves (boolean, (optional)) – Only Curves, Select all the keyframes in the curve

Copy selected keyframes to the copy/paste buffer

bpy.ops.graph.cursor_set(frame=0, value=0.0)

Interactively set the current frame number and value cursor

  • frame (int in [-300000, 300000], (optional)) – Frame
  • value (float in [-inf, inf], (optional)) – Value

Remove all selected keyframes


Make a copy of all selected keyframes

bpy.ops.graph.duplicate_move(GRAPH_OT_duplicate=None, TRANSFORM_OT_transform=None)

Make a copy of all selected keyframes and move them

  • GRAPH_OT_duplicate (GRAPH_OT_duplicate, (optional)) – Duplicate Keyframes, Make a copy of all selected keyframes
  • TRANSFORM_OT_transform (TRANSFORM_OT_transform, (optional)) – Transform, Transform selected items by mode type

Set easing type for the F-Curve segments starting from the selected keyframes

Parameters:type (enum in [‘AUTO’, ‘EASE_IN’, ‘EASE_OUT’, ‘EASE_IN_OUT’], (optional)) –


  • AUTO Automatic Easing, Easing type is chosen automatically based on what the type of interpolation used (e.g. ‘Ease In’ for transitional types, and ‘Ease Out’ for dynamic effects).
  • EASE_IN Ease In, Only on the end closest to the next keyframe.
  • EASE_OUT Ease Out, Only on the end closest to the first keyframe.
  • EASE_IN_OUT Ease In and Out, Segment between both keyframes.

Fix large jumps and flips in the selected Euler Rotation F-Curves arising from rotation values being clipped when baking physics


Set extrapolation mode for selected F-Curves

Parameters:type (enum in [‘CONSTANT’, ‘LINEAR’, ‘MAKE_CYCLIC’, ‘CLEAR_CYCLIC’], (optional)) –


  • CONSTANT Constant Extrapolation, Values on endpoint keyframes are held.
  • LINEAR Linear Extrapolation, Straight-line slope of end segments are extended past the endpoint keyframes.
  • MAKE_CYCLIC Make Cyclic (F-Modifier), Add Cycles F-Modifier if one doesn’t exist already.
  • CLEAR_CYCLIC Clear Cyclic (F-Modifier), Remove Cycles F-Modifier if not needed anymore.
bpy.ops.graph.fmodifier_add(type='NULL', only_active=True)

Add F-Modifiers to the selected F-Curves

  • type (enum in [‘NULL’, ‘GENERATOR’, ‘FNGENERATOR’, ‘ENVELOPE’, ‘CYCLES’, ‘NOISE’, ‘PYTHON’, ‘LIMITS’, ‘STEPPED’], (optional)) –


    • NULL Invalid.
    • GENERATOR Generator, Generate a curve using a factorized or expanded polynomial.
    • FNGENERATOR Built-In Function, Generate a curve using standard math functions such as sin and cos.
    • ENVELOPE Envelope, Reshape F-Curve values - e.g. change amplitude of movements.
    • CYCLES Cycles, Cyclic extend/repeat keyframe sequence.
    • NOISE Noise, Add pseudo-random noise on top of F-Curves.
    • PYTHON Python.
    • LIMITS Limits, Restrict maximum and minimum values of F-Curve.
    • STEPPED Stepped Interpolation, Snap values to nearest grid-step - e.g. for a stop-motion look.
  • only_active (boolean, (optional)) – Only Active, Only add F-Modifier to active F-Curve

Copy the F-Modifier(s) of the active F-Curve


Add copied F-Modifiers to the selected F-Curves


Place the cursor on the midpoint of selected keyframes


Clear F-Curve snapshots (Ghosts) for active Graph Editor


Create snapshot (Ghosts) of selected F-Curves as background aid for active Graph Editor


Set type of handle for selected keyframes

Parameters:type (enum in [‘FREE’, ‘VECTOR’, ‘ALIGNED’, ‘AUTO’, ‘AUTO_CLAMPED’], (optional)) –


  • FREE Free.
  • VECTOR Vector.
  • ALIGNED Aligned.
  • AUTO Automatic.
  • AUTO_CLAMPED Auto Clamped, Auto handles clamped to not overshoot.

Set interpolation mode for the F-Curve segments starting from the selected keyframes

Parameters:type (enum in [‘CONSTANT’, ‘LINEAR’, ‘BEZIER’, ‘SINE’, ‘QUAD’, ‘CUBIC’, ‘QUART’, ‘QUINT’, ‘EXPO’, ‘CIRC’, ‘BACK’, ‘BOUNCE’, ‘ELASTIC’], (optional)) –


  • CONSTANT Constant, No interpolation, value of A gets held until B is encountered.
  • LINEAR Linear, Straight-line interpolation between A and B (i.e. no ease in/out).
  • BEZIER Bezier, Smooth interpolation between A and B, with some control over curve shape.
  • SINE Sinusoidal, Sinusoidal easing (weakest, almost linear but with a slight curvature).
  • QUAD Quadratic, Quadratic easing.
  • CUBIC Cubic, Cubic easing.
  • QUART Quartic, Quartic easing.
  • QUINT Quintic, Quintic easing.
  • EXPO Exponential, Exponential easing (dramatic).
  • CIRC Circular, Circular easing (strongest and most dynamic).
  • BACK Back, Cubic easing with overshoot and settle.
  • BOUNCE Bounce, Exponentially decaying parabolic bounce, like when objects collide.
  • ELASTIC Elastic, Exponentially decaying sine wave, like an elastic band.

Insert keyframes for the specified channels

Parameters:type (enum in [‘ALL’, ‘SEL’], (optional)) – Type

Flip selected keyframes over the selected mirror line

Parameters:type (enum in [‘CFRA’, ‘VALUE’, ‘YAXIS’, ‘XAXIS’, ‘MARKER’], (optional)) –


  • CFRA By Times over Current Frame, Flip times of selected keyframes using the current frame as the mirror line.
  • VALUE By Values over Cursor Value, Flip values of selected keyframes using the cursor value (Y/Horizontal component) as the mirror line.
  • YAXIS By Times over Time=0, Flip times of selected keyframes, effectively reversing the order they appear in.
  • XAXIS By Values over Value=0, Flip values of selected keyframes (i.e. negative values become positive, and vice versa).
  • MARKER By Times over First Selected Marker, Flip times of selected keyframes using the first selected marker as the reference point.
bpy.ops.graph.paste(offset='START', merge='MIX')

Paste keyframes from copy/paste buffer for the selected channels, starting on the current frame

  • offset (enum in [‘START’, ‘END’, ‘RELATIVE’, ‘NONE’], (optional)) –

    Offset, Paste time offset of keys

    • START Frame Start, Paste keys starting at current frame.
    • END Frame End, Paste keys ending at current frame.
    • RELATIVE Frame Relative, Paste keys relative to the current frame when copying.
    • NONE No Offset, Paste keys from original time.
  • merge (enum in [‘MIX’, ‘OVER_ALL’, ‘OVER_RANGE’, ‘OVER_RANGE_ALL’], (optional)) –

    Type, Method of merging pasted keys and existing

    • MIX Mix, Overlay existing with new keys.
    • OVER_ALL Overwrite All, Replace all keys.
    • OVER_RANGE Overwrite Range, Overwrite keys in pasted range.
    • OVER_RANGE_ALL Overwrite Entire Range, Overwrite keys in pasted range, using the range of all copied keys.

Automatically set Preview Range based on range of keyframes

Toggle display properties panel


Add keyframes on every frame between the selected keyframes


Toggle selection of all keyframes

Parameters:invert (boolean, (optional)) – Invert
bpy.ops.graph.select_border(gesture_mode=0, xmin=0, xmax=0, ymin=0, ymax=0, extend=True, axis_range=False, include_handles=False)

Select all keyframes within the specified region

  • gesture_mode (int in [-inf, inf], (optional)) – Gesture Mode
  • xmin (int in [-inf, inf], (optional)) – X Min
  • xmax (int in [-inf, inf], (optional)) – X Max
  • ymin (int in [-inf, inf], (optional)) – Y Min
  • ymax (int in [-inf, inf], (optional)) – Y Max
  • extend (boolean, (optional)) – Extend, Extend selection instead of deselecting everything first
  • axis_range (boolean, (optional)) – Axis Range
  • include_handles (boolean, (optional)) – Include Handles, Are handles tested individually against the selection criteria

Select all keyframes on the specified frame(s)

Parameters:mode (enum in [‘KEYS’, ‘CFRA’, ‘MARKERS_COLUMN’, ‘MARKERS_BETWEEN’], (optional)) – Mode
bpy.ops.graph.select_lasso(path=None, deselect=False, extend=True)

Select keyframe points using lasso selection

  • path (bpy_prop_collection of OperatorMousePath, (optional)) – Path
  • deselect (boolean, (optional)) – Deselect, Deselect rather than select items
  • extend (boolean, (optional)) – Extend, Extend selection instead of deselecting everything first
bpy.ops.graph.select_leftright(mode='CHECK', extend=False)

Select keyframes to the left or the right of the current frame

  • mode (enum in [‘CHECK’, ‘LEFT’, ‘RIGHT’], (optional)) – Mode
  • extend (boolean, (optional)) – Extend Select

Deselect keyframes on ends of selection islands


Select keyframes occurring in the same F-Curves as selected ones


Select keyframes beside already selected ones


Apply weighted moving means to make selected F-Curves less bumpy


Snap selected keyframes to the chosen times/values

Parameters:type (enum in [‘CFRA’, ‘VALUE’, ‘NEAREST_FRAME’, ‘NEAREST_SECOND’, ‘NEAREST_MARKER’, ‘HORIZONTAL’], (optional)) –


  • CFRA Current Frame, Snap selected keyframes to the current frame.
  • VALUE Cursor Value, Set values of selected keyframes to the cursor value (Y/Horizontal component).
  • NEAREST_FRAME Nearest Frame, Snap selected keyframes to the nearest (whole) frame (use to fix accidental sub-frame offsets).
  • NEAREST_SECOND Nearest Second, Snap selected keyframes to the nearest second.
  • NEAREST_MARKER Nearest Marker, Snap selected keyframes to the nearest marker.
  • HORIZONTAL Flatten Handles, Flatten handles for a smoother transition.
bpy.ops.graph.sound_bake(filepath="", filter_blender=False, filter_backup=False, filter_image=False, filter_movie=True, filter_python=False, filter_font=False, filter_sound=True, filter_text=False, filter_btx=False, filter_collada=False, filter_folder=True, filemode=9, display_type='FILE_DEFAULTDISPLAY', low=0.0, high=100000.0, attack=0.005, release=0.2, threshold=0.0, use_accumulate=False, use_additive=False, use_square=False, sthreshold=0.1)

Bakes a sound wave to selected F-Curves

  • filepath (string, (optional, never None)) – File Path, Path to file
  • filter_blender (boolean, (optional)) – Filter .blend files
  • filter_backup (boolean, (optional)) – Filter .blend files
  • filter_image (boolean, (optional)) – Filter image files
  • filter_movie (boolean, (optional)) – Filter movie files
  • filter_python (boolean, (optional)) – Filter python files
  • filter_font (boolean, (optional)) – Filter font files
  • filter_sound (boolean, (optional)) – Filter sound files
  • filter_text (boolean, (optional)) – Filter text files
  • filter_btx (boolean, (optional)) – Filter btx files
  • filter_collada (boolean, (optional)) – Filter COLLADA files
  • filter_folder (boolean, (optional)) – Filter folders
  • filemode (int in [1, 9], (optional)) – File Browser Mode, The setting for the file browser mode to load a .blend file, a library or a special file

    Display Type

    • FILE_DEFAULTDISPLAY Default, Automatically determine display type for files.
    • FILE_SHORTDISPLAY Short List, Display files as short list.
    • FILE_LONGDISPLAY Long List, Display files as a detailed list.
    • FILE_IMGDISPLAY Thumbnails, Display files as thumbnails.
  • low (float in [0, 100000], (optional)) – Lowest frequency, Cutoff frequency of a high-pass filter that is applied to the audio data
  • high (float in [0, 100000], (optional)) – Highest frequency, Cutoff frequency of a low-pass filter that is applied to the audio data
  • attack (float in [0, 2], (optional)) – Attack time, Value for the hull curve calculation that tells how fast the hull curve can rise (the lower the value the steeper it can rise)
  • release (float in [0, 5], (optional)) – Release time, Value for the hull curve calculation that tells how fast the hull curve can fall (the lower the value the steeper it can fall)
  • threshold (float in [0, 1], (optional)) – Threshold, Minimum amplitude value needed to influence the hull curve
  • use_accumulate (boolean, (optional)) – Accumulate, Only the positive differences of the hull curve amplitudes are summarized to produce the output
  • use_additive (boolean, (optional)) – Additive, The amplitudes of the hull curve are summarized (or, when Accumulate is enabled, both positive and negative differences are accumulated)
  • use_square (boolean, (optional)) – Square, The output is a square curve (negative values always result in -1, and positive ones in 1)
  • sthreshold (float in [0, 1], (optional)) – Square Threshold, Square only: all values with an absolute amplitude lower than that result in 0

Reset viewable area to show full keyframe range

Parameters:include_handles (boolean, (optional)) – Include Handles, Include handles of keyframes when calculating extents

Reset viewable area to show selected keyframe range

Parameters:include_handles (boolean, (optional)) – Include Handles, Include handles of keyframes when calculating extents

Previous topic

Gpencil Operators

Next topic

Group Operators