---
title: "How to use the Spline Editor for animation curves in DaVinci Resolve Fusion"
author: "Cutsio Team"
date: "2026-05-15"
lastmod: "2026-05-15"
category: "DaVinci Resolve Advanced Workflows"
excerpt: "DaVinci Resolve Fusion Spline Editor gives you precise control over animation curves with Bezier and B-Spline options, keyframe squish and stretch, and loop/ping pong modes. This guide covers curve types, modifiers, and expressions."
tags: ["DaVinci Resolve","Fusion","Spline Editor","Animation Curves","Keyframes","Bezier","Motion Graphics"]
---

## How does the Spline Editor work in DaVinci Resolve Fusion?

Click the Spline Editor icon at the top of the Fusion page to open it. The editor displays animation curves for all keyframed parameters in the selected node. Each parameter appears as a colored curve in the graph. Use the tools at the bottom to adjust curve shapes, timing, and looping behavior.

![Spline Editor](https://images.blackmagicdesign.com/images/products/davinciresolve/fusion/spline/spline-xl@2x.jpg?_v=1602715833)

The Spline Editor provides linear, Bezier, and B-Spline curve types. Linear curves create constant-speed animation. Bezier curves provide adjustable handles at each keyframe for custom easing. B-Spline curves create smooth curves that pass near keyframes without necessarily passing through them, ideal for organic camera animation.

## How do you use the Spline Editor's time-saving features?

The strip at the bottom of the Spline Editor includes tools to reverse, loop, or ping pong animations. Reverse flips the entire animation curve backward. Loop repeats the animation continuously. Ping pong animates forward and then reverses back.

Squish and stretch lets you shorten or lengthen animation timing without changing the relative motion. Select a group of keyframes and drag the handles at either end to compress or expand them in time. The relative spacing between keyframes is preserved, so a bounce animation stays bouncy regardless of duration.

Curve shapes can be copied and pasted between parameters independently of values. If you create a perfect ease curve for a Position animation, you can copy that curve shape to a Rotation parameter. The curve's shape and timing transfer, but the position values are replaced by rotation values. This ensures consistent animation feel across all parameters.

## How do modifiers and expressions create dynamic animations?

Modifiers link parameters together so that when one changes, others follow automatically. Right-click on any parameter in the inspector and select "Modify With" to see available modifiers. The Follower modifier creates sequential text animations. The Oscillator creates wave-based motion. The PID control creates spring-like physics.

Expressions use mathematical formulas to define parameter values. Right-click a parameter and select "Modify With > Expression." Expression syntax includes standard math operations, trigonometric functions, and references to other parameters. For example, binding the Scale parameter to the Position Y value creates a squash-and-stretch effect where the object compresses as it hits the bottom of its bounce.

| Modifier | Best for | Example use |
|---|---|---|
| Follower | Staggered animations | Character-by-character text reveals |
| Oscillator | Cyclic motion | Wobble, vibration, pulse |
| PID Control | Physics-based motion | Springy stops, overshoot |
| AudioModulation | Audio-reactive animation | Beat-synced effects |
| Expression | Custom math relationships | Scale linked to position |

<div class="not-prose blog-large-cta">
  <div class="max-w-3xl mx-auto text-center">
    <h3>
      Animate smarter with clean timelines
    </h3>
    <p>
      Pre-edit with Cutsio before building complex Fusion animations. A clean timeline means your spline curves control final content, not placeholder clips.
    </p>
    <ul>
      <li>
        <svg class="h-6 w-6 text-emerald-400 shrink-0 mt-0.5" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
        <span>AI silence removal and retake detection</span>
      </li>
      <li>
        <svg class="h-6 w-6 text-emerald-400 shrink-0 mt-0.5" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
        <span>EDL and XML export for Resolve import</span>
      </li>
      <li>
        <svg class="h-6 w-6 text-emerald-400 shrink-0 mt-0.5" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
        <span>Non-destructive workflow — originals untouched</span>
      </li>
    </ul>
    <div class="flex flex-col sm:flex-row items-center justify-center gap-4">
      <a href="https://studio.cutsio.com" target="_blank" rel="noopener noreferrer"
         class="no-underline inline-flex items-center justify-center rounded-full bg-indigo-600 px-8 py-3.5 text-sm font-semibold text-white hover:bg-indigo-700 dark:bg-white dark:text-slate-900 dark:hover:bg-neutral-100 transition-colors shadow-sm">
        Try Cutsio Free
        <svg class="ml-2 h-4 w-4" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"/><path d="m12 5 7 7-7 7"/></svg>
      </a>
      <button type="button" onclick="window.dispatchEvent(new CustomEvent('open-contact-modal'))"
              class="inline-flex items-center justify-center rounded-full border border-white/20 px-8 py-3.5 text-sm font-medium text-white hover:bg-white/10 transition-colors">
        Book a demo
      </button>
    </div>
    <p class="mt-4 text-xs text-slate-500">No credit card required. 60 minutes of free processing.</p>
  </div>
</div>
