VideoFlowcodeGitHubTry itCoreRenderersReact Video EditorPlaygroundExamplesDocscodeGitHubTry it
← Back to Blog

27 Ways to Switch Scenes: A Guide to Programmatic Video Transitions

May 21, 2026 · By VideoFlowMaster programmatic video transitions with VideoFlow. Learn how to use 27 declarative presets—from glitch effects to 3D tilts—to automate cinematic video creation.27 Ways to Switch Scenes: A Guide to Programmatic Video Transitions

27 Ways to Switch Scenes: A Guide to Programmatic Video Transitions

Transitions are the connective tissue of cinema. In the world of traditional video editing, they are often the most time-consuming part of the process—fiddling with keyframes, adjusting curves, and ensuring that a "slide" doesn't feel like a mechanical jitter. But when you are building a programmatic video pipeline, you don't have time for manual keyframing. You need a declarative way to say: "Make this layer appear with a glitch and disappear with a lens snap."

At VideoFlow, we’ve built a library of 27 transition presets directly into the core engine. These aren't just simple fades; they are high-performance GLSL shaders and motion primitives that work identically across the browser, the server, and your live previews.

In this guide, we’ll explore how to use programmatic video transitions to turn raw data into cinematic content without writing a single manual keyframe.

Diagram illustrating different types of motion transitions: slides, blurs, and wipes.

The Declarative Advantage

In most video-as-code frameworks, creating a transition requires you to calculate the progress of an animation over time and map it to properties like opacity or position. VideoFlow takes a different approach. Because the toolkit is built on a portable JSON schema, transitions are treated as top-level settings.

When you add a layer, you simply define the transitionIn and transitionOut behavior. The VideoFlow builder handles the expansion into the underlying keyframe sequence automatically.

import VideoFlow from '@videoflow/core';

const $ = new VideoFlow({ width: 1920, height: 1080, fps: 30 });

// A text layer that slides up and then dissolves with noise
const title = $.addText(
  {
    text: 'Cinematic Transitions',
    fontSize: 8,
    color: '#FF5A1F',
    fontWeight: 700,
  },
  {
    transitionIn:  { transition: 'slideUp', duration: '800ms', easing: 'easeOut' },
    transitionOut: { transition: 'noiseDissolve', duration: '500ms' },
  }
);

$.wait('3s');
title.remove(); // This triggers the transitionOut

By separating the "what" (the transition type) from the "how" (the frame-by-frame math), your code stays clean and your video automation becomes much easier to maintain.

Exploring the 27 Presets

The VideoFlow library is categorized by the visual language of the motion. Here is a breakdown of the presets available in the current version of @videoflow/core:

1. The Classics: Opacity and Scale

For subtle entries, fade and zoom are your workhorses. If you want more character, overshootPop adds a bouncy elasticity to the entry, while radialZoom creates a sense of depth by scaling from the center.

2. Directional Motion: The Slides

The slideUp, slideDown, slideLeft, and slideRight presets are essential for UI walkthroughs and title cards. Unlike a simple position shift, these are optimized to ensure smooth motion blur when rendered.

3. High-End Optics: Blurs and Wipes

This is where programmatic video starts to look like high-end motion graphics. blurResolve creates a beautiful "unfocusing" effect, while lightSweepReveal and scanReveal use GLSL shaders to wipe the layer into view with a sense of energy.

4. Digital and Glitch

For tech-focused content or AI-generated videos, glitchResolve and rgbSplitSnap provide a modern, "hacker" aesthetic. These presets use synthetic effects to scramble the pixels during the transition window.

5. Text-Specific Motion

Transitions like typewriter, scrambleDecode, and trackingExpand are designed specifically for the addText layer. They animate the characters or letter-spacing in ways that would take hours to animate by hand in After Effects. You can see these in action in our post on cinematic text reveal animations.

Abstract representation of a JSON tree transforming into a cinematic video scene.

Fine-Tuning with Params and Easings

Every transition in VideoFlow is customizable. You aren't stuck with the defaults. By passing a params object, you can tweak the "knobs" of the preset.

For example, the slideUp preset allows you to control the distance, while noiseDissolve lets you set a seed for the randomness. Combined with our easing library, you can change the entire "feel" of the motion.

const card = $.addShape(
  { width: 50, height: 50, fill: '#fff' },
  {
    transitionIn: {
      transition: 'tilt3d',
      duration: '1s',
      easing: 'easeInOut',
      params: { angle: 45 }
    }
  }
);

How VideoFlow Handles the Render

The magic of VideoFlow transitions is that they are resolution-agnostic and renderer-independent. Because they are defined in our VideoJSON schema, you can preview them at 60 FPS in the browser using @videoflow/renderer-dom, and then export them as a high-quality MP4 on your server using @videoflow/renderer-server.

Whether you are building a YouTube Shorts factory or a personalized SaaS recap system, these transitions ensure that your automated output doesn't look "automated." It looks professional.

Start Building

Ready to see these transitions in action? Head over to the VideoFlow Playground to experiment with the presets in real-time. You can also dive into the Transitions Guide in our documentation to see the full list of parameters for every preset.

VideoFlow is open-source (Apache-2.0). Check out the source code and join the community on GitHub.

VideoFlow

Open-source toolkit for composing videos from code.

Product

CoreRenderersReact Video EditorPlayground

Learn

DocsAPI referenceExamplesvs. Remotionvs. FFmpeg

Project

GitHubLicenseContactTermsPrivacy

From the blog

All posts →Automated Podcast Audiogram Generator: Turning Audio into Viral Video with TypeScriptAutomating YouTube Shorts: Build a Vertical Video Factory in 30 Lines of TypeScriptVideo as Data: Building an LLM-Powered Video Generation PipelineMastering Motion: A Deep Dive into VideoFlow Transitions and EasingWhy VideoFlow is the Best Open Source Remotion AlternativeGlobal by Default: Automating Video Localization with TypeScriptFrom JSON to 60 FPS: Building Real-Time Video Previews in ReactHow to Render MP4s in Node.js without Installing FFmpeg
© 2026 VideoFlow. Apache-2.0 core.