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

Blog

new post

Blog-posts are sorted by the tags you see below. You can filter the listing by checking/unchecking individual tags. Doubleclick or Shift-click a tag to see only its entries. For more informations see: About the Blog.

  reset tags

addon-release core-release date devvvv gallery news screenshot stuff
delicious flickr vimeo
Order by post date popularity

previously on vvvv: vvvvhat happened in March 2018


time flies,

more than a month now since the release of b36 and we are happy with it. but are you? anyone using a previous version still? meanwhile we have b36.1 heavily in the making where we are concentrating our work on the vl CoreLib. making it more managable so we can finally open it up for contributions. some of the fruits can already be seen in the nodebrowser if you're using alpha builds. announcement and some explaining words on this still pending. and then quite some crazyshit is happening in the secret labs that we hopefully can talk about soon...geee

one of the more often requested features for vvvv was the ability to run different parts of a project in different mainloops. since b36 this is conveniently possible using vl and the article Patch Your Own Mainloops explains how. no more excuses...

still more on the beginner end of things?

and in case you missed the annoucement: LINK - the vvvv summercamp application will open soon and selected participants will then be informed by june 8th, leaving you with 2 months to arrange your travels.

Contributions

some nifty new stuff:

and updates for two oldygoldies:

and two nice teases from upcoming work by microdee as part of his md.ecosystem 3.0:

Wips

happy to see three works in progress shared in april. keep them coming:

Gallery

Melting Memories by Refik Anadol
as mentioned in this writeup on creativeapplications

and meso documented 3 of their latest works:


that was it for april. anything to add? please do so in the comments!

joreg, Thursday, May 3rd 2018 Digg | Tweet | Delicious 1 comments  

Welcome dear patchers to a new episode of devvvvs giving you control over your PC mainboard.

When you work in vvvv or VL the evaluation of your patch is automatically driven by a mainloop. It executes the nodes in your patch (usually) 60 times per second and by this allows changes to happen in your patch over time.

If you have a look at the PerfMeter in a renderer with a mainloop timer without any tweaks you will see lots of flickering like this:

Those flickers indicate that the time between two frames of the mainloop is changing a bit every frame. In an ideal world those flickers would not be there and the time between two frames would always be the same. An unstable mainloop like this creates jitter in animations, drops video frames and lets the visual output of your patch look less smooth.

It's quite a difficult task to get high-precision timer events on a modern computer architecture. Timers and me go way back to the early vvvv days at MESO when i worked on the vvvv mainloop and the Filtered time mode. Since then we could improve the vvvv mainloop time stability quite a bit by doing tricks like changing the windows system timer resolution and introducing a short busy wait phase at the end of the mainloop. The result of this work looks like this:

The experience gathered from the vvvv mainloop improvements is now available in the VL library, so you can build your own sub-mainloops.

But why would you need your own timer at all if you have a good mainloop already? There are a few reasons:

  • Have a second mainloop on a different thread to split performance or don't block the mainloop
  • Process something at a slower rate as the mainloop to save performance, e.g. web requests every few seconds
  • Process something at a higher rate as the mainloop, e.g. output to a micro controller or servo motor
  • Run parts of your patch in it's own mainloop to avoid blocking user input from vvvv

General Node Design

In VL the patch of a process node by default has a Create and an Update operation. Create gets called once an instance of the process is created and Update gets called periodically by the mainloop. In this process node patch you can place other process nodes that 'plug into' those two operations by placing their own Create on the Create of the surrounding patch and their Update on the Update of the surrounding patch.

This is the same for stateful regions like ForEach [Reactive], only that the Update of the ForEach region doesn't get called automatically by the surrounding patch but gets called by the events of the incoming observable. More on that in this blog post: VL: Reactive Programming

There are many sources of observable events. For example Mouse, Keyboard and other input devices as well as AsyncTask or MidiIn. The timer nodes work in the same way. The output is an Observable that is on a new thread and either sends the frame number (for the system timer nodes) or a TimerClock (for the MultimediaTimer or BusyWaitTimer). A patch would look like this:

The use of observables also makes it easy to swap one timer for another if neccessary.

Basically there are 3 ways to setup timers in windows and now VL has them all!

System Timer

This is the most common timer but it usually only has a precision of 16ms. It can be used for recurring events when accuracy is not the most important issue and the interval is in the seconds range or a higher millisecond range. Nodes that use these timers are for example Interval and Timer in category Reactive:

Multimedia Timer

This is a dedicated timer for applications that do video or midi event playback. It is fairly accurate to about 1ms and doesn't need much CPU power. So it can be used for most time critical scenarios. To use this timer, make sure you enable the Experimental button in the VL node browser and create the node MultimediaTimer:

So that's nice, but it has two little draw backs. You can only specify the period in whole milliseconds and as you can see there is still some flickering in the measured period times. The flickering is well below 1ms but still, we can improve that:

Busy Wait Timer

Since its possible to measure time with high accuracy, one can write an infinite loop that always checks the time and executes an event once the specified interval time has passed. This timer always uses 100% of one CPU core because it checks time as often as it can. But hey, how many cores do you have these days? With this method you can achieve precision in the micro second range, which is insane!

If any patch processing is happening on the timer event, the power of your core is of course shared with the busy wait. Just make sure that the processing doesn't take longer as the specified period:

This timer has an option to reduce CPU load for period times that are higher than the accuracy of your system timer. You can specify a time span called Wait Accuracy. This is a time span before the desired end of the period that specifies when the busy wait phase should start. Before that time the timer is set to sleep for 1ms periodically. 16ms is a safe value, but you can decrease it until the Last Period starts to jump in order to reduce CPU load even more.

Threading

Both the MultimediaTimer and the BusyWaitTimer start their own background thread with priority AboveNormal. The thread priority setting might become an input pin in the future.

So now download latest alpha, enable the Experimental button in the VL node browser and give it a shot. If anything unexpected happens, let us know in the forums.

yours,
devvvvs

tonfilm, Wednesday, Apr 18th 2018 Digg | Tweet | Delicious 7 comments  

HEY we got news!

Thanks to helpful support from
Responsive Spaces
2monochannele
Ivan Rastr Lab

we will have vvvv beginner's courses in
Berlin, London, Saint Petersburg, Athens and Linz this summer!

Map

In 6 days, these courses will give beginners a solid grip on vvvv basics and interactive tech.

More at:
http://vvvv.academy/

Logo
dominikKoller, Monday, Apr 16th 2018 Digg | Tweet | Delicious 0 comments  

previously on vvvv: vvvvhat happened in February 2018


we did it!

beta36 is out, after only a few months overtime, packed with new features. please read the release notes carefully to learn about all the goodies. judging by the >100 downloads a day and not too many crazy bugreports since, i think it is fair to say at this point that it turned out well. if there is still a particular reason you're using an older version, please make sure to let us know about it!

are you into computer-vision? wanna see one particular thing you can do with beta36? check out our first episode of vvvvTv in which we cover a new computer-vision library for vl available as a prerelease now.

planning your summer travels? save the date for LINK - the vvvv summercamp!

and a new book it out about learning vvvv: it is in chinese. so only the majority of people on earth now got a chance to get in touch with vvvv, horray! many thanks to the authors for their dedication!

Contributions

two new ones by new user Bartuc, welcome!

and updates by our trusted gang:

Jobsjobsjobs

  • looking for a possibly permanent position? consider this offer by vw in podsdam, near berlin
  • looking for a payed internship? try this offer by meso in frankfurt
  • or just wanna take a vacation on a beautiful island teaching some vvvv/vl? have a look at this offer by io.

all not good enough? check out these job boards:

Gallery

tens by ggml

and don't miss this poetic project digital-dandelion posted by zepi!

Upcoming workshops


that was it for march. anything to add? please do so in the comments!

joreg, Wednesday, Apr 4th 2018 Digg | Tweet | Delicious 2 comments  

Who david, a a a a, joreg, sebl and hopefully you
When Wed, Aug 8th 2018 - 10:00 until Sun, Aug 12th 2018 - 23:59
Where At a peaceful lake near Berlin, somewhere near nowhere, Germany

The lake

Attention patchers! Save the date!

We're planning to spend some good times.
Save the date for LINK, the very first VVVV summer camp.

The summer camp will take place from August 8th to August 12th this year at a wonderful and peaceful sight near Berlin. The camp will be a short vacation from your everyday life, a time for ideas and projects you never found the time for.

You are willing to bring your ideas and developments and this communtiy further? Then this is the place for you!

Nota bene: There will be only a super limited amount of seats available. The summercamp is not like an academy or workshop. You are not coming to learn. Here you are coming to share and spend quality time together while bringing forward your developments and ideas for future developments.

Expect 5 fantastic days at the lake with tents, barbecue, wine and overheating notebooks.

So save that date now.
Details on everything and how to apply for it will follow soon here.

happy eastern

david, Saturday, Mar 31st 2018 Digg | Tweet | Delicious 12 comments  

computervisionados!

we're starting to collect the fruits of our hard efforts of making it easy to use thirdparty libraries. please give a warm welcome to VL.OpenCV

What the?

remember the amazing ImagePack initiated by @elliotwoods years ago? VL.OpenCV is essentially the same, only for vl: a collection of nodes for computer-vision tasks based on the industry standard library OpenCV.

OpenCV is a vast library with an endless number of interesting features. elliot back in the days did a great job in hand-picking some of the most interesting ones and wrapping them into easy to use nodes for evvvveryone.

meanwhile OpenCV has progressed and so we thought we'd give it a try and make it accessible for everyone in vl. watch this first episode of vvvvTv where ravazquez who has been working on this for the past 2.5 months, explains how you can use the prerelease package today.

Status

if we haven't missed anything, most of the functionality you know from the ImagePack should already be available, except some special video input devices, StructuredLight and FeatureDetection stuff but on the other hand already much more:

so we have:

  • sources: ImageFile, VideoFile, VideoIn (Directshow)
  • sinks: ImageFile, VideoFile
  • filters: Blur, EdgeDetection, Average, FrameDifference...
  • different background substraction options
  • optical flow
  • camera/projector calibration
  • trackers: contours, face recognizer, houghlines, object detection (via haarcascades), different 2d tracker options
  • ar marker tracking and pose estimation
  • utils: Info, CountNonZero, FindNonZero, Resize, Crop, Insert, Split, Merge, Delaunay, Voronoi,...

and most of the nodes and pins come with documentation in the tooltips!

Threading

as opposed to the ImagePack, this library is completely free of the complexities of threading. instead a user can use the threading regions of vl to define their own threading. while this indeed puts a bit more effort on the user we hope that the flexibility in dealing with their own threading outweighs the cons of this.

Next

the library is open for everyone to contribute. since it is mostly done in pure vl, with hardly any c# written, it is quite accessible for everyone to extend. so please do so and best join us in the chat to discuss matters when they arise.

joreg, Thursday, Mar 29th 2018 Digg | Tweet | Delicious 9 comments  
Symbiosis: VL handling the heavy load for VVVV

this is a big one!

in the works for more than half a year, it is finally out: beta36 comes with a lot of new stuff for both vvvv and vl. many thanks to everyone who helped us tweak the release by reporting problems with the release candidates. but now please have a look at the following list of highlights of this release:

VVVV

VL

for many more details, please consult the changelog as linked to below.

so where are we at? with the nobrainer access to .NET libraries now at hand the question "can vvvv/vl do X?" has just become even less relevant. chances are that if you have a .NET library that you want to use in vvvv/vl you can just do so. extending the node libraries of vvvv and vl is therefore now much easier than it has ever been since in many cases not even c# has to be written anymore.

also with the added possibility to create DX11 buffers and images/textures in vl, dx11-heavy projects can gain a lot of performance by doing their CPU heavy parts in vl, possibly using the new AsyncLoop and AsyncTask regions to finally use the power of all your CPUs cores without the need to run multiple instances of vvvv.

consider this release the foundation of all the good things to come. it is now on you to make use of all these new possibilities. we're looking forward to your questions and contributions and to showing you the other things up our sleeves..

yours,
devvvvs.

joreg, Tuesday, Mar 20th 2018 Digg | Tweet | Delicious 6 comments  

a single change this time by woei:

joreg, Tuesday, Mar 20th 2018 Digg | Tweet | Delicious 0 comments  

Dear patchers worldwide,

we're planning to take the vvvv academy on tour this summer. There will be another course in Berlin in July and we'd like to also take it to 2 more cities in europe or beyond.

The course ideally runs like this:
• wednesday, thursday, friday plus monday, tuesday wednesday of the next week
• 2x3 hours a day
• with ~6 participants
• I'll be coming to run the course and could need a local assistent

So here is our question:
• Do you have an office space (~30sqm room with power, internet, projector) that you could offer for a week?
• In the time between end of July to end of September?
• Can you help us activate your local community so we get ~6 people signing up for a course that will cost 800€?

What's in it for you?
• To be discussed, but for one thing you'll meet a crowd of motivated people who could potentially be interested to work with you in the future.

Please let us know your thoughts and questions. If you're interested please get in touch via dominik@vvvv.academy

vvvvAcademyLogo
dominikKoller, Monday, Mar 19th 2018 Digg | Tweet | Delicious 1 comments  

helo evvvveryone,

it is happening: beta36 is scheduled for a release in early february. we're quite confident with the state of the new features we've added and would like to ask you to give it a final spin with the release-candidates as listed below. please open the projects you're currently working on and see if they run as expected. if not, please let us know in the forum using the alpha tag.

Release Highlights

since the dawn of vl, vvvv has become increasingly more powerful. we see initial proof in the works of schnellebuntebilder and intolight who are using the combination already to their advantage. it allows them to create projects of a complexity that would have been very hard if not impossible to realize with vvvv alone.

so far though, vl could only be used for IO and logic tasks. anything related to rendering was still in the hands of vvvv DX9/DX11 only. with beta36 we're introducing a new bridge that will allow you to prepare textures and buffers with the convenience of vl features and hand them over to vvvv using a new set of nodes. have a look at \girlpower\VL\DX\DynamicBuffersAndTextures.v4p to see how this works! and here are some more highlights:

VVVV

VL

for an in depth list of changes have a look at the changelog.

Download

64-bit
vvvv (beta36_rc15)
addons (beta36_rc15)
32-bit
vvvv (beta36_rc15)
addons (beta36_rc15)
VL documents you save with these candidates will not open anymore with beta35.8!

if you have the feeling that this release will not have anything for you, we'd only partly agree. true, maybe not directly. but we'd like to point out that what's hidden behind the unpretentious bullet point "Use .NET Libraries and Write Custom Nodes" listed under vl above can conservatively be understood as a bombshell. it means that anyone now has access to a vast range of .NET libraries in vl and therefore can also use those in vvvv. while this may exceed your personal abilities, it lowers the barrier to contribute to vvvv/vl in general by far and if we get this communicated right, this should be a win-win for evvvveryone. so tell your .NET developer friends about this..they should understand the implications.

at the same time this makes it easier for ourselves to now start building more interesting libraries for vl, which in turn will be a win for all vvvv users as well. hope this makes sense..

but now we wish you all some happy holidays and are waiting for your feedback on the candidate!

joreg, Saturday, Mar 17th 2018 Digg | Tweet | Delicious 2 comments  

anonymous user login

Shoutbox

~5min ago

ggml: how to hide vl window from vvvv ?

~20h ago

CeeYaa: https://experiments.withgoogle.com/collection/ai/move-mirror/view Skeleton Tracking with my Browser - cool AI stuff

~2d ago

woei: everyone who likes or has to work with 3d models: something you might wanna try scenegraph

~4d ago

tonfilm: Saving and loading your own data types to disk was never easier: vl-serialization #vvvv #vl #dotNet #visualprogramming

~6d ago

stulloyd: @dominikKoller my little brother works for them.

~11d ago

vasilis: @readme I already did this...but when I reopen my patch and make some changes I press save all..and then the same again. It opens 2

~11d ago

readme: vasilis, Alt+R in your vvvv instance, delete it from vvvv root, save. Otherwise vvvv loads up the patch by default.