Making compositions fit a mold with protocols

A protocol in Vuo is like an interface in object-oriented programming.

You may have noticed that a lot of Vuo’s nodes fall into groups where the nodes in the group are, in some sense, interchangeable. For example, what are some nodes that can fill in the blank in the composition below?

There are numerous possibilities: Adjust Image Colors, Outline Image, Make Cartoon Image, and Reduce Haze, just to name a few. Any node that inputs an image and outputs a modified version of that image will fit.

The idea of a protocol is to give a name to the kinds of nodes or compositions that can fill in a blank. A protocol defines a list of input and output ports, with certain names and data types.

Protocols are something you need to know about when exporting a composition as a movie, screen saver, or plugin (Exporting compositions) or using a composition in a VJ application.

You can find compositions exemplifying each protocol under File > Open Example > Image Generator, Image Filter, and Image Transition.

Image Filter protocol

The Image Filter protocol is for compositions that alter an image (or stream of images). For example, an Image Filter could add a special distortion effect to a video clip.

Published input ports

Name Data type Required? Description
image Image Required The original image.
time Real Required A number that changes over time, used to control animations or other changing effects.
duration Real Optional For FxPlug: The length, in seconds, of the clip.
framerate Real Optional For FxPlug: The framerate of the project, in frames per second.
frameNumber Integer Optional For FxPlug: The number of frames since the beginning of the clip, starting at 0.
quality Real Optional For FxPlug: The rendering quality or level of detail.

time and quality are further explained later in this section.

Published output ports

Name Data type Description
outputImage Image The altered image.