Blender • Animation Basics

Keyframe Animation — Insert and edit keyframes for transforms

Master the foundational technique of placing and modifying keyframes to bring objects to life through location, rotation, and scale changes in Blender.

A three-dimensional axis with a modeled cube and movement controls.
Inside this lesson 10 sections 5 questions 8 figures

SECTION 1

Historical Context & Motivation

Long before digital tools existed, animators wrestled with the fundamental challenge of depicting movement across time. Traditional cel animation solved this problem by requiring artists to draw every single frame by hand—a painstaking process that demanded extraordinary labor even for short sequences. The concept of keyframe animation emerged as a critical optimization: senior animators would draw only the most important poses (the "key" frames), and junior artists—called in-betweeners—would fill in the transitional drawings. This division of labor became the backbone of studios like Disney and Fleischer throughout the golden age of animation.

1914 • Winsor McCay's Gertie the Dinosaur

One of the earliest character animations, Winsor McCay drew thousands of individual frames by hand, demonstrating both the power and immense labor of frame-by-frame animation.

1937 • Disney's Keyframe Workflow

For Snow White and the Seven Dwarfs, Disney formalized the key-pose and in-between workflow, establishing the principle that defining critical poses and interpolating between them was the most efficient path to fluid motion.

1978 • Computer-Assisted In-Betweening

Researchers at NYIT and Lucasfilm began developing software capable of automatically generating intermediate frames between artist-defined key poses, laying the groundwork for modern 3D keyframing.

1995 • Blender's First Public Release

Originally developed at NeoGeo by Ton Roosendaal, Blender introduced an integrated keyframe animation system within a full 3D suite, eventually becoming open-source in 2002 and democratizing professional-grade animation tools.

2018–Present • Blender 2.80+ and Modern Keyframing

The overhauled Blender interface introduced streamlined keyframe insertion, the improved Dope Sheet and Graph Editor, and auto-keying features that make keyframe-based transform animation more intuitive and production-ready than ever.

The central question that keyframe animation addresses remains the same one McCay faced over a century ago: how do you efficiently encode the illusion of continuous motion from a finite number of defined states? In Blender's 3D environment, the answer lies in specifying an object's transform properties—location, rotation, and scale—at specific frames and letting the software compute everything in between.

SECTION 2

Core Principles & Definitions

Before placing a single keyframe in Blender, it is essential to understand the vocabulary and underlying logic of the system. A keyframe is a stored snapshot of one or more property values at a specific point on the timeline. When Blender encounters two keyframes for the same property at different frames, it performs interpolation—automatically calculating intermediate values so the transition appears smooth. The three fundamental transform channels available for keyframing on every object are Location (translation along X, Y, Z axes), Rotation (angular orientation around X, Y, Z axes), and Scale (size multiplier along X, Y, Z axes). Together, these nine channels constitute the object's complete spatial description in any given frame.

1

Keyframe

A recorded value of a property at a specific frame number. Represented as a diamond marker on Blender's timeline. Inserting a keyframe tells Blender: "at this moment, lock this value."
2

Interpolation

The mathematical process Blender uses to calculate property values between two keyframes. Default mode is Bézier (smooth ease-in/ease-out), but linear and constant modes are also available.
3

F-Curve

A function curve visible in the Graph Editor that plots a property's value over time. Each transform channel (e.g., Location X) has its own F-Curve, and editing its shape directly changes the animation.
4

Transform Channels

The nine animatable axes: Location X/Y/Z, Rotation X/Y/Z, and Scale X/Y/Z. You can keyframe all nine simultaneously or target individual channels for precise control.
5

Auto-Keying

A workflow mode (toggled via the record button on the timeline) that automatically inserts keyframes whenever you move, rotate, or scale an object, removing the need for manual insertion.
✦

KEY TAKEAWAY

Think of keyframes like pins on a clothesline. You pin a shirt at two points, and gravity determines the shape of the fabric hanging between them. In Blender, you pin property values at specific frames, and the interpolation algorithm determines the shape of the motion between those pins. Fewer pins placed at the right moments produce a cleaner, more controllable drape—just as fewer, well-placed keyframes produce cleaner, more editable animation.

SECTION 3

Visual Explanation — The Timeline & Keyframe Workflow

Blender Timeline — Keyframe Insertion WorkflowTIMELINE11020304050607080K1K2K3Frame 1 (K1)CubeLoc: (0, 0, 0)Rot: (0°, 0°, 0°)Scl: (1, 1, 1)Frame 30 (K2)CubeLoc: (3, 0, 2)Rot: (0°, 0°, 45°)Scl: (1.5, 1.5, 1.5)Frame 60 (K3)CubeLoc: (5, 0, 0)Rot: (0°, 0°, 90°)Scl: (0.8, 0.8, 0.8)interp.interp.Shortcut ReferenceIInsert Keyframe MenuAlt + IDelete KeyframeTSet Interpolation TypeGGrab / MoveRRotateSScaleTip: Press I over the 3D Viewport, then select "Location Rotation Scale" (LocRotScale) to keyframe all transforms at once.
This diagram illustrates the core keyframe workflow: three keyframes (K1, K2, K3) are placed at frames 1, 30, and 60 on the timeline. Each keyframe stores the cube's Location, Rotation, and Scale values. Blender interpolates all intermediate frames automatically. The shortcut reference at the bottom summarizes the essential hotkeys for inserting and manipulating keyframes.

The diagram above encapsulates the entire mental model you need for keyframe animation in Blender. Notice that each keyframe (represented by the yellow diamond markers labeled K1, K2, and K3) stores a complete set of transform values for the cube at that moment. Between K1 at frame 1 and K2 at frame 30, Blender calculates every intermediate position, rotation angle, and scale factor using its default Bézier interpolation. The result is a smooth ease-in and ease-out motion that mimics the way physical objects accelerate and decelerate. You control the broad strokes by defining the key poses; Blender handles the tedious frame-by-frame computation that once required armies of in-betweeners.

💡

Workflow Tip

Always scrub through the timeline after inserting keyframes to verify the interpolated motion looks correct. If an object takes a strange path between two keyframes (for instance, rotating the long way around), you may need to add an intermediate keyframe or adjust the F-Curves in the Graph Editor.

SECTION 4

How Interpolation Works — The Mathematics of In-Betweening

While you do not need to manually compute interpolation values—Blender handles that—understanding the underlying mathematics empowers you to predict and control how your animations will behave. The most fundamental interpolation method is linear interpolation (often abbreviated lerp), which produces constant-speed transitions. Blender's default mode, however, is Bézier interpolation, which uses cubic curves to create organic-feeling ease-in and ease-out effects. A third option, constant interpolation, holds a value until the next keyframe and then snaps instantly—useful for visibility toggles or material switches.

LINEAR INTERPOLATION (LERP)

P(t)=P0+t×(P1−P0)P(t) = P₀ + t × (P₁ − P₀)

Where P₀ is the value at the first keyframe, P₁ is the value at the second keyframe, and t is a normalized time parameter ranging from 0 to 1 across the interval. When t = 0, P(t) = P₀; when t = 1, P(t) = P₁.

NORMALIZED TIME

t=(currentFrame−frameStart)/(frameEnd−frameStart)t = (currentFrame − frameStart) / (frameEnd − frameStart)

This converts an absolute frame number into a 0–1 range between two keyframes. For example, if K1 is at frame 1 and K2 is at frame 30, frame 15 yields t = (15 − 1) / (30 − 1) ≈ 0.483.

CUBIC BÉZIER INTERPOLATION

B(t)=(1−t)3P0+3(1−t)2tC1+3(1−t)t2C2+t3P1B(t) = (1−t)³P₀ + 3(1−t)²tC₁ + 3(1−t)t²C₂ + t³P₁

Here C₁ and C₂ are the two control-point handles visible in Blender's Graph Editor. By dragging these handles, you shape the acceleration curve: pulling them closer to P₀ creates a slow start (ease-in), and pulling them toward P₁ creates a slow finish (ease-out).

The power of the Bézier formula becomes tangible the moment you open the Graph Editor in Blender. Each F-Curve you see is literally a plot of one of these Bézier segments stitched together across your keyframes. The handle type—Auto, Free, Aligned, or Vector—determines how C₁ and C₂ are constrained relative to the keyframe points, giving you fine-grained control over the character of the motion without needing to do any arithmetic yourself.

SECTION 5

Interpolation Modes & Handle Types — A Detailed Breakdown

Interpolation Modes — F-Curve ComparisonLinear0timevalConstant speedBézier (Default)0timevalC₁C₂Ease in / ease outConstant0timevalHolds, then snapsHandle Types (Bézier Mode)Auto ClampedBlender calculates smooth handles; prevents overshoot. Best default choice.AlignedHandles stay co-linear but can differ in length. Good for asymmetric ease.FreeFull independent control of each handle side. Maximum flexibility.VectorHandles point directly at neighboring keyframes. Creates sharp linear segments.Change handle types in the Graph Editor with V (set handle type) or by right-clicking a keyframe handle.
The top row compares the three main interpolation modes as F-Curves: Linear (constant velocity), Bézier (smooth acceleration/deceleration with control handles C₁ and C₂), and Constant (step function that holds a value until the next keyframe). The lower panel summarizes the four Bézier handle types that control how the curve passes through each keyframe.

Choosing the right interpolation mode is an aesthetic decision as much as a technical one. Linear interpolation produces mechanical, robotic movement—useful for conveyor belts, ticking clocks, or any motion that intentionally lacks organic feel. Bézier interpolation is the default because most real-world objects ease into and out of movement: a ball thrown in the air slows as it reaches its peak, and a character's arm decelerates as it reaches for a doorknob. Constant interpolation is the right choice for properties that should switch states abruptly, such as toggling an object's visibility or switching materials mid-shot. Understanding when to apply each mode—and how to mix them across different channels—is a hallmark of professional-level animation craft.

Interpolation ModeF-Curve ShapeBest Use Case
LinearStraight line between keyframesMechanical motions, uniform speed (gears, scrolling text, treadmills)
BézierS-shaped cubic curve with adjustable handlesOrganic motion, character animation, camera moves, natural physics
ConstantStep function — flat until next keyframeOn/off toggles, material switches, visibility changes, pose-to-pose blocking
Bounce / ElasticDynamic overshoots and oscillations (via easing presets)Cartoon squash-and-stretch, springy UI elements, playful motion graphics

Common interpolation modes and their creative applications

SECTION 6

Worked Example — Animating a Bouncing Cube

Let us walk through a complete exercise: animating a cube that slides across the ground, rises into the air, and lands with a subtle squash effect—all using transform keyframes. This exercise integrates Location, Rotation, and Scale keyframing with deliberate interpolation choices.

Bouncing Cube — Transform Keyframe Exercise

  1. 1

    Step 1 — Set Up the Scene

    Open Blender with the default scene (a cube, camera, and light). Set your timeline end frame to 60 by clicking the End field in the Timeline editor and typing 60. Ensure the playhead is at frame 1. Select the cube by left-clicking it.
    Scene configured: 60-frame animation at 24 fps = 2.5 seconds.
  2. 2

    Step 2 — Insert the First Keyframe (Rest Pose)

    With the cube selected and the playhead on frame 1, press I to open the Insert Keyframe Menu. Choose Location Rotation Scale (LocRotScale). The cube's current transform—Location (0, 0, 0), Rotation (0°, 0°, 0°), Scale (1, 1, 1)—is now stored at frame 1. You should see yellow diamond markers appear on the timeline and the transform fields in the Properties panel turn yellow.
    Keyframe K1 at frame 1: Loc (0, 0, 0), Rot (0°, 0°, 0°), Scl (1, 1, 1).
  3. 3

    Step 3 — Move to Frame 15 and Set the Airborne Pose

    Scrub or type in the timeline to move to frame 15. Press G then X then type 3 and press Enter to move the cube 3 meters along the X axis. Press G then Z then type 4 and press Enter to raise it 4 meters. Press R then Y then type 45 and Enter to rotate 45° around Y. Press I → LocRotScale to insert keyframe K2.
    Keyframe K2 at frame 15: Loc (3, 0, 4), Rot (0°, 45°, 0°), Scl (1, 1, 1).
  4. 4

    Step 4 — Frame 30: Landing with Squash

    Move to frame 30. Set Location to (6, 0, 0) using G → X → 3 (relative from current). Reset Z height: in the N-panel (Properties sidebar), set Location Z to 0. Set Rotation Y to 90°. For the squash effect, press S then Z then type 0.7 and Enter to flatten the cube vertically. Then S → Shift+Z (scales on X and Y together) → 1.2 to widen it, preserving approximate volume. Insert keyframe K3 with I → LocRotScale.
    Keyframe K3 at frame 30: Loc (6, 0, 0), Rot (0°, 90°, 0°), Scl (1.2, 1.2, 0.7).
  5. 5

    Step 5 — Frame 40: Recovery to Normal Scale

    Move to frame 40. Keep Location at (6, 0, 0) so the cube stays in place. Reset scale by pressing Alt+S to clear scale, returning it to (1, 1, 1). Press I → LocRotScale to lock in keyframe K4. The cube now "unsquashes" from frame 30 to 40.
    Keyframe K4 at frame 40: Loc (6, 0, 0), Rot (0°, 90°, 0°), Scl (1, 1, 1). Squash recovery takes 10 frames.
  6. 6

    Step 6 — Refine Interpolation in the Graph Editor

    Switch to the Graph Editor (or split your viewport). Select the Location Z F-Curve. The arc from frame 1 to 30 should resemble a parabola. If the default Bézier handles produce an unnatural arc, select K2's keyframe point and press V → Free to manually drag the handles into a sharper peak. For the Scale Z curve between frames 30 and 40, you might try changing the interpolation to Bounce (right-click → Interpolation Mode → Bounce) for a cartoonish wobble on recovery. Press Space in the timeline to play back and verify the motion.
    Final animation: cube arcs through the air with rotation, lands with a squash, then recovers. Total: 4 keyframes across 40 frames.

SECTION 7

Strengths, Limitations & Best Practices

Keyframe animation is the most widely used animation technique in Blender and across the 3D industry, but like any tool it has specific strengths and limitations. Understanding these will help you decide when keyframing is the right approach and when you might want to supplement it with other techniques such as procedural animation, drivers, or physics simulations.

StrengthsLimitations
Complete artistic control over timing and spacing—every pose is intentionally craftedCan become tedious for complex, multi-object scenes with dozens of animated properties
Non-destructive: keyframes can be moved, deleted, or adjusted at any point without restartingDifficulty creating truly "random" or physically accurate motion (e.g., cloth, fluid, particle effects)
Universal workflow—virtually every animation package uses the same keyframe paradigmRisk of "floaty" or lifeless motion if ease curves are not carefully shaped in the Graph Editor
Precise and reproducible—frame-accurate timing for sync with audio or other mediaRotation interpolation can produce gimbal lock artifacts when using Euler angles on complex 3D rotations
F-Curves provide deep post-hoc editing without re-posing the objectScaling animations to different frame rates requires manual retiming of all keyframes

Keyframe animation strengths and limitations

✦

KEY TAKEAWAY

Keyframe animation is to 3D motion what typography is to graphic design: it is the foundational, indispensable skill upon which all higher-level techniques are built. Just as a designer who understands kerning, leading, and tracking can make better use of automated typesetting, an animator who deeply understands keyframe placement and F-Curve shaping will get far more out of physics simulations, motion capture, and procedural systems because they can diagnose, adjust, and override automated results with intentional artistry.

SECTION 8

Connection to Advanced Animation Techniques

Transform keyframing is the gateway to Blender's full animation ecosystem. Once you are comfortable inserting and editing keyframes for Location, Rotation, and Scale, you can begin to explore more sophisticated tools that either build upon or augment the keyframe paradigm. The table below maps the foundational concepts you have learned to their advanced counterparts.

Foundation (This Lesson)Advanced ExtensionKey Difference
Manual keyframe insertion (I key)Auto-Keying & keying setsKeyframes are inserted automatically on every transform change; keying sets limit which channels are recorded
Editing F-Curves in Graph EditorDrivers & expressionsProperties are driven by Python expressions or other properties rather than time-based keyframes
Euler rotation keyframesQuaternion rotationFour-component rotation that avoids gimbal lock; essential for smooth 3D rotations in character rigs
Object-level transform keyframesBone/armature animationSame keyframe mechanics applied to individual bones within a character rig for skeletal animation
Single-action keyframe sequencesNLA Editor (Non-Linear Animation)Keyframe sequences are packaged into reusable Action clips that can be blended, looped, and layered non-destructively

From fundamentals to advanced animation tools in Blender

As you advance, you will discover that Blender's Non-Linear Animation (NLA) Editor treats entire keyframed sequences as modular clips—analogous to layers in Photoshop or clips in a video editor. This nonlinear approach means that the walk cycle you keyframe for a character can be looped, blended with a run cycle, and adjusted globally without touching individual keyframes. The driver system goes even further by allowing one property to control another through mathematical relationships, effectively replacing time-based keyframes with dependency-based animation. All of these advanced systems, however, ultimately produce or manipulate the same keyframe and F-Curve data structures you have been learning about in this lesson.

SECTION 9

Practice Problems

Question 1: CONCEPTUAL

Explain the difference between a keyframe and an in-between frame. Why does Blender only require you to define keyframes rather than every frame of an animation?
Show answer
A keyframe is a user-defined snapshot of a property's value at a specific frame, while an in-between frame is any frame between two keyframes whose value is calculated automatically by the software through interpolation. Blender only requires keyframes because it can mathematically compute all intermediate values using interpolation algorithms (linear, Bézier, or constant). This mirrors the traditional animation workflow where lead animators drew key poses and assistants filled in the in-betweens. The result is dramatically less manual work while maintaining full artistic control over the animation's most important moments.

Question 2: BASIC CALCULATION

A cube has a Location X keyframe of 2.0 at frame 10 and a Location X keyframe of 8.0 at frame 40. Using linear interpolation, what is the cube's X position at frame 25?
Show answer
Using the linear interpolation formula P(t) = P₀ + t × (P₁ − P₀), first calculate the normalized time: t = (25 − 10) / (40 − 10) = 15 / 30 = 0.5. Then compute: P(0.5) = 2.0 + 0.5 × (8.0 − 2.0) = 2.0 + 0.5 × 6.0 = 2.0 + 3.0 = 5.0. The cube's X position at frame 25 is exactly 5.0 meters—precisely halfway between the two keyframed values, which makes intuitive sense because frame 25 is exactly halfway through the 30-frame interval.

Question 3: INTERMEDIATE

You are animating a camera fly-through of an architectural scene. The camera's Location Z is keyframed at 1.5 m (frame 1), 8.0 m (frame 60), and 1.5 m (frame 120). When you play back, the camera's ascent and descent look robotic and uniform. Which interpolation mode is likely active, and what specific steps would you take in Blender to make the motion feel more cinematic with smooth acceleration and deceleration?
Show answer
The robotic, uniform motion strongly suggests Linear interpolation is active on the Location Z F-Curve. To create a cinematic feel, open the Graph Editor, select all keyframes on the Location Z channel (A key), and change the interpolation mode by pressing T and selecting Bézier. This will introduce ease-in and ease-out at each keyframe. For additional refinement, select the middle keyframe (frame 60, Z = 8.0) and adjust its handles: use V → Auto Clamped for a smooth, symmetric peak, or switch to Free handles and pull them slightly downward to create a brief hover effect at the apex. You might also extend the handles horizontally to slow the camera more dramatically at the top of its arc, mimicking the way a drone naturally decelerates before reversing direction.

Question 4: APPLIED

You are creating a 3-second motion graphics loop (72 frames at 24 fps) of a logo that grows from zero scale, overshoots to 120% size, settles back to 100%, then holds. Describe the exact keyframes you would place (frame numbers, Scale values, and interpolation choices) and explain how you would ensure the animation loops seamlessly if the hold at 100% needs to connect back to the scale-up.
Show answer
A recommended keyframe plan: K1 at frame 1, Scale (0, 0, 0) with the interpolation set to Bézier for a smooth start; K2 at frame 18, Scale (1.2, 1.2, 1.2) to create the overshoot with Auto Clamped handles; K3 at frame 30, Scale (1.0, 1.0, 1.0) for the settle, also Bézier with handles shaped to create a slight deceleration; K4 at frame 54, Scale (1.0, 1.0, 1.0) to define the hold period using Constant interpolation between K3 and K4 so the logo stays perfectly still; K5 at frame 72, Scale (0, 0, 0) to bring it back down for the loop. To ensure seamless looping, the F-Curve at frame 72 must have the same value and tangent direction as frame 1. In the Graph Editor, set the channel's extrapolation mode to 'Make Cyclic' (Shift+E → Make Cyclic) to have Blender automatically handle the wrap-around, or manually align the exit tangent at K5 to match the entry tangent at K1.

Question 5: CRITICAL THINKING

A fellow student argues that auto-keying should always be enabled because it eliminates the risk of forgetting to insert keyframes. Construct a reasoned counter-argument that identifies at least three specific scenarios where auto-keying creates problems, and propose a workflow compromise that balances efficiency with control.
Show answer
While auto-keying is convenient, it introduces several risks. First, accidental keyframes: any unintentional nudge of an object (a stray click while navigating) creates unwanted keyframes that pollute the animation data and may go unnoticed until they cause visual glitches during playback. Second, keyframe clutter: auto-keying records all transform channels simultaneously by default, meaning a simple X-axis move also locks in the current Y, Z, Rotation, and Scale values, producing unnecessary keyframes that make the Dope Sheet harder to read and F-Curves harder to edit cleanly. Third, workflow interference during modeling or layout: if auto-keying is left on while adjusting scene composition or refining object placement outside the animation phase, it generates animation data on objects that are not meant to be animated at all. A good compromise is to keep auto-keying disabled by default and enable it only during dedicated animation sessions, combined with Keying Sets that restrict which channels are recorded. Alternatively, use the 'Only Active Keying Set' option so that auto-keying affects only the channels you have explicitly chosen, preventing the broad-stroke data pollution that undermines clean animation workflows.

SUMMARY

Lesson Summary

Summary

Keyframe animation is the fundamental technique for creating motion in Blender: you define an object's transform properties—Location, Rotation, and Scale—at specific frames using the I key shortcut, and Blender's interpolation engine calculates every in-between frame automatically. The default Bézier interpolation produces organic ease-in/ease-out motion, while Linear and Constant modes serve mechanical and switching behaviors respectively.

Editing keyframes is accomplished through the Timeline (for broad timing), the Dope Sheet (for multi-channel overview), and the Graph Editor (for precise F-Curve shaping using handle types like Auto Clamped, Free, Aligned, and Vector). Mastering this workflow gives you the foundational vocabulary to tackle advanced systems including armature animation, drivers, and the NLA Editor—all of which build directly on the keyframe and F-Curve data structures explored in this lesson.

Varsity Tutors • Blender • Keyframe Animation — Insert and edit keyframes for transforms