vvvv is a multipurpose toolkit.
A graphical programming authoring environment.
Free for non-commercial use.
vvvv 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. The following provides an overview of vvvvs main capabilities and features:
(also see the inofficial: illustrated-guide-to-vvvv-for-newbies-in-computer-arts )
vvvvs tools are provided in the form of a graphical programming language most similar to software like max, pd, reaktor or simulink. Individual operations or functions are represented as nodes. Links between nodes are drawn and modified with a minimal number of mouse clicks, creating a structure called patch that moves data as parameters from one node to another. Have a look at some Screenshots to get an idea of what working with vvvv is like.
Where many other programming languages have distinct modes for building and running programs, vvvv only has one mode - runtime. In other words, vvvv is constantly performing calculations and rendering graphics while you're editing a patch.
Where graphical programming meets its limits vvvv offers the possibility to code functionality using the textual programming language c# which gives access to all the functionality the .net library provides. Textual code can be written within vvvvs codeeditor that offers features like syntax-highlighting and code-completion. Nodes are written based on vvvvs plugin interface specification and are being compiled and ready to use while vvvv keeps running.
While a dedicated debugger is missing that would let you set breakpoints and inspect values, external IDEs like MonoDevelop, SharpDevelop or Visual Studio can be used to do that. As vvvv creates standardized project files that can be loaded by those IDEs they can be used to attach to vvvvs process and set breakpoints in the code.
Over the years vvvv has proven to be quite stable. While it still likes to vanish beneath ones mouseclicks randomly like any good software does it tends to stay up when it is up. You can find numerous examples of longterm vvvv installations in the Galleria.
vvvv can simultaneously handle a large count of objects, either graphical or data, without a significant effort by the user. This means that it is just as easy to control a single instance of a graphical object (e.g. an image) or 100 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.
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 usually a (render)clients/server setup is suitable to control any amount of client computers from a single server.
vvvvs built-in boygrouping technique allows just that and therby lightens the effort involved in creating multi-screen systems or seamless multi-projection setups. Boygrouping 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.
vvvv offers a wide range of possibilities if you want to create your own nodes. For programmers vvvv features a COM-based plugin interface which allows nodese to be written in a variety of different languages, like c# and f# but also delphi or c++. Vertex- and PixelShader nodes can be created based on the DirectX Effect framework. Video filter and analysis nodes can be implemented based on the FreeFrame 1.0 standard. VST plugins can be used as audio nodes. And of course patches can be prepared to be reusable modules.
vvvvs 3d engine is based on Direct3D an API (like OpenGL) for high performance computer graphics. using the power of modern graphic cards those APIs allow applications like vvvv to achieve similar render performance as computer games.
Apart from a collection of nodes that allows you to generate and modify geometry data on the fly vvvv can read X file and Collada files which can be exported from all major 3d-modelling softwares. With Collada files vvvv can import animation data for geometries and there is a set of plugin nodes to do character/skeleton animation/generation on the fly.
Textures can be generated dynamically from arbitrary data, (live) video input, flash movies or by capturing part of the desktop.
vvvv ships with a range of specialised nodes for generating smooth animations or filtering incoming sequences of values. For situations that require sequencing of events vvvv offers a timeline editor which includes a finite state automata.
vvvvs timeline is also available as in a standalone version that runs independet of vvvv, see TimelinerSA.
For all about animation with vvvv see the dedicated Animation page.
vvvvs videoengine is based on DirectShow and as such can play back a variety of video formats depending on the codecs you have installed. Also all video devices that come with a conventional WDM driver are supposed to work with vvvv. Be it usb-webcams, dv/firewire cameras or analog or digital capture cards.
Video effects and analysis nodes are implemented via the freeframe plugin architecture and can therefore be developed independently of vvvv. A range of nodes implements different tracking techniques, like contour- and color-tracking or motion- and object-detection.
Read everything about video with vvvv on the dedicated Video page.
vvvvs native sound engine is based on DirectShow and rather basic. While it is perfectly suitable for the playback of sound files (of basically any format Windows Mediaplayer can play) and simple FFT analysis of streams it is not suitable for any serious sound manipulation of even generation.
A set of plugin nodes wrapped around Bass (which requires an extra license for commercial use!) is more versatile as besides support for ASIO it allows the mixing of multiple sound sources.
Read everything about audio with vvvv on the dedicated Audio page.
|vvvv includes a set of nodes wrapping the ODE 3D physics engine. There are also sets of user provided plugin nodes wrapping the Box2D and Bullet engines. While the former can be used to simulate rigid body dynamics (collision detection with friction), the bullet engine even provides soft body dynamics.|
vvvv has nodes 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 vvvv offers higher level nodes for communication via MIDI, DMX, ArtNet, OSC, HTTP, IRC etc.
anonymous user login