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

VL

French

VL is a new visual programming language supported in vvvv that combines dataflow paradigms with features from object-oriented programming. It builds directly to the .NET Intermediate Language and can also consume .NET libraries. vvvv and vl work together in harmony. Whenever you're stuck in vvvv with expressing a certain problem, VL can most likely help out. This greatly reduces the number of cases when you'll have to resort to C# as a fallback solution.

Features

Define a Particle with properties (position, velocity, radius) and a create (white), update (gray) and hittest (blue) operation

Datatypes

Besides primitive data types like String, Value, Color,... VL allows you to patch your own complex data-types with custom behavior and lets you create and manage dynamic instances of them.

Iterate over the Particles in a spread and keep those whose lifetime is < 100

Loop regions

In vvvv all looping is handled via automatic spreading inside the nodes. VL hands this power to the patcher which opens up a whole new world of possibilities.

Patch operations without specifiying a datatype for its inputs or outputs

Generics

Generic programming, the implementation of operations irrespective of the concrete data type used at runtime is widely supported in modern programming languages. In VL, however, it is the default, which is very useful for creating libraries that work for any data type.

Trigger the execution of a webrequest in an async region to not block the mainloop

Async Regions

Sometimes parts of a program take longer to compute but should not block the mainloop. For those scenarios VL has async regions. Anything inside them gets computed on a background-thread and reports its result when finished.

Decide at runtime whether to order by time or id

Delegates

In VL, operations can be passed over links. Like this a patch can invoke an operation at runtime that has not been explicitly specified before. A powerful pattern in modern programming that makes generic and modular patching a breeze.

Handle midi-events as they occur and only send controller messages to the midi-output (without touching the mainloop)

Observables

VL embraces observables to do event handling. This approach works well together with the dataflow paradigm and is very flexible.

Getting Started

VL is included with vvvv since version beta35. Here is what should get you going:

VL in use

A couple of nodes shipping with the vvvv library are already relying on vl internally. Here is an incomplete list, just to give you an idea:

  • Editing Framework (Cameras, Point- and BezierEditors)
  • Arduino/Firmata nodes
  • TUIO encoder and decoder nodes
  • Midi File Reader

anonymous user login

Shoutbox

~15h ago

joreg: PSA: This wednesday 11pm vvvv.org will be moving servers. If everything goes according to plan we should be back within a few hours.

~23h ago

joreg: Also as every 2 weeks: This Tuesday: Free introduction to the all-new #vvvv: free-vvvv-intro-workshops-this-summer-in-berlin followed by the regular vvvv meetup

~23h ago

skyliner: anyone at usbynight?

~1d ago

joreg: Reminder: This wednesday in #berlin: Getting Started with Data Visualization: https://nodeforum.org/announcements/workshop-getting-started-with-data-visualization/ vvvv #creativecoding #dataviz

~3d ago

joreg: @eglod vvvv is international! wenn du hilfe auf deutsch brauchst, dann komm am besten in unseren deutschen chat: https://riot.im/app/#/room/#vvvv-at:matrix.org

~4d ago

eglod: In allen möglichen Sprachen gibt es VVV. V4 ist deutsch, warum nicht in deutscher Sprache. eglod

~4d ago

eglod: In allen möglichen Sprachen gibt es VVV. V4 ist deutsch, warum nicht in deutscher Sprache. eglod

~5d ago

joreg: Reminder: First #vvvv meetup in #hamburg this friday: vvvv-hamburg-meetup-1 Hope to see some of you there!

~7d ago

AKa-visuals: Hi guys. Everyone guess when xenko engine would be avaliable to play around in vl ... Isnt?