vvvv it is suitable for many tasks involving common computer related media like audio, video, 3d animation, the internet,.. to name only the hottest. Besides creating and transforming content for the aforementioned media, vvvv is also well trained in receiving input from and generating output to various external devices.
Below the main features of vvvv are listed and briefly introduced. For details, please refer to the Documentation.
Spreading is an abstraction that refers to the act of distributing different values across a set of objects. Setting a table is essentially "spreading" a set of dishes out across the table, as each one has a different position on the table. vvvv contains many spread generators that make it easy to program complex behaviours for a large group of objects.
Boygrouping lightens the effort involved in creating multi-screen systems or seamless multi-projection setups. It allows to set up a render cluster, where one can individually select which nodes will run on the server and which nodes will run on the clients. The ability to control which data needs to pass the network and which data is better individually computed on all the clients allows to manually optimize a setup. No magic involved.
DirectX is an API (application programming interface) for high performance computer graphics. Using the power of modern graphic cards DirectX allows vvvv to achieve similar render performance as computer games.
The translation of DirectX-features to vvvv’s visual programming interface has been kept close to DirectX terminology where appropriate.
Therefore people familiar with DirectX programming should find it rather easy to understand what's going on beneath the hood.
vvvv has its own shader/effect editor built in which provides high level access to most DirectX features via shaders. Since vvvv gives a lot of attention to real-time programming, there is no use to explicitly compile the shader-program. vvvv automatically compiles your changes in the background, so you can see the result instantaneously.
If those are not enough, there is always the possibility to program a custom freeframe plugin.
All input devices (That also refers to multichannel devices) that come equipped with a conventional windows driver (WDM) are supposed to work with vvvv. Probably the most interesting feature for many is to analyse incoming sound and there are ways to get the volume of a channel or get the volume of different frequencies via FFT Analysis.
besides standard low level protocols such as TCP, UDP or RS232 for communication with other computers and software, higher level nodes allow for communication via MIDI, DMX, ArtNet, OSC, HTTP, IRC etc.
A http server node allows direct serving of web content like web-sites and images. This service can be very useful for remote administration of vvvv installations.
vvvv also provides special nodes for dealing with xml-formatted strings as well as all kinds of other string data.
As a very special feature, vvvv’s own file format is xml conform which allows reading data from a running patch as well as setting a patch’s state from itself. In other words: a patch can manipulate itself, to manipulate itself, to manipulate itself,…
While this may sound weird to vvvv beginners those who understand the potentials will like it.
You might want to check the Galeria to get an impression what people do with vvvv.
For some more propaganda see: Testimonials and Reviews
Below the main features of vvvv are listed and briefly introduced. For details, please refer to the Documentation.
Effortless handling of multiple Objects with Spreads
vvvv can simultaneously handle a large count of objects, either graphical or data, without a significant effort by the user. With vvvv it is just as easy to control a single instance of a graphical object (e.g. an image) or 1000 without a significant change in the user interface. We call this technique "spreading".Spreading is an abstraction that refers to the act of distributing different values across a set of objects. Setting a table is essentially "spreading" a set of dishes out across the table, as each one has a different position on the table. vvvv contains many spread generators that make it easy to program complex behaviours for a large group of objects.
Seamless Multi-Projection Setups with Boygrouping
There are applications where one will need to use several PCs to achieve the desired output/screen count. In those situations it could become quite messy to deal with all the PCs individually. Instead, vvvv is suitable to control any amount of client computers from a single server with a technique called Boygrouping.Boygrouping lightens the effort involved in creating multi-screen systems or seamless multi-projection setups. It allows to set up a render cluster, where one can individually select which nodes will run on the server and which nodes will run on the clients. The ability to control which data needs to pass the network and which data is better individually computed on all the clients allows to manually optimize a setup. No magic involved.
DirectX based 3d Rendering
vvvv’s 3d engine is based on Microsofts DirectX technology.DirectX is an API (application programming interface) for high performance computer graphics. Using the power of modern graphic cards DirectX allows vvvv to achieve similar render performance as computer games.
The translation of DirectX-features to vvvv’s visual programming interface has been kept close to DirectX terminology where appropriate.
Therefore people familiar with DirectX programming should find it rather easy to understand what's going on beneath the hood.
Loading 3d Models
Despite vvvv includes specific nodes to create or generate and modify geometry data it can not be considered as a 3d-modeller tool. Importing textured models in DirectX's own .x file format which can be exported from all mayor 3d-modelling software is the way of animating existing models. Besides importing models, vvvv provides standard geometry primitives like quad, grid, box, sphere, and the teapot of course.Texturing 3d Models with Motion Graphics and Video
There is a large variety of possibilities to use textures in vvvv. Beside static image files in common formats (.bmp, .tga, .png, .dds...), vvvv is suitable to texture any kind of 3d Model with videos, camera inputs or flash movies. Even part of the desktop can be used as a texture or textures (including volume textures) can be generated on the fly from arbitrary data in a patch.Real-time Shader Programming
The pixel and vertex shaders within vvvv allow the user to program many more visual looks than the usual 3d look. Shaders allow you to run programs (the shaders) in the graphics card itself and the shader defines how the graphics card interprets each 3d-vertex sent to it, what kind of calculations it adds to it, and how each pixel color gets calculated.vvvv has its own shader/effect editor built in which provides high level access to most DirectX features via shaders. Since vvvv gives a lot of attention to real-time programming, there is no use to explicitly compile the shader-program. vvvv automatically compiles your changes in the background, so you can see the result instantaneously.
Real-time Physics Simulations
vvvv comes with the open source, high performance library ODE by Russell Smith that can be used for simulating rigid body dynamics (collision detection with friction). ODE is useful for simulating vehicles, objects in virtual reality environments, virtual creatures and much more.Real-time Video Analysis
Video analysis nodes are implemented via the freeframe plugin architecture and can therefore be developed independently of vvvv. Several nodes already exist that are deploying different tracking techniques: Contour Tracking, Color Tracking, Motion Detection, etc.If those are not enough, there is always the possibility to program a custom freeframe plugin.
Audio capabilities
vvvv’s sound engine is based on Microsoft’s DirectShow technology and is perfectly suitable for the playback and simple mixing of a variety of sound files (of any format Windows Mediaplayer can play).All input devices (That also refers to multichannel devices) that come equipped with a conventional windows driver (WDM) are supposed to work with vvvv. Probably the most interesting feature for many is to analyse incoming sound and there are ways to get the volume of a channel or get the volume of different frequencies via FFT Analysis.
Interfacing with a wide variety of external devices and protocols
vvvv has functions for controlling a variety of different types of third party devices, including DVD players, industrial interfaces (for lighting and electronics), touch-screen monitors, gaming devices, dials, switches, position & orientation sensors, MIDI equipment, DMX interfaces, serial port devices, keyboards and (multiple simultaneous) mice.besides standard low level protocols such as TCP, UDP or RS232 for communication with other computers and software, higher level nodes allow for communication via MIDI, DMX, ArtNet, OSC, HTTP, IRC etc.
A http server node allows direct serving of web content like web-sites and images. This service can be very useful for remote administration of vvvv installations.
vvvv also provides special nodes for dealing with xml-formatted strings as well as all kinds of other string data.
As a very special feature, vvvv’s own file format is xml conform which allows reading data from a running patch as well as setting a patch’s state from itself. In other words: a patch can manipulate itself, to manipulate itself, to manipulate itself,…
While this may sound weird to vvvv beginners those who understand the potentials will like it.
You might want to check the Galeria to get an impression what people do with vvvv.
For some more propaganda see: Testimonials and Reviews
