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



Patching pages

Creating IOBoxes

IOBoxes can be used to input (edit) and output (display) data.

There are 3 ways to create an IOBox:

  • via the Node Browser (open it and type IOBox)
  • via a double right-click in a patch
  • via a middle-click while making a connection

IOBox flavors

There is an IOBox for each of the 4 primitive data-types:

All other data-types (like Transform, Texture,...) share one IOBox:

Configuring IOBoxes

All IOBoxes have some settings available via config-pins in the Inspektor in common:

Name, Pin Visibility
  • Descriptive Name
  • Pin Visibility

are used when creating SubPatches.

  • Tag

is a string that is not used by vvvv but users can write plugins that access this information.

  • SliceCount Mode
  • Columns
  • Rows
  • Pages

are for spreading IOBoxes.

Depending on the SliceCount Mode setting the IOBox has its SliceCount determined by:

  • Input: whatever is connected to its input
  • ColsRowsPages: the product of Columns, Rows and Pages
  • Maximum: whatever of the above is more

If set to ColsRowsPages the product of Columns by Rows determines how many slices are visible in the IOBox.

The actual number of slices represented by the IOBox is further determined by the number of visible slices taken by the number of Pages.

If there is more than one page you can use the SliceOffset to "scroll" through all the available slices.

Visual properties
  • Font
  • Size
  • Show Grid
  • Show SliceIndex

are used for modifying the display.

Displaying Data

In order to display the current value of any output pin in a patch, connect it to an IOBox.

Editing Data

In order to specify a constant value for a pin that can easily be tweaked, connect it to an IOBox.


  • Left-doubleclick to enter a new value (also try math formulas).
  • Alt+Rightclick to reset to default value.

Real and Integer Values

Right-drag in the IOBox vertically to change its value and optionally modify the stepsize by pressing:

  • SHIFT to divide by 10
  • CTRL to divide by 10
  • CTRL+SHIFT to divide by 100
  • ALT+SHIFT to multiply by 10
  • ALT+CTRL to multiply by 10
  • ALT+CTRL+SHIFT to multiply by 100

Boolean values

  • 'Toggle': right-click to switch between 0 and 1.
  • 'Bang': right-click to set 1 for one frame, else 0.
  • 'Press': right-press to set 1 as long as mouse is pressed, else 0.


  • Right-drag to change it.

Press F1 on an IOBox to get different readily configured options that you can copy-paste into your patches as needed.



  • horizontally to change hue
  • vertically to change brightness
  • vertically and press CTRL to change saturation
  • vertically and press SHIFT to change alpha

The Color IOBox has several 'Chooser Styles', see Inspektor:

  • HSVA Field (default)
  • RGBA Slider
  • HSVA Slider


Right click in the IOBox to invoke the operation according to its subtype, see Inspektor:

  • most cases simply open a field to enter text
  • filename - open dialog will pop up
  • directory - open dialog will pop up

Note that no matter what subtype the string is if you press CTRL while right clicking the file-open dialog will appear. Pressing SHIFT will invoke the directory-open dialog.


Right-click in the IOBox to open up the pull-down menu, choose an item with a left- or right-click.

The enumeration IOBox can also be switched into a 'List' mode. Open the Inspektor and change the Style configuration pin.

Green IOBoxes

IOBoxes tinted green are exposed for being controlled from the outside. Use CTRL+K to toggle exposing. See Kontrolleur for more information.

anonymous user login


~3d ago

bjoern: Yo peeps! I am looking for a job/project starting July. For contact info check: vvvv specialists available for hire

~1mth ago

joreg: Summer Season 23 vvvv workshops are now ready for sign-up: https://thenodeinstitute.org/vvvv-intermediates-summer-2023/

~1mth ago

schlonzo: yeah! shader input pins now also visible, while the variable it not used!

~1mth ago

benju: Job opportunity, teaching Sounddesign for New Media purposes in Berlin (6hrs/week): https://www.letteverein.berlin/wp-content/uploads/2023/03/Ausschreibung_MIA_LK_6_UStd._Sounddesign_NEU.pdf

~1mth ago

joreg: vvvv gamma 5.0 is out! Please read all about it in the release notes: https://visualprogramming.net/blog/2023/vvvv-gamma-5.0-release

~2mth ago

domj: Coming to LPM next weekend? Learn more about one of the first full vvvv gamma apps, Schéma! https://liveperformersmeeting.net/editions/2023-muenster/program/detail/schema-talk/

~2mth ago

joreg: Want to get started with #vvvv? Check this 12 session beginner online course starting May 8th: https://thenodeinstitute.org/courses/vvvv-beginner-class-summer-2023/

~3mth ago

mediadog: @ggml Yup, lots. Only used in 4.x, haven't tried in 5.x yet: https://www.unrealengine.com/marketplace/en-US/product/simple-udp-tcp-socket-client