» Programming Concepts
This site relies heavily on Javascript. You should enable it if you want the full experience. Learn more.

Programming Concepts


Patching pages

You are familiar with textual programming and are missing some of the basic concepts of your mother tongue in vvvv?

Here is collection of common programming concepts and some hints to where you can find them in vvvv.

If you're not a coder, check Patching Concepts.

If you're missing a specific concept you can always implement a little plugin using the built-in VL or c# editors.

Classes, Custom Datatypes, Functions

There is no concept of classes in vvvv. For basic structuring of your programs have a look at Subpatches.

Subpatches can be understood as functions that take Inputs and return Outputs.

There've been attempts to add further ways of structuring data into vvvv, see:


Looking for an if, switch, ...?

See Conditions.


Where in textual programming you’d use a for, while or repeat construct to execute some lines of code multiple times before going on executing the rest of the program, this is not possible with vvvv.

Basically vvvv avoids the concept of such sequential loops. Instead it often allows you to calculate all desired iterations at the same time using spectral operations.

See Spread Sinks.


Global Variables

Values can be sent from one part of a patch to another (or between patches) using the S (=send) and R (=receive) nodes without making any direct links.

The most common use case for S/R nodes is to deliver global constants to different parts of a project.

See Send / Receive.

Local Variables

In order to save the result of a computation in one frame to use it for further calculation in the next you have to use a node called FrameDelay. Essentially by setting its input you write a local variable which you can read from in the next frame by connecting to its output.

FrameDelay nodes are therefore creating feedback-loops in a patch.

See Creating Feedback Loops.


IOBoxes can be used as constants, which are feeding manually adjusted Values (Colors, Strings...) for Inputs of the nodes and subpatches.

See IOBoxes.

Input/Output Parameters

Named IOBoxes are used to create Inputs and Outputs for subpatches. They can therefore be understood as input and output parameters of functions.

See Subpatches.


Looking for an Array, List, ...?

See Spreads.

Data Storages

Looking for a Buffer, Stack or Queue?

See Spread Collections.


An empty Array or List in textual language is Nil in vvvv.

See NIL.

State Automatas

When patching anything that can be separated into a series of states and events that cause transition from one state to another you are likely looking for Automata (Animation). Also the Timerliner has an automata built in.

See also:

anonymous user login


~3d ago

blausand: Ill be in #Warszawa next weekend. Any #vvvv people around to meet?

~4d ago

sebescudie: Last call, c'est ce soir : webinaire en français pour débutants sur #vvvv gamma! https://thenodeinstitute.org/event/introduction-au-creative-coding-avec-vvvv-gamma-francais/

~5d ago

domj: Ultra high definition volumetric visualization using GPUDirect storage https://youtu.be/GAZP1NcdWMo

~8d ago

CeeYaa: thx for V4-Meetup - some days ago 40th_RetuneStudioVisit from old friends RefikAnadol and Quadrature https://vimeo.com/429510091

~10d ago

david: 4. worldwide vvvv meetup will be here...https://www.youtube.com/watch?v=i0zd68tDUVE

~12d ago

mediadog: @metrowave Magnetic repulsion has always been pure magic to me, proof we only sense a small part of the universe - thanks!

~15d ago

guest: @graphicuserinterface cool project!combined with osc learn & setio plugin (exposed iobox) achieving some fake OscQuery setup

~15d ago

joreg: Letzter Aufruf für das heutige Webinar: creativecoding mit der visuellen Programmiersprache #vvvv gamma https://thenodeinstitute.org/event/einfuhrung-in-creative-coding-mit-vvvv-gamma/