Skip to content
OpenRamp

Free and open sourceMIT OR Apache-2.0

Speed ramps for DaVinci Resolve, one click each.

Put the playhead on a clip, press a preset, and the ramp lands on your timeline as ordinary Fusion nodes. Shape it in a curve editor. Motion blur that follows the ramp, transition effects, animated captions and beat markers come with it. Works with Resolve Studio and the free Resolve.

Windows installer on the Releases page. On macOS or Linux, build from source.

Preset

Fast-Slow-Fast

speed
1.00x
source frame
45 / 90
100500output timehover to scrub3x1x0speed

source clip, frame 0frame 90

Live, not a recording: the same curve maths the app uses. Pick a preset (keys 1-9) or hover the curve to scrub.

What is in it

Everything a ramp edit needs, nothing else.

Ramps, blur and transitions on one clip share a single Fusion chain: ramp, then blur, then transitions. Re-apply a ramp and the effects after it stay.

Graph

Speed ramps you can keep shaping

12 built-in presets on keys 1-9: Fast-Slow-Fast, Slow-Fast-Slow, Speed Up, Mid Reverse, 2-Push, Boomerang and more. Then drag anchors and handles in the curve editor, with a speed lane under it that shows where the clip runs slow, fast or backwards.

Hit a marker moves the ramp's slowest point or turnaround onto a timeline marker. Nearest, Frame blend or Optical flow. It reads back a ramp that is already on the clip.

slowest point on the marker

Motion blur

Blur that follows the ramp

Zoom blur with a draggable pivot, or directional blur with an angle. Keyed to the clip's speed: slow parts stay sharp, fast parts smear. Detect direction reads the motion in the shot.

blur strength = clip speed

Transitions

Ten effects, stackable

Each has its own switch and settings. Peak at the start, middle or end. The envelope is a Fusion expression of the clip's length, so lengthening the clip re-times the effect without running anything.

  • Shake
  • Warp
  • Aberration
  • Glow
  • Zoom punch
  • Exposure flash
  • RGB split
  • Lens distortion
  • Whip-pan blur
  • Film-grain hit
peak at start
peak at middle
peak at end

Captions

Animated, and right to left too

From Resolve's own transcription or from an SRT or your own lines, as animated Fusion text. 10 looks, word-by-word entrances, safe-zone aware 9:16 layout. Sorani and Arabic join correctly. Optional sound per word from 18 built-in sounds.

word-by-word entrance, one word emphasised

Right to left, joined

ەێۆڵڕ

The letters Sorani needs, in Vazirmatn. Words join and run right to left.

Beat markers

Markers from the music

Detects the beats and downbeats of the music on your timeline and drops blue and red markers. Every beat, every other beat or downbeats only, with a double/half-tempo fix. It never touches your own markers.

Batch

One ramp, every selected clip

Select the clips, pick a ramp, apply. Optionally reverse every other one. Save your own presets as plain JSON and share them.

V1.1
V1.2
V1.3
V1.4

same preset on every selected clip, every other one reversed

The app

A small window next to Resolve.

OpenRamp is a desktop app, not a page you have to leave the edit for. It follows the playhead and shows the clip it will act on.

OpenRamp Graph tab: a fast-slow-fast speed curve with its speed lane, beat marker controls and the twelve preset thumbnails.

Curve, speed lane, presets

The clip under the playhead, its curve, and the speed it implies. Presets sit underneath on keys 1-9; beat markers and batch apply are one row above them.

Screenshots of the real app UI running against a mock Resolve project.

How it works with Resolve

It lands as plain nodes.

Resolve's scripting API has no call for variable speed. So OpenRamp builds each ramp as a Fusion comp on the clip, with a TimeStretcher whose source time gets one key per frame.

  1. 1

    Playhead on a clip

    OpenRamp targets the clip under the playhead and shows its current ramp, if it has one.

  2. 2

    Press a preset

    Or draw the curve yourself. Edits apply live.

  3. 3

    Keep editing in Resolve

    The result is ordinary Fusion nodes and markers. Open them, change them, delete them. No OpenRamp needed.

The comp on your clip

  1. MediaIn1your clip
  2. OpenRampFlowoptical flow, if chosen
  3. OpenRampTimeTimeStretcher, SourceTime spline
  4. OpenRamp...blur, transitions
  5. MediaOut1back to the timeline
Frame exact
Tested against a frame-numbered clip: largest error under half a frame.
One maths
Rust, TypeScript and Python run the same curve code, checked against one fixture file.
Two ways in
From Workspace > Scripts (free and Studio), or on its own with Studio's external scripting.

Install

Three steps, then it is in Resolve.

Windows installer

  1. 1Download OpenRamp_x.y.z_x64-setup.exe from the Releases page.
  2. 2Run it. It also copies OpenRamp.py into Resolve's Fusion Scripts/Utility folder.
  3. 3In Resolve open Workspace > Scripts > OpenRamp. The app opens and connects.
Go to Releases

Resolve Studio can also start OpenRamp on its own: set Preferences > System > General > External scripting using to Local.

From source

Needs Rust (stable), Node 20+, pnpm, Python 3.10+ and DaVinci Resolve 21. ffmpeg must be on your PATH for Captions.

$ git clone https://github.com/Seganation/openramp$ cd openramp$ pnpm install$ pnpm dev
# installer lands in target/release/bundle$ pnpm build

The UI alone runs in a browser against a mock Resolve: pnpm --filter @openramp/ui dev.

Open source

A foundation to build on.

OpenRamp is free to use, change and ship, under MIT or Apache-2.0, your pick. Presets are plain JSON and the bridge speaks one JSON object per line, so any script can drive it.

The curve maths, the Fusion chain and the design system are the base. A new feature is a Python module, a UI folder and a test.

Repository

apps/desktop/        Tauri 2 app: Rust shell + React 19 UI
  ui/src/ui/         design system: tokens, primitives
  ui/src/features/   one folder per tab
crates/or-core/      curve maths and presets in Rust
bridge/              JSON-RPC bridge to Resolve (Python)
  orb/<feature>.py   one module per feature
integrations/resolve OpenRamp.py: the Workspace > Scripts entry
presets/             built-in presets, plain JSON
atlas/               every Fusion tool and input, read from Fusion

Adding a feature

  1. 1bridge/orb/<feature>.py exports METHODS
  2. 2ui/src/features/<feature>/ with the tab, then flip its READY flag
  3. 3A test: unit tests for pure logic, an end-to-end script for what must run inside Resolve
$ pnpm test