vvvv

My last reviews in this series on creative programming toolkits for live performance covered OpenFrameworks and Isadora. Both are probably the most extreme ones in programming style. OpenFrameworks is for hard-core hackers with extensive C++ and OpenGL skills while Isadora requires no programming knowledge at all due to the more intuitive visual programming paradigm. In this review I cover vvvv, a Windows-only toolkit that combines both worlds.

vvvv uses a data flow approach and a visual programming interface for rapid prototyping and it allows programmers to inject textual code for low-level system and graphics programming. Applications written in vvvv are commonly called patches. Patches consist of a network of nodes which implement simple or complex operations. Patches can be created, edited and relinked while they are running.

Background

vvvv (also called v4 or v-four) is a hybrid visual/textual programming toolkit for easy prototyping of interactive visual installations and generative art. It robustly scales to large environments with physical interfaces, real-time motion graphics, audio and video and can interact with many users simultaneously.

vvvv is free for development and non-commercial use, but requires to purchase a (runtime) license for commercial projects. It has a development history of more than 10 years and has become reasonably stable. vvvv started as modular programming environment for live video synthesis developed by Sebastian Oschatz as a tool for in-house projects of the media collective MESO based in Frankfurt, Germany. Initially released in 2002 vvvv is actively maintained by the vvvv group now residing in Berlin. A very large and enthusiastic community of users and supporters contributes patches, plugins, demos and documentation.

Node Festival 2013

The vvvv group is organiser of the annual Node Festival in Frankfurt, Germany. The event is basically a meeting point for the entire community featuring A/V performances and exhibitions by international artists.

VVVV features

vvvv’s editor is a visual programming tool that requires no programming skills. Individual operations are graphically represented as nodes (boxes) with links between them to pass data along a user-created processing chain. The entire structure composed of nodes and links is called a patch. Patches are similar to projects in Isadora or traditional applications like OpenFrameworks creates them (they can be saved and loaded, etc). The main difference from textual programming languages is that a patch is always executing and any change takes immediate effect. In other words, while editing vvvv is continuously processing data and rendering graphics.

vvvv editor

vvvv is extendable with nodes containing custom code written in C#, OpenGL shader language or other languages. This way a programmer can access the entire functionality of Microsoft’s .NET framework and utilise the full processing power of modern GPUs. Code is automatically compiled in the background so you can seamlessly develop a mixed project from within the editor.

vvvv is known to effortlessly handle and efficiently manipulate large collections of objects, ranging from simple numbers to complex graphical data objects. This makes it possible to easily control the behaviour of particle systems and other complex groups of objects to create stunning visual worlds. If a single machine is insufficient, due to limited processing power or video outputs, vvvv supports the creation of a rendering cluster out of the box.

3D graphics in vvvv

Besides 2D and 3D graphics vvvv supports timeline editing with smooth animations and filtering of input parameters, live video tracking and video effects, sound rendering and sound analysis, and physics simulation. Nodes for sensor input of different type are available as are nodes to control external devices via MIDI, OSC, DMX, Artnet, HTTP, IRC and other protocols.

Nemore by 'fishing for compliments'

Limitations

The most important limitation is that vvvv runs on Microsoft Windows only since it requires DirectX for graphics rendering. The development team does not plan any native OpenGL version so it’s a waste of time waiting on a port to Linux or OSX. On Mac hardware you can run vvvv via Bootcamp plus Windows.

vvvv’s user interface is not the most intuitive version of a visual programming toolkit. It is known to be a rather big hurdle for newcomers, but the core team never changed it from the earliest version. Since the core of vvvv is closed source, including the user interface, there’s little chance anyone would implement a new user interface or fix any security-related bugs. As such I recommend users to be overly paranoid when running a networked vvvv installation over the open Internet.

vvvv patches cannot run inside a web browser, and you cannot compile projects into stand-alone executables. You always need a copy of vvvv itself. This is particularly important for commercial projects since the licensing terms require a license for each production machine.

A HTML5/JS clone, vvvv.js, is under active development by a different team. vvvv.js is open source and utilises new HTML5 APIs such as Canvas and WebGL and mimics vvvv’s core and user interface. I don’t understand the reasons why anyone would stick to the old-fashioned UI design, but since vvvv.js is open it is just a matter of time until someone starts implementing skins.

Facts

Current Version: vvvv_45beta29
Download: http://vvvv.org/downloads
Availability: Windows 7, Vista, XP, 2000 (32/64 bit versions)
Requires: 2GHz DualCore CPU and 2GB RAM, DirectX 9c
License: free for non-commercial use, 500 EUR per CPU, discounts available

Assembly by Kimchi and Chips made with vvvv

Links

Tutorials
http://vvvv.org/documentation/tutorials

An illustrated guide to vvvv for newbies in computer arts
http://vvvv.org/sites/default/files/uploads/vvvv illustrated beta_ENG.pdf

Forum
http://vvvv.org/forums

Twitter
https://twitter.com/vvvvshoutbox

Vimeo Channel is a showcase of work produced by vvvv users
http://vimeo.com/channels/vvvv

Node Festival 2013 (Feb 11-17, 2013)
http://node13.vvvv.org/

Selected projects