Blender Keyframe Interpolation: Choose Bezier, Linear, or Constant
Decide between Blender's Bezier, Linear, and Constant keyframe interpolation based on whether your motion needs easing, steady speed, or instant switches.
08 Aug 2026, 06:00 UTC

You need a camera to ease into a stop, but it arrives at the target frame and keeps drifting. Or a mechanical piston needs to reverse direction instantly, yet it slows down before changing course. The problem is usually not the keyframes themselves—it is the interpolation mode Blender uses to calculate values between them.
Useful takeaway: Use Bezier for organic easing, Linear for constant mechanical speed, and Constant for instant value switches. Set the mode per f-curve in the Graph Editor, then verify by scrubbing the timeline and inspecting the curve shape.
Decision and constraints
Before choosing a mode, answer three questions:
- Is the motion organic (characters, cameras) or mechanical (conveyors, pistons)?
- Does the object need to stop or reverse instantly at a keyframe?
- Can you tolerate slight overshoot before a target value?
These constraints apply to object transforms, shape keys, and custom properties. Blender stores each animated property as an f-curve—a curve that maps frame numbers to values—and interpolation determines how Blender draws the line between keyframe points on that curve.
Interpolation modes compared
| Mode | Best for | Motion behavior | Overshoot risk | Typical use case |
|---|---|---|---|---|
| Bezier | Organic motion | Curved acceleration and deceleration between keys | Yes | Character movement, camera easing, facial shapes |
| Linear | Constant speed | Straight line between keys; no acceleration | No | Rotating fans, conveyor belts, steady dolly moves |
| Constant | Instant switches | Holds the current value until the next key, then jumps | No | Visibility toggles, mechanical switches, hold frames |
Trade-offs in practice
Bezier produces smooth motion, but the automatic handles can cause the object to overshoot a target before settling. You must manually adjust handles in the Graph Editor to remove unwanted wobble. It is also harder to predict exact arrival times without inspecting the curve.
Linear is predictable: the object covers equal distance per frame. The downside is abrupt direction changes at each keyframe, which can look robotic or cause vibration in rigid-body setups.
Constant eliminates interpolation math entirely. The value stays locked until the next keyframe, then changes immediately. Use it when a sudden jump is the intended behavior; otherwise it looks like a broken animation.
Set and verify interpolation
- Open Blender and select the object you want to animate.
- Move to the first frame, position the object, and press
Ito insert a location keyframe. - Move to a later frame, reposition the object, and insert another keyframe.
- Open the Graph Editor from the editor type menu.
- Select the f-curves you want to change. Press
Ato select all visible curves, or click individual curves to target one property. - Press
Tto open the interpolation menu and choose Bezier, Linear, or Constant. - Scrub the timeline playhead between the two keyframes. The object should ease (Bezier), move at steady speed (Linear), or hold then snap (Constant).
- Inspect the Graph Editor: Bezier curves show curved segments and handles, Linear shows straight segments, and Constant shows a step pattern.
No special permissions are required; this runs entirely in Blender's user interface. If you prefer the Python console, run code such as bpy.context.object.animation_data.action.fcurves[0].keyframe_points[0].interpolation = 'LINEAR', replacing the object and f-curve index with your own. Incorrect indices will raise an error, and changing many curves by script can alter timing unexpectedly.
Limitations and diagnostic checks
- Interpolation is stored per f-curve, not per object. Changing one curve (for example, X location) does not affect Y or Z location.
- Constant mode has no in-between values. If you need motion blur on a snapped object, the blur may not appear as expected because Blender interpolates motion vectors differently.
- NLA strips can override keyframe interpolation depending on the strip's blend mode. If your animation behaves differently in the NLA editor than in the Graph Editor, check the active strip settings.
- Large numbers of keyframes with Bezier interpolation can slow viewport playback because Blender must evaluate curve handles for every frame.
Practical verification
Render a short range covering both keyframes and compare it to the viewport scrub. If the rendered motion differs from what you saw in the Graph Editor, check for drivers, NLA overrides, or constraints that may be modifying the transform after evaluation.
Reverting changes
Because changing interpolation modifies animation data, press Ctrl+Z to undo immediately after the change. To restore a specific curve later, select it in the Graph Editor and choose the previous interpolation mode from the T menu.
0 replies
A thoughtful contribution can make all the difference. Be the first to share one.