A shader transition changes one shot into the next with a WebGL effect instead of a plain cut. The shader runtime comes from Framey. An agent uses it from an HTML scene with vfrey.transition. Shader transitions are for HTML scenes, which run on vfrey-framey or hyperframes. A Remotion scene (index.tsx) does not support them. If a Remotion scene uses one, the render stops with a Fix: line that says to use an HTML scene, or to build the transition in React with Remotion’s own interpolate(). See Scenes.

List the types

There are 15 types. --json also says which engines support them: vfrey-framey and hyperframes do, remotion does not.

Use one

Make two shots that each fill the frame and sit on top of each other inside #root. Load the transitions file before vfrey.js, then call vfrey.transition.
vfrey writes vfrey/transitions.js into every HTML scene with the other supplied files, so there is nothing to install. Calls chain: each from is the previous call’s to, and the calls can be made in any order. A scene with three shots uses two calls. The result is seekable and the same on every render, so render --frame works.
Do not confuse this with the transition category of scene blocks. Those are overlay pieces, like a tiled word wall. A shader transition is a function call between two shots of your own.

For agents

  • Run npx vfrey scene transitions for the types. Do not guess a name.
  • Use one or two transitions in a short. Pick a type that fits the idea.
  • Look at a frame inside a transition with render --frame, which renders the transition, not the stacked shots.
  • Never use it in a Remotion scene. Switch the scene to HTML, or write the effect in React.