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


new post

  reset tags

addon-release core-release date devvvv gallery news screenshot stuff
delicious flickr vimeo

Click to toggle, doubleclick or Shift+click to solo a tag

Order by post date popularity

Finally, about 13 years late, we hand to you an extensive documentation about one of vvvv's most unique strengths: Spreads. We completely reworked the documentation on the topic and enhanced it with a lot of grayful images like this one:

One of the many spread operations now visualized: the Zip

It may seem a lot to digest at first, but take your time and use it as a reference whenever you're looking for an answer regarding a spreading topic. Specifically the listing of the most important Spread Operations should come in handy for beginners to understand and give them an overview of what spreads are typically used for.

Table of contents

You may note that for a start we have left out more complex spreading scenarios. Still, if one gets a good understanding of those basics all further dimensions should be much easier to grasp. Feedback welcome.

joreg, Wednesday, Mar 25th 2015 Digg | Tweet | Delicious 4 comments  

Who Mapping Festival
When Thu, May 7th 2015 - 18:00 until Sun, May 17th 2015 - 18:00
Where Geneva, Switzerland

Registrations are open for the next workshops of Mapping Festival, dedicated to audio-visual art and digital culture (May 7 to 17 2015).

Articulated around various themes and technological explorations, conducted by international instructors who are specialists in their respective fields, the six workshops will be spread over the two weeks of the festival.

Check www.mappingfestival.com for informations and registration.

Deadline: April 5th 2015!

Agit P.O.V. - Bike hacking with led lights (May 8 - 9)

Workshop conducted by Alexandre Castonguay (CA) and Mariángela Aponte Núñez (CO)

During this workshop, the participants will mount a 12-LED circuit, a micro-controller and a battery on their bicycle wheel. They will then be able to use persistence of vision (POV) effect to illuminate the streets during a mobile performance.

Game Design - Short Fiction to Board Game Adaptation (May 8 - 9)

Workshop conducted by Eddo Stern (US) and Douglas E. Stanley (CH)

In collaboration with the HEAD - Geneva

This workshop/masterclass will address various questions related to game design with Arduinity. The instructors will specifically discuss short fiction to life-size board game adaptation.

The Tricodeur - Knitting & Coding (May 8 - 10)

Workshop conducted by Sew&Laine + Louis Eveillard (FR)

The Tricodeur is a hacked knitting machine, which participants will use to address generative design through the creation of simple shapes, enabling the materialization of their knowledge of code on wool knit support.

Opera III - Dance and Interaction (May 8 - 10)
Workshop conducted by Giuseppe Bucci (CH) and Charles Mugel (CH)

In collaboration with the Fête de la danse

This workshop/masterclass proposes to the participants to discover the setup of a choreographic work, and to explore possibilities and constraints related to interaction between movement, sound and visuals thanks to a sensors system mounted on the dancer’s costume.

LED Club Design (May 11 -13)

Workshop conducted by Adrien Boulanger (FR), Yon Aliaga (CH), Gael Abegg-Gauthey (FR), Quentin Berthet (CH)

This workshop will explore the setting-up of a scenography using LED light bars, specially designed for an evening party at the Zoo Club (Geneva). The participants will have the occasion to run the installation during the Mapping Festival opening club night.
Mapping Playground (May 12 - 16)

Workshop conducted by CHiKA (US/JP), Mike Latona (BE), Matt Mets (US) + MAD team (FR/CH) & special guests

During 5 days, the participants will explore new techniques for software, electronics, LED lights, video mapping and interactive installations - all in one place. After learning how to manage and execute an installation, they will turn their ideas into a public exhibition at the end of this workshop.

Mapping Festival, Wednesday, Mar 18th 2015 Digg | Tweet | Delicious 0 comments  

When Fri, Mar 27th 2015 - 19:00 until Sat, Mar 28th 2015 - 06:00
Where OHM Berlin, Köpenicker Str. 70, Berlin, Germany

Evening Classes

Night Performance Program

Organized by LAB Berlin

Tickets include entry to Tresor’s All You Need is Ears partner event!

joreg, Wednesday, Mar 18th 2015 Digg | Tweet | Delicious 1 comments  

Ever thought about starting to learn programming with vvvv? Now is the time: From April 27th to May 3rd 2015 the 4th edition of the NODE – Forum for Digital Arts in Frankfurt/Germany offers a series of 48 workshops that welcome everyone to join the vvvv community.

The large number of workshops may be overwhelming to the beginner, so here is a selection of workshops recommended especially for the novice:


If you've never touched vvvv or you did but are not yet very confident you should definitely first attend either the german or english vvvv for newbies workshop which comprises of a 4 x 3h introduction spread over two days and will provide you with the fundamentals.

If you've already created your first projects but are still unsure about your practices attend Bring Your Own Patch on tuesday afternoon.


Once you're familiar with the basics you have the choice:


Take a break and suck in some theory at the symposium.


In case you can't make monday and tuesday there is another very easy introduction into vvvv offered by the Video Effects and Compositing workshop. Of course not as in depth as the two-day course and much more a focus on the specific topic but still very suitable for total newbies to attend.


Further down the road you may want to apply what you've learned so far and check out Cutting & vvvvolding Paper or learn the basics of VVVV.Audio. And in the evening get some inspiration for how your new skills could one day be applied by watching a series of topofthepops audio-visual performances.


In case the practice ever gets too much for you, note that you can always fall back to nodes comfortable series of 50 minute lectures: Of Patches and Projects. Besides you get to see an extensive exhibition on the forums leitmotif of "The Informed Body".

For completeness: Full Program

And a final word of advice: Don't contemplate about this for too long, most of the workshops already have only a few seats left. Looking forward to patch with you!

joreg, Tuesday, Mar 17th 2015 Digg | Tweet | Delicious 0 comments  

Dear NODE lovvvvers,

weeks of website buidling and fighting drupal resulted in a great digital home for NODE15:

Hopefully you all know this site already, got lost in the program and promising workshop descriptions and are planning your trip to Frankfurt right now.


Just have a look at the program, buy yor week or day pass if you didn't do that so far and log in to book them! As you might know from the schedule there are workshops that last a whole day or even two days. If it's possible for you, please book all sessions of one workshop.

Btw, wondering why there was a delay with releasing the booking system?
We have the best excuse and a very cute reason: Tom, alias baby Jenett-Horn :)

Best regards from the NODE15

remony, Friday, Mar 13th 2015 Digg | Tweet | Delicious 2 comments  

Who David Gann
When Tue, Apr 7th 2015 - 16:00 until Thu, Apr 9th 2015 - 20:00
Where Stadtbibliothek Köln, Josef-Haubrich-Hof 1 , 50676 Köln, Germany

A 3D Printer Workshop with VVVV, Blender and Meshlab.
Note it is two dates and you have to sign up at the Homepage of the Stadtbibliothek for each one separately

7. April 16 - 20 Uhrhttp://www.stadt-koeln.de/leben-in-koeln/freizeit-natur-sport/veranstaltungskalender/zentralbibliothek-makerspace-generative-3d-geometrie

9. April 16 - 20 Uhrhttp://www.stadt-koeln.de/leben-in-koeln/freizeit-natur-sport/veranstaltungskalender/zentralbibliothek-makerspace-generative-3d-geometrie-1

English Description:
3D Printing has already reshaped how designers and engineers approach the prototyping and production phase of a new and innovative idea. However this idea may look like, a 3d print always require a 3d model that has to be generated in the computer as a mesh of vertices (3d Points) that are connected in a clearly defined pattern.

The common ways of designing geometry involves hand-shaping those 3d points in a specific software using a palette of tools for modeling. But there are other methods that can significantly enhance our productivity and the quality of the print.
In this Workshop we want to learn and practice a new and promising way of creating a 3d geometry. In a generative design process we define rules and algorithms that build the geometry automatically. In this way we can on the one hand produce very precisely what we want, but there is also plenty of room for experimentation. We can automatically produce hundreds of variations and select the one that we like most. The methods you will learn combine modern advances in computer graphic algorithms (Delauney Triangulation, Tesselation, Spliting and Joining Vertex Buffers, 3d Scanning etc.) and the convincingly intelligent design patterns of nature itself (Plant Growth, Coral Growth, Natural Shapes etc.). This will be learned without writing a single line of programming language as we use the easy and fast to learn toolkit 'VVVV' and the participants can work with a set of prepared VVVV programs. We will also use Blender and Meshlab.

German Description:
3D-Druck hat sich heute bereits für Designerinnen und Designer sowie Ingenieurinnen und Ingenieure als wichtiges Werkzeug in der Prototyping- und Produktionsphase durchgesetzt. In diesem Workshop lernen Sie mit David Gann neue Methoden zur Herstellung von 3D-Geometrie kennen. In einem generativen Designprozess verwenden wir Algorithmen, um Geometrie automatisch entstehen zu lassen. Die hier behandelten Techniken kombinieren neuartige Computergrafik-Algorithmen mit Designkonzepten, die von der Natur inspiriert sind. Der Workshop behandelt das alles, ohne dass die Teilnehmenden tatsächlich Programmcode schreiben müssen, da wir das schnell und einfach zu erlernende Toolkit VVVV einsetzen.

Die Veranstaltung findet in Raum 304 auf der 3. Etage statt.

Workshop-Nummer: M-08

Im Rahmen von "Makerspace - Programm für Selbermacher":
Unser Makerspace ist ein offener Raum für neue Ideen, Potenziale und Do-It-Yourself-Projekte. Eigenes Tun steht im Vordergrund, vor allem aber der Spaß an der Sache! Nach einer kurzen Einführung können Sie selbst die verschiedenen Themen und Techniken ausprobieren. Unsere Expertinnen und Experten unterstützen Sie dabei.

Je nach Workshop werden Kenntnisse im Umgang mit der entsprechenden Informationstechnologie (PC, Smartphone oder Tablet) vorausgesetzt.


    Stadtbibliothek Köln
    Josef-Haubrich-Hof 1
    50676 Köln - Altstadt/Süd
tekcor, Wednesday, Mar 11th 2015 Digg | Tweet | Delicious 4 comments  

Due to the great success of our recent Holiday Dongle Discount we're happy to announce today the permanent price drop for vvvv dongles to a gorgeous 125€. Congratulations already, future buyers!
And while we have your attention we'd also like to introduce you to our new:

vvvv Dongle Edition

Classic 100% plastic case.
Priced from 125€
Limited Edition 18-karat gold case.
Priced from 11.000€
Choose according to your league. No pressure.

Rent a Dongle

Also new in our shelves: If you need dongles only for a shorter period (eg. the week of a fair) consider renting them. Tell us your specific needs via licensing@vvvv.org and we'll send you a quote.

Protektor provides dongle based copy protection for your vvvv projects. A dongle can be bought in addition to each active (less then a year old) full license. Volume discounts apply as follows:

  • 1-3: 125€ / 11.000€ + VAT
  • 22% off for the 4th to 9th dongle
  • 33% off for the 10th to 19th dongle
  • 44% off for the 20th to 99th dongle
  • 55% off for the 100th and more dongles

Discounts are applied per customer, ie. dongles don't need to be bought in bulk.

Please order via email to licensing@vvvv.org

joreg, Tuesday, Mar 10th 2015 Digg | Tweet | Delicious 1 comments  


here is the fifth in a series of blogposts about our forthcoming nextbigthing that we still call vvvv50 (50). If you haven't already done so please first read the previous issues with the titles:

  1. 50: That Next Big Thing. An Overview.
  2. 50: Colors
  3. 50: Properties
  4. 50: Generics
All information given here is still preliminary and subject to change.

Now please fasten your seat belt because this is a big one. Probably the single least asked for feature that could still become 50s unique selling point: Custom Datatypes.

There is a chance that for some of you it will now be enough to explain this in one sentence: In 50 a patch defines a datatype, horray! If that makes sense to you already, then cheers. There isn't much more to learn in this article.

Glad you're still reading. So you belong to the other group of people who are probably afraid that this may be the moment you're loosing it. It being your understanding of how it will be like to patch in the future? Fear not! "Custom Datatypes" only sounds abstract but is actually a very basic and intuitive concept. You'll understand and be happy to have them around soon, read on.

But before demonstrating how custom datatypes make our patchings easier with 50, lets first establish a problem in 45 to pave the road for the hype:

The demo scenario:

  • when the left mousebutton is pressed, particles (with random velocities) are added
  • when a particle reaches y < -1 it is being removed

In good old modular fashion here is how you could approach this:

A patch in 45 is merely a visual clue for the user

Step 1) A single particle

  • Create a patch called Particle that has a "Start Position" (2d), a "Velocity" (2d) and an "Initialize" input
  • Create a node of this Particle-patch, attach it to Mouse and Renderer and voila: A single particle moves as you click in the renderer
Left: the Particle patch that holds and manipulates the particles data in a framedelay loop. Right: a patch utilizing the Particle patch.
Click to enlarge.

Step 2) Multiple particles

  • Want multiple particles? Just spread them, right?. But how? If we'd just put a static randomspread to the Particles velocity input we'd get multiple moving particles, yes, but we'd not be able to remove individual ones once their y < -1
  • Intuitively we'd want to somehow create particles and put them into a spread as such. Only we don't really get hold of the particle itself. What we can get access to is its position and velocity properties. So lets put those in a spread
  • In order to be able to manage (ie. add/remove) individual particles we have to move the framedelay from inside the Particle patch (where we'd actually want it) to its parent patch. Now the Particle patch is degraded to a hull with the name "Particle" but it no longer holds the actual particla-data. That is bad.
Left: the Particle no longer holds the data. Right: the parent patch manages the particles data via InsertSlice and Select within a framedelay loop.
Click to enlarge.

The framedelay together with an InsertSlice and a Select allow us to easily (well,..) add and remove slices dynamically.

So far so 45. See the fact that we needed 2 framedelays here? One for Position and one for Velocity? Oh you can zip those two parameters into one spread, of course. But next you blink the boss demands the particle to have a Color and a Name and you already need 3 framedelays... See where this is going?

The general problem here is that, as mentioned in 50: That Next Big Thing. An Overview., 45 does not really understand subpatches. For 45 everything is just one big patch and when you carefully modularize the Particle patch, 45 does not get any of this. So Position, Velocity and any other parameters are just laying there but 45 does not understand that they all describe properties of a particle and actually belong together.

This is where in 45 we'd advise you to create dynamic plugins to join/split your custom datatype. Thats fine for a start, only it requires you to code. Also there are three contributions that I won't go into detail here but are worth mentioning in that respect: Message by velcrome, VObject by microdee and VVVV.Struct by woei & tonfilm.

So while you see there are ways in 45 to tackle such (still rather simplified) situations, they are all workarounds to that aforementioned inherent problem of 45 not knowing about subpatches. And we need you to be really frustrated about that, not about a missing grid or close-button in the UI. This is where we need you to chant in unison: "Go release the cat, we can't work like that".

Well, here we go:

A patch in 50 defines a datatype

What you really want to express when putting multiple properties in one patch is to wrap up all those properties into one entity that you can operate with. Which is exactly what happens in 50.

So just to make sure we got our terms straight, a quick recap:
Value, String, Color, Transform,... are all primitive datatypes we're used to.
Now when we create our own datatype we can think of it as a compound of multiple primitive ones. So for example our Particle could be a compound of:

  • Position (of type Vector2d)
  • Velocity (of type Vector2d)
  • Color (of type Color)
  • Name (of type String)

In other words: Those 4 properties (each of which has their own primitive datatype) together in a patch make our custom datatype called Particle. And of course this can be taken further. Think of a custom datatype called "Firework" that has a Spread<Particle> (meaning a spread of particles) and so on. So yes, datatypes can be compound and cascaded in any way. Apart from properties, datatypes also usually have one or more operations. Therefore the terms "patch" and "datatype" can be used synonymously.

To the point. We could of course exactly replicate Step 1) from above in 50 but we'll leave that up to your imagination and skip it here (as it would look exactly the same minus the framedelay). Instead we jump right into the definition of our custom datatype, which in its most simple form could look like this in 50:

Reading the patch:
In the (still rather rudimentary) listing on the left side you see that this patch has two properties called "Position" and "Velocity" and it has two operations called "create" and "update".

We've mentioned operations before, they are sections in a patch that can be independently executed. In 45 every patch has only one operation, therefore we never gave it a name, but think of it like "update" or "evaluate", ie. the operation that is called once every frame. In 50 a patch can have any amount of operations that can be executed any amount of times per frame (just dropping that here...more on it in a later posting).

So here the "create" operation is used to set initial values for a particles Position and Velocity properties. In further executions of "update" the velocity is always added to the position and the result is again stored in the "Position" property for the computation of the next frame. Also the result is being returned to the caller of the "update" operation as you can see via the little quad in the bar labeled "update".

Next: How do we create an instance?

Instantiating a custom datatype

ad step 1)
Lets again start with placing just a single particle in the patch:

By simply creating a "Particle" node in a patch, what actually happens in 50 is that we create a static instance of the type "Particle". Static meaning that it is instantiated when the program starts. The particle executes its "create" operation once and then repeats executing the "update" operation every frame until we delete the node or stop the program. We can of course create multiple Particle nodes next to each other and have multiple static instances.

Give it a velocity and it moves..done.

Creating dynamic instances

ad step 2)
The challenge now is to create multiple instances of Particles dynamically. But don't think 45 style SetPatch (VVVV), where you'd tell vvvv to actually create a Particle node and place it in a patch... no. This is where the 50 magic chimes in:

Instead of placing the "Particle" node as such in a patch we can also just call individual of its operations. Booom. In the patch below notice the "* Particle" node. This one is short for Particle.Create(), ie. calling the particles "create" operation to create and return a single instance. And then spot the double-decker ".update Particle" which is (not so short) for Particle.Update() that is called in the "For Each" region, ie. it is called once for each particle in the list.

Reading the patch:
When the left mouse button is pressed a new particle is added to the spread with the current mouse position as start position and a random velocity. Remember from the last posting about generics that the ".add Spread" is not specific to the particle! Then for each particle in the spread the update-operation is called so the particles move. Also for each particle a circle is created. The select node only takes particles that are still alive (ie. have an y < 500) and writes them back to the spread of particles. Finally all the circles are drawn in the renderer.

If you now once more compare the 45 and 50 approaches here is what you should note:

  • in 45 the data of the particle is mixed together in a patch with the parts that manage the particlesystem (ie. add/remove particles). That works ok-ish in this simple example but is hell in larger scenarios.
  • in 50 the data and functionality of the particle are conveniently wrapped inside a particle patch and another patch around the particle, which we could call ParticleSystem, simply manages multiple instances of particles. So when changing functionality in the particle nothing has to be changed in the ParticleSystem. This is big!

You still here?
yawnsmiley... let us digest this information for a while. I think it is enough for this time. Still more to come..

Appreciate what you just read? We appreciate a click: .

joreg, Sunday, Mar 1st 2015 Digg | Tweet | Delicious 10 comments  

Here we go,

turns out it is quite a hassle to get 48 workshops run by 58 hosts in 5 days in 7 rooms under a single hat. You see the gorgeous result above and can get the .pdf here. Now it is on you to find your personal path of interest through the week and get your ticket. Full workshop descriptions and booking of individual seats will be available by next week!

Here is an alternative view on the workshops sorted by some vague categories:

Patching & Coding

  • vvvv for newbies/für Anfänger
  • BYOP - Bring Your Own Patch
  • vvvv50 snail/rabbit introduction
  • Object Oriented Patching with VObjects and Messages
  • Git for vvvv Projects
  • vvvv.js: Extending your Patching Skills to the Web
  • Multiscreen Setups & Boygrouping,
  • Dynamic Plugins,
  • Plugin Development with Thirdparty SDKs

Animation & Graphics

  • Basic DirectX11 Shading
  • Advanced DirectX11 Shading
  • DirectCompute: A Multipurpose Shader
  • Generative Design Algorithms
  • Oculus Basics
  • Box2D Physics in vvvv
  • Realtime Physics in 3D
  • Shading Pointclouds
  • GPU Particles
  • Transformations
  • Emeshe: An Advanced Rendering Technique in DX11
  • Video Effects and Compositing

Hardware & IO

  • Arduino & VVVVirmata
  • Soft Sensors for Soft Bodies
  • Bodysensors
  • 3D Printing - vvvv and OpenSCAD
  • vvvv meets G-Code
  • Cutting & vvvvolding Paper
  • Grasshopper & vvvv
  • The World is our Canvas! Projection Mapping with vvvv
  • Knitting with vvvv
  • Ways of Seeing (with Computers)


  • Kinect Basics
  • Kinect Interactions with DX11 - Pointcloud
  • Machine Learning with vvvv
  • Kinect & Oculus
  • Recording and Annotating Movements
  • Interacting with Choreographic Installations
  • Connecting Things to the Internet of Things


  • Interfacing Reaktor and vvvv
  • SonicPI
  • VAudio

You have no idea how much we are looking forward to this! Roughly 9 weeks time to prepare for the rush everyone. Back to coding...

joreg, Friday, Feb 20th 2015 Digg | Tweet | Delicious 6 comments  

For the Third Edition of GLOWFestival we decided to give an even bigger and more exciting edition of Festival also because 2015 was proclaimed by the UNESCO International Year of Light . And the GLOWFestival was recognized by the IYL (International Year of Light)! with the patronage and moral support! Many news this year about the use of light in artistic form in GLOWFestival, like:

° The video mapping Open call, with the choice of one of three locations;

° Mapping4kids Open Call! May participate kids of all ages. We ask them to to reinterpret the path of Locations that we will provide and to create an image based on it. Imagination is the limit! So if selected, they will see their drawing projected on one of the three locations of video mapping;

° 3D Official Gadget Festival Open Call, create the 3d model of gadget and see it printed in limited editions;

° outdoor installations open call with theme of light;

° BYOB (Bring Your Own Beamer Ostuni - in the historic center of Ostuni) The GLOWFestival offers you a chance to let everyone see what you can do with your projector and computer!

° Talks on Digital Media during the days of GLOWFestival;


gloWArp.com, Tuesday, Feb 17th 2015 Digg | Tweet | Delicious 1 comments  

anonymous user login


~15h ago

joreg: wanna dive into #visualprogramming with #vl vl? earlybird tickets now: http://resonate.io/2016/tickets #vvvv #res16 @resonate_io

~2d ago

~2d ago

dschordsch: someone knows a good tutorial for vvvv-3d beginners?

~2d ago

elektromeier: yes just realised theres two results or even an unclear result in the situation you described. thanks elliot. have it working

~2d ago

elliotwoods: @fleg - hmm... sorry

~2d ago

elliotwoods: @dominikKoller @elektromeier - if all your samples are in 1 half of the circle then min,-,mod,mean,+

~2d ago

elliotwoods: Forgot to post this earlier : Festival opening tomorrow in Korea. Incredible line-up and space. http://actcenter.kr/ #actfestival

~2d ago

fleg: @elliotwoods thanks. got the new edsk, overwritten files in \Dependencies\EDSDK\x86 - device still not found