vvvv

from Wikipedia, the free encyclopedia

vvvv is a graphical development environment for "creative coding" that is being developed by the vvvv group (Joreg, Max Wolf, Sebastian Gregor, Sebastian Oschatz). vvvv is used to generate and manipulate video, graphics and data streams in real time.

history

In 1998 the company Meso Digital Media Systems Design , today MESO Digital Interiors & MESO Digital Services , initiated the development of the software vvvv, which was originally intended as an in-house application. It had a narrower GUI with which you could set parameters at runtime, but not add new elements.

One of the first projects in which the software was used was the Cyberhelvetia installation, jointly realized by Meso and 3deluxe , at Expo 2002 in Switzerland. For this purpose, a large number of interactive applications were developed with the help of vvvv, which responded to language, movements and the weather. Over the past few years, numerous other projects have been implemented with the help of vvvv, the implementation of the complete lighting, video and room concept of the Frankfurt Cocoon Club and the football globe is particularly worth mentioning .

functionality

vvvv basically runs in real time, changes to the "program code" are carried out directly - vvvv can therefore be classified in the category of data stream-oriented programming languages .

In contrast to conventional textural programming languages, vvvv uses graphic objects, so-called "nodes", to develop programs. Individual nodes have input and output pins, which can be connected to one another with the mouse via virtual cables and thus can exchange data with one another. Input pins are arranged at the top, output pins are arranged at the bottom.

Based on programming languages ​​such as APL and J , vectors of data (so-called spreads) can be transmitted over each connection, which can be processed in parallel by the nodes.

In comparison with classic programming, a node can best be compared with a function - whereby the input pins can be seen as analogous to the function parameters and the output pins as analogous to the function return. In contrast to languages ​​that are based on a one-dimensional character string, you do not have to rely on an unnamed return value being used in exactly one calling function.

application areas

Due to the modular program structure and the capabilities for real-time graphics, vvvv is particularly intended for use in multimedia environments. A short excerpt of the possibilities below:

  • Development and control of multimedia installations: generation and analysis of audio and video signals, processing of various input and sensor signals, control of external systems using open standards ( XML , HTTP , RS-232 , TCP , UDP , OSC , DMX , MIDI ), development of various VJ ( Visual Jockey ) applications: Synchronization of audio / video applications and use of various external controls such as B. Midi controller
  • Development of prototypes: Short development cycles and fast implementation of ideas through graphic programming.
  • By integrating HLSL shaders based on DirectX , vvvv allows very easy use of hardware-accelerated 3D graphics.
  • Projections: This allows numerous situations. Adaptation of the image output to a wide variety of non-planar projection surfaces; Use of the software to distribute image material to several projectors

With vvvv it is not possible to generate independent applications; the vvvv runtime environment is always required to run a program. For this reason, vvvv is only suitable to a limited extent for developing applications in the sense of classic user programs.

Analogies

Vvvv can best be compared with Max / MSP from Cycling74 and its open source counterpart Pure Data . However, both are applications that were originally developed for midi control and audio processing and were only later adapted to the generation of 3D real-time graphics. There are also weaknesses in the simultaneous processing of objects. The modules in vvvv basically work with so-called spreads, which means that several parallel calculations take place in one work step, which makes programming much easier.

Web links