Loading Patchies...

Video Chaining

Visual objects connect together to form a video pipeline — the output of one object feeds into the input of the next, letting you layer, blend, and transform visuals in real time.

Video chain example

In this example, a hydra object and a glsl object each produce a pattern. They feed into a third hydra object which subtracts them together using src(s0).sub(s1).out(o0).

This is similar to shader graphs in TouchDesigner, Unity, Blender, and Substance Designer.


How It Works

Visual objects have orange inlets and outlets (circles on the top and bottom of the node):

  • Orange inlet — accepts a video frame as input
  • Orange outlet — outputs a video frame to the next object

Connect orange outlet → orange inlet to chain them:

[p5] → [pipe.hydra] → [pipe.gl] → [bg.out]

To hear — er, see — anything, connect the final object to bg.out or use Output to Background.


Try It

Exercise — Visual passthrough

  1. Create a p5 object and write something that draws to the canvas
  2. Create a pipe.hydra preset (Enter → search pipe.hydra)
  3. Connect the orange outlet of p5 to the orange inlet of pipe.hydra
  4. Connect pipe.hydra to bg.out — the p5 sketch appears as the background

Exercise — Blend two visuals

  1. Create two visual objects (e.g. p5 and glsl)
  2. Create a sub.hydra preset — it has two orange inlets
  3. Connect both visual objects to the two inlets of sub.hydra
  4. Connect sub.hydra to bg.out — the two visuals are subtracted together

Getting Started with Presets

The preset library has ready-made building blocks for video chaining. Enable them via the Preset Packs sidebar:

  • pipe.hydra, pipe.gl — pass video through unchanged; the simplest starting point for chaining
  • diff.hydra, add.hydra, sub.hydra — blend two video inputs with Hydra
  • Check the hydra and glsl docs for more preset ideas

Output to Background

Right-click any visual object (or use its ··· menu) and choose Output to background to make it the fullscreen output. This overrides any bg.out connection.

  • Click Output to background again on the same object to clear the override
  • Switching to a different object replaces the current output — only one at a time
  • This is great for live performance; it is not saved across sessions

Wireless Video Routing

Route video across the patch without cables using send.vdo <channel> and recv.vdo <channel>:

[p5] → [send.vdo main]          [recv.vdo main] → [bg.out]

Useful for keeping large patches readable by removing long-distance orange cables.


Performance

Objects on the rendering pipeline are significantly faster than main-thread objects — they avoid expensive pixel copies between GPU and CPU.

For high-performance video chaining, prefer:


See Also