THE DROP AND BOUNCE IMPACT EXPRESSION,
DaVinci Resolve Fusion Expression: Create a Drop and Bounce Animation
Want to make a logo or object drop into frame and bounce naturally in DaVinci Resolve Fusion? Instead of relying on multiple manually adjusted keyframes, this Fusion Expression combines a fast fall with a realistic bounce and automatically settles the movement.
EXPRESSION 1 — THE DROP AND BOUNCE
Let's say you've got a logo that needs to fly in from off-screen and land with real weight, instead of just sliding into frame and stopping dead. That dead stop is the single biggest tell that something was keyframed by hand instead of animated with intent.
What It Does
This expression creates a simple but convincing animation:
-
The object starts above the frame.
-
It quickly falls toward its target position.
-
It hits the target.
-
It bounces several times.
-
Each bounce becomes smaller until the object settles naturally.
The best part is that you don't need to manually create every bounce with keyframes.
The Idea Behind It
The expression combines three things:
-
A smooth falling motion.
-
A controlled bounce using a sine wave.
-
Exponential decay to make each bounce smaller than the previous one.
Here's how it works.
Copy the Expression
Paste this expression onto the Position control of your object or logo in Fusion:
local startY = 1.5
local targetY = 0.5
local fallTime = 0.3
local amplitude = 0.50
local frequency = 5
local decay = 2
local t = time / 30
if t < fallTime then
local p = t / fallTime
return Point(0.5, startY + (targetY - startY) * (p * p))
else
local bt = t - fallTime
return Point(0.5, targetY + amplitude * math.abs(math.sin(frequency * bt)) * math.exp(-decay * bt))
end
Breaking Down the Code
The first section controls the basic movement:
startY = 1.5
This controls how far above the frame the object starts. A higher number means the object begins farther away.
targetY = 0.5
This is the final position where the object lands and eventually settles.
fallTime = 0.3
This controls how long the initial fall takes. A smaller value makes the animation faster and snappier.
amplitude = 0.50
This determines how large the bounce is after the object hits the target.
frequency = 5
This controls how quickly the object moves through the bounce. Increasing it creates tighter, faster oscillations.
decay = 2
This controls how quickly the bounce loses energy. A higher value makes the animation settle faster.
Understanding the Fall
This part of the expression controls the initial drop:
if t < fallTime then
local p = t / fallTime
return Point(0.5, startY + (targetY - startY) * (p * p))
The variable p represents the progress of the fall, moving from 0 to 1.
The important part is:
p * p
Squaring the progress makes the movement start more gently and accelerate toward the landing point. This gives the object a more natural feeling than a simple linear movement.
Understanding the Bounce
Once the object reaches the target, the expression switches to the bounce:
else
local bt = t - fallTime
return Point(0.5, targetY + amplitude * math.abs(sin(frequency * bt)) * math.exp(-decay * bt))
end
The bt variable resets the timing after the initial fall.
The sine function creates the bouncing motion, while exponential decay gradually reduces its size.
The result is a bounce that feels like the object actually has weight.
Why This Works
A simple position animation might look like this:
Start → Fall → Stop
That can feel robotic because there is no sense of momentum.
This expression creates:
Start → Accelerate → Impact → Bounce → Settle
That small amount of secondary movement makes a huge difference, especially when animating logos, titles, icons, buttons, or other motion graphics.
How to Customize It
The biggest advantage of using an expression is that you can change the feel of the animation without rebuilding the keyframes.
Want a Faster Drop?
Lower:
fallTime = 0.3
Try something like:
fallTime = 0.2
This makes the object hit the target faster.
Want a Bigger Bounce?
Increase:
amplitude = 0.50
For example:
amplitude = 0.75
The object will bounce farther after landing.
Want the Bounce to Settle Faster?
Increase:
decay = 2
For example:
decay = 3
The bounce will lose energy more quickly.
Want More or Tighter Bounces?
Adjust:
frequency = 5
A higher value produces faster oscillations, while a lower value creates slower movement.
Why Use an Expression?
The biggest advantage is consistency.
Instead of manually creating several keyframes and trying to make every bounce look natural, the expression calculates the movement automatically.
You can reuse the same idea for:
-
Logos
-
Titles
-
Icons
-
Lower thirds
-
UI elements
-
Motion graphics
-
Product animations
-
Social media graphics
You can also adjust a few numbers to create completely different animation styles.
A subtle bounce can make a title feel polished, while a larger bounce can make an icon feel playful and energetic.
Final Result
And that's it. Voilà — a real drop and a real bounce, from one expression.
This DaVinci Resolve Fusion drop and bounce expression is a useful starting point for logos, titles, icons, and motion graphics that need a more natural landing instead of a simple keyframed stop.