Understanding the Wiggle Expression in After Effects
A practical guide to the wiggle expression in After Effects—what it does, how it works, and how to use it to create natural motion like camera shake, floating elements, and subtle organic movement without overusing keyframes.
If you’ve ever wanted to add natural, organic motion to your animation without keyframing every tiny movement, the wiggle expression is your best friend.
It’s one of the most commonly used expressions in Adobe After Effects — and for good reason. With just a single line of code, you can make objects shake, float, jitter, or feel alive.
Let’s break it down in a simple, practical way.
What Is the Wiggle Expression?
The wiggle() expression automatically generates random movement over time.
Instead of manually animating keyframes, After Effects calculates new values every frame based on parameters you define.
Basic syntax:
wiggle(frequency, amplitude)
The Two Core Parameters
1. Frequency
How often the value changes per second.
- Low value → slow movement
- High value → fast, jittery movement
Example:
wiggle(1, 50)
This updates once per second.
2. Amplitude
How far the value can move away from its original position.
- Small value → subtle motion
- Large value → extreme movement
Example:
wiggle(5, 10)
Fast but subtle.
Common Use Cases
Natural Camera Shake
Apply wiggle to Position:
wiggle(3, 20)
Perfect for handheld camera feel, impact shots, or action scenes.
Floating Objects
Great for UI elements, icons, or ambient motion:
wiggle(0.5, 15)
Slow frequency with small amplitude creates calm floating motion.
Glitch or Error Effects
Apply to Rotation or Opacity:
wiggle(20, 5)
This creates fast, unpredictable motion — ideal for tech or glitch visuals.
Applying Wiggle to Different Properties
You’re not limited to Position. Wiggle works on:
- Scale
- Rotation
- Opacity
- Anchor Point
- Effect values (Blur, Exposure, etc.)
Example for Scale:
wiggle(2, 8)
This makes the object subtly pulse.
Keeping One Axis Stable
By default, wiggle affects all dimensions.
To wiggle only one axis, combine wiggle with the current value.
Example (wiggle X only):
x = wiggle(2, 50)[0];
[x, value[1]]
This is useful when you want controlled movement.
Making Wiggle Loop
Wiggle is random, so it doesn’t loop by default.
To create a predictable loop, use posterizeTime():
posterizeTime(12);
wiggle(3, 20)
This forces the randomness to repeat in a consistent pattern.
When Not to Use Wiggle
Wiggle is powerful, but not always appropriate.
Avoid using it when:
- Motion needs precise timing
- You want intentional easing
- You’re animating UI interactions
In these cases, keyframes or more controlled expressions work better.
Final Thoughts
The wiggle expression is one of the fastest ways to add life to your animations.
It’s simple, flexible, and extremely effective when used intentionally.
Start subtle — then break it when needed.
Happy wiggling ✨