Why Your Wiggle Looks Wrong

Andre Ellis

You've used wiggle. It looked like an earthquake. You turned it down. It still felt wrong. Here's why — and what's actually happening under the hood.

If you've spent more than twenty minutes in After Effects, you've found the wiggle expression. Someone in a tutorial typed wiggle(frequency, amplitude), the layer shook, and it looked great. Then you tried it and it looked chaotic. Too fast. Too digital. Like a mistake.

You're not doing it wrong. You just don't know what the numbers actually mean yet — and more importantly, you don't know why wiggle feels organic at all. That's the thing that'll change how you use every noise-based tool in AE forever.

First, the basics

The wiggle expression takes two arguments: frequency and amplitude.

// wiggle(frequency, amplitude)
wiggle(2, 30)

// frequency = wiggles per second
// amplitude = distance in pixels

Most beginners crank both up. They want to see it work. The result looks like an earthquake — and it looks like a bug, not a design choice. The fix is counterintuitive: lower your frequency dramatically. For organic camera movement try wiggle(0.8, 15). For a subtle floating element, wiggle(0.3, 8). The lower the frequency, the more natural and professional it reads.

Side by side: wiggle(10,80) vs wiggle(0.8,15) — same layer, completely different feel.
Try this now
Open any comp, apply wiggle to a position value, and set it to wiggle(1, 20). Then change only the first number — drop it to 0.3. Watch what happens to the feeling of the motion. That's the difference between restless and intentional.

The pro move: parent to a null

Instead of applying wiggle directly to your layer's position, apply it to a null object, then parent your layers to that null. This gives you one place to control motion across your entire comp, and one checkbox to kill it when you need a static client frame. Clean, flexible, professional.

// On the NULL's position property:
wiggle(0.8, 15)

// Parent all your layers → null
// One expression controls everything
// One toggle turns it all off
The null trick — one expression moves all layers together.

🔧 Under the Hood

Why wiggle feels organic — even though it's math

Wiggle doesn't generate random numbers. It generates smooth random numbers using an algorithm called Perlin noise — invented by Ken Perlin in 1983 for the movie Tron. He won an Academy Award for it. It's now inside virtually every motion graphics tool, game engine, and VFX platform on the planet.

True randomness looks terrible in motion. If a camera shook at completely random intervals it would look broken and digital. Perlin noise is mathematically smooth — each value flows naturally into the next, which is why wiggle feels like a real camera even though it's generated.

Once you know this, you'll see Perlin noise everywhere in AE: Turbulent Displace, Fractal Noise, CC Particle World turbulence — same algorithm, different outputs. Wiggle was just your introduction.

Fractal Noise (left) and a wiggle graph (right) — same Perlin math, different output.

This is why Fractal Noise looks organic without effort and why Turbulent Displace behaves the way it does. They're all drawing from the same mathematical well. Understand the source and you can predict the behavior across every tool.

Going deeper

Seeding. Wiggle produces a different result every RAM preview — great until a client says "I want the same version as last week." The fix:

seedRandom(42, true);
wiggle(1, 20)

// Locked to seed 42 — same result every render

Two layers, same world. Want elements that wiggle independently but feel like they belong together? Same frequency, same amplitude, different seed numbers. They'll move like they share the same physical space.

Tutorial
Tips and Tricks
After Effects
Tutorial