» 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

Who Alexandra Pirici, Andrei Dinu, Ion Cotenescu, Jared Marks, Maria Mora
When Thu, Jul 5th 2018 - 19:30 until Fri, Jul 6th 2018 - 19:30
Where Roskilde Festival Art Tent, Roskilde, Denmark

Adda Kaleh is a musical project of first league performance artist Alexandra Pirici.
Come have a brake from the beers at the Art Tent on thursday and/or friday at 19:30 for a show made both by woman and robot. Or something inbetween.

If you are from hhhhere, don’t hesitate to say hi, ggml will be scriptkid for the night.

https://www.roskilde-festival.dk/music/2018/adda-kaleh-aka-alexandra-pirici-w-andrei-dinu-ion-cotenescu-jared-marks-maria-mora?view=poster

ggml, Thursday, Jul 5th 2018 Digg | Tweet | Delicious 1 comments  

previously on vvvv: vvvvhat happened in May 2018


hola,

que patcha? we did it. as announced here last time, we've finally finished our cleanup of the VL.Corelib. further we've released improved File IO nodes and a little new feature to frame your patches. we've also reworked how groups and categories work which we'll introduce in a blogpost soon. these then were the biggest chunks that we had planned for the coming release. so we're now soon reaching everyones favorite: release-candidate time!

and on july 10th, the second berlin meetup is happening, organized by a_a_a_a and sebl, horray!

Contributions

again some amazing new stuff:

and some fine updates to existing contributions:

Gallery

30° - Visualising Ocean Data by students of the Muthesius Academy of Fine Arts, Kiel

and if you have a moment checkout the latest additions to vimeo already with some fine documentations by latest works of NSNK


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

joreg, Tuesday, Jul 3rd 2018 Digg | Tweet | Delicious 0 comments  

Who a a a a, sebl, you
When Tue, Jul 10th 2018 - 19:30 until Tue, Jul 10th 2018 - 23:00
Where Spektrum Berlin, Bürknerstraße 12, 12047 Berlin, Germany

Berlin Patchers.

Our first meetup was a blast. See the protocol if you missed it.

Lets keep it up.
Here is the second one.

This time we will have lasal (seehttp://aristidesgarcia-blog.tumblr.com/) exposing some insights of his latest project. Hopefully this gets us inspired, so that we can have spontaneous discussions/talks/showcases following.

So, feel free to bring your project/notebook/questions or whatever you want to share with the community.

There will be a bar serving us drinks.
There will also be other people around as well.

Thanks go to Lieke and Alfredo who are running the fantastic spacehttps://spektrumberlin.de.
Thank you Lieke & Alfredo.

RSVP & more info here.

Update:
Find out about what happened in the Protocol.

sebl, Thursday, Jun 28th 2018 Digg | Tweet | Delicious 2 comments  

Some things take a while longer...
Planned since vvvv pre-beta1 we're happy to finally bring you:

Frames

Patches tend to do different things all at once and when looking at them it is often not clear at first sight which part of a patch does what. We have comments to add a few words at certain spots but those fail when we'd like to point at a group of nodes that do a certain thing. So the idea is to have a visual element we can place in a patch to frame a group of nodes and mark them with a color and label. This will help us to better structure and document large patches.

Press ALT while making a selction to create a frame and optionally give it a title
When selected, the frame shows a color-box
Move and size the frame

Frames are always in the very back of everything. They don't contain any other elements and they cannot be contained in other regions. They are mere visual elements and don't interfere with the functionality of a patch in any way.

Grab the frame at the color-box to move its content along

To show/hide all frames in a patch at once, press CTRL+ALT+F.
To frame a bunch of selected nodes, press ALT+F.

Screenshots

Besides being structural elements, frames also allow you to take screenshots easily and repeatably. We're using this e.g. to automate generating screenshots for our documentation...

Here is how:

  • Press the Printer button to make a screenshot, then rightclick it to see the captured file in explorer
    • Alternatively press CTRL+2 to take a shot of the selected frame
  • Press CTRL+5 to take screenshots of all frames in a document at once

To create a quick screenshot of an area without even creating a frame, simply press S while making a selection. This will copy the screenshot to the clipboard (so you can simply paste it into the chat or a forum reply) and also place a .png next to the current .vl document.

Recordings

Apart from single screenshots you can also record an animated gif of the area of a frame, here is how:

  • Press the Record button to start a recording, the same button again or ESC to stop it
    • Alternatively toggle CTRL+4 to start/stop recording the selected frame

Note that the resulting .gifs are quite large. This is a known problem that shall be fixed at some point.

Screenspace Frame

One more: In case you want to make a recording that includes panning or zooming in the patch you can create a frame in screenspace:

Press ALT+SHIFT while making a selection to create a frame in screenspace
joreg, Wednesday, Jun 27th 2018 Digg | Tweet | Delicious 11 comments  

Here is to inform you about an update to general File input/output in VL available for testing in latest alphas today. Introduced 1.5years ago we've now completely reworked this from the ground up with the things we've learned so far.

Blocking

We noticed that even though obviously you'll often want file io to be non-blocking, there are cases where blocking makes sense. So we now give you the following:

FileReader, FileReader (String), JSONReader, XMLReader
FileWriter, FileWriter (String), JSONWriter, XMLWriter

These are the most simple to use, very close to the comparable vvvv versions, only without error reporting, which we explain below.

Non-Blocking

In the case we want to have our file io non-blocking we learned that most likely we don't only want to load the file but often also do some kind of "transformation" to the data before it is used further in the patch. Most likely this transformation should also be non-blocking and we only want to be informed when that part is done as well. Introducing:

Read: Foreach file read, parse its content and pass it on.
HoldLatest returns the last data pushed to it.
On Data bangs when new data is available.

Instead of returning the actual data of a file, those readers return an Observable<Data> which allows you to do some further processing to the data before you get access to it in the patch using a HoldLatest node. For more information on working with observables see the chapter Reactive.

The writers in turn also take an Observable<Data> and write whenever new data is pushed through the observable. Like this you can e.g. write data received from an input via an observable directly to a file without ever touching the mainloop:

Read: Foreach Payload received via UDP, append to file result.txt

Naming Convention

While in vvvv we had different names for file accessing nodes, like: Reader (Raw), FileTexture (EX9.Texture), XFile (EX9.Geometry Load), MP3Parser (File), ... we decided on a new naming scheme for VL:

  • all readers end on "Reader"
  • all writers end on "Writer"
  • the node is prefixed with a hint at the file-format it handles, like XMLReader, JSONReader
  • more generic readers that don't read a specific format are called more generically, like FileReader, ImageReader, ..

Like this, typing "reader" or "writer" in the nodebrowser, you'll be guaranteed to find all available readers and writers.

Error Handling

Reading or writing files can go wrong for different reasons and the system needs a way to inform you about this. Previously, error handling of reader/writer nodes was inconsistent. Some ignored errors, others reported "Success" or returned an "Error Message". Having realized error-handling has to be supported on a higher-level than individually on every node, we have now removed all error handling from those nodes.

Now what? Right, so the first thing you need to know: If an error occurs at runtime it will be catched by vl and the node will go pink, informing you of the problem. Often this is enough.

In case you want to react to an error in your patch we again have to differentiate between the blocking and non-blocking case:

Blocking

The solution for the blocking case involves using the experimental Try [Control] region and looks like this:

The experimental Try region catches the error that occured

Non-Blocking

In a non-blocking scenario you can use the HoldLatestError [Reactive] node like this:

HoldLatestError bangs and returns an error message
joreg, Saturday, Jun 23rd 2018 Digg | Tweet | Delicious 3 comments  

Who david, joreg, sebl, a a a a
When Tue, Jun 12th 2018 - 19:30 until Tue, Jun 12th 2018 - 23:00
Where Spektrum Berlin, Bürknerstraße 12, 12047 Berlin, Germany

HBAO+

Berliners and non berliners.

We thought it's time for a first VVVV Meetup in Berlin, which will hopefully turn into a series of patcher kucha style evenings.

The meetup is for vvvv and VL interested open minds in Berlin. It is a place to meet and exchange ideas and experiences. It is open to anyone who wants to join, no matter if you are a vvvv expert or beginner, a famous or breadless artist, a designhead or technologist, a piano player or techno musician.

Thankfully we will be hosted by Lieke and Alfredo who are running the fantastic spacehttps://spektrumberlin.de. It's a nice exhibition, performance and community building space. There will be a bar serving us drinks and some people around. Thank you Lieke & Alfredo.

Next steps:

  1. Drop us a mail, comment or forum post if you like to show something. We will announce some line-up soon.
  2. If you like: make yourself a member of our brand new meetup group on meetup.comhttps://www.meetup.com/VVVV-Meetup-Berlin
  3. And check yourself in for the first meetuphttps://www.meetup.com/de-DE/VVVV-Meetup-Berlin/events/251273271

Looking forward to meet you!

Ann-Katrin & David

Update:

We are happy to announce our first talks:

  • dennis of NSYNK will introduce us to his great new contribution of an ambient occlusion algorithm for vvvv.
  • princemio, art director at Waltz Binaire, is joining us to present undocumented super secret stuff for your brains to explode.

Update 2:
Find out about what happened in the Protocol

a a a a, Monday, Jun 11th 2018 Digg | Tweet | Delicious 0 comments  

Growing a consistent library of nodes and presenting it in a clear way in the NodeBrowser is one of the great challenges we are facing. For the upcoming release we made this our focus: Clean up the core library vl offers and add new features to the NodeBrowser for easier browsing. So here is what you get:

Filtering by Aspects

The NodeBrowser got a couple of new toggle buttons that let you filter for different aspects. Aspects include "Advanced", "Experimental", "Obsolete"...

Node list filter buttons

Button layout: Time goes from left to right (Obsolete -> Experimental), high level to low level from up to down (Basic -> Advanced).
By default you see all normal nodes, ie. those without any aspect. This is what we consider the 80% most important nodes for the casual user. Browsing the categories with this setting should give you a good, not too overwhelming overview of what functionality is available. For example it excludes all nodes using types we consider advanced, like Float64, Integer64,... mutable collections (like Array, ..) and often nodes that we hope you'd not have to use every day.

Browsing the "Primitive" Category

Advanced

If you're looking for a node and it doesn't show up you can enable the "Advanced" aspect. This will include many more nodes. Obviously the distinction between normal and advanced is very subjective and will vary widely for different users and use-cases. So we are aware that there is room for debate and nodes may be moved between normal and advanced in future versions. The good thing about this is that such a move between aspects never breaks any patches!
You can toggle this filter button with the TAB key.

Experimental

Includes nodes that we haven't yet fully committed to. Use those at your own risk. We don't guarantee that they'll still work the same in future versions

Obsolete

Includes nodes that we only still ship to not break existing patches. Don't use them in new patches. Most likely there is a better version of the node available already.

Internal

Nodes can have the "Internal" aspect set, meaning they are only visible within their .vl document but don't get exposed. So if another document references the first one, it will only see nodes that are not Internal. Using the toggle you can hide those internal nodes from the NodeBrowser to have a view on the node set that other documents would see.

Defaults

The default setting for the filter buttons for Advanced, Experimental and External on startup of VL can be adjusted in the settings.xml file. If you are working a lot with .dlls from c# projects and you need to restart often, you probably want to enable the 'External' button by default.

Assign Aspects to Nodes

For information about assigning nodes to aspects, see this gray book section and feel free to open a thread in the forums for specific questions.

Filter externals

When referencing an external .dll it often leads to a very large number of extra nodes in the NodeBrowser. Using the "External" toggle you can decide whether to see those in the NodeBrowser or not. Also the NodeBrowser is faster when it doesn't have to deal with those.
You can toggle this filter button with the SHIFT+TAB keyboard shortcut.

Stateful Nodes

Aka process nodes got merged with their stateless siblings with the same name. If there is a process node and a stateless node with the same name you get a "..." icon in the NodeBrowser and after clicking on it you have to choose which one you want.

More Collections

This category got the most rework so it's worth to mention its specific changes here.

VL encourages the use of immutable collections because they work very well together with the data flow paradigm. But when working with .NET libraries you often have to deal with mutable collections, so we now provide all commonly used collections of the .NET framework!

In general we try to do as little renaming as possible when importing data types. But for the collections we took the liberty to do the following renamings from the original ones:

All immutable .NET collections drop the Immutable pre-fix since it's the default in VL:

  • ImmutableArray -> Array
  • ImmutableDictionary -> Dictionary
  • ...
All mutable .NET collections get a Mutable pre-fix:

  • Array -> MutableArray
  • Dictionary -> MutableDictionary
  • ...

All interfaces for collections moved into the Interfaces sub-category and we introduced a Common category that contains data types and nodes that are used together with collections like KeyValuePair or CustomEqualityComparer.

Rectangle Improvements

The nodes to create rectangles are much more flexible now. You can specify the size of the rectangle and an anchor position. Depending on the enum input Anchor, the position gets interpreted as any one of the significant points in a rectangle, like TopLeft, Center, BottomRight, ... Also the split node got this enum to specify which point of the rectangle the output position should be.

Additionally there is a node to create a rectangle spanned by two points and one to create a rectangle by the coordinate values of it's edges.

We also added Inflate and Scale nodes. Inflate can offset the rectangle edges in each direction by specific amount and Scale multiplies the size of the Rectangle in each direction. Both nodes come with version Centered and Uniform which assign the same value to the horizontal and vertical direction or the same value for all directions.

Easier switch from Adaptive to specific

Some nodes (like the +,..) that you place in a patch are not tied to a specific type (like Float32) unless you make a connection to them. This is a very useful feature in vl and works 99% of times. Sometimes though you are smarter than the compiler and you want to specify to use a concrete implementation. In this case, after placing the node you now simply have to double click it to get all available options and chose one of those.

Destroy is now Dispose

In general we're planning to stick as close as possible to the naming in the .NET world. This will make VL more inviting for external developers to join and also makes documentation more easy to find. Therefore we decided to rename "Disposable" back to "IDisposable" and "Destroy" back to "Dispose".

As always, head over to the alpha builds and report your findings.
Enjoy the new order and happy patching!

yours,
devvvvs

tonfilm, Thursday, Jun 7th 2018 Digg | Tweet | Delicious 4 comments  

previously on vvvv: vvvvhat happened in April 2018


wow,

what a month. again so many new things... while we've still not managed to finalize our rework of the vl corlib, as mentioned here last month, you can already follow our developments using alpha builds if you're curious. we're now mostly done and are working on documentation and a blogpost to give you an easy overview of whats new.

meanwhile we've released an update to our HTMLTexture nodes which are now working for both DX9 and DX11!

also there is a new episode of vvvvTv up about the oldy-but-goldy telegram contribution by motzi.

signup for LINK is now closed. looks like all spots are taken, but if you were too late and are still interested, don't hesitate to still contact us. if anyone cannot take their spot we may still be able to...fill you in.

berliners save the date: June 12th will be our first vvvv/vl meetup. as of this writing already 11 participants have signed up! looking forward to getting to know you..

and finally: we've started collecting Universities and other Educational Institutions that are using vvvv/vl. we got 9 so far. please add yours there, if it is still missing!

Contributions

exciting stuff as always, check these:

and a teaser:

Gallery


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

joreg, Monday, Jun 4th 2018 Digg | Tweet | Delicious 0 comments  

just because!

since we can, the addonpack is now shipping with 4 new nodes:

  • HTMLTexture (DX11.Texture String CEF)
  • HTMLTexture (DX11.Texture Url CEF)
  • HTMLView (Image String)
  • HTMLView (Image Url)

What happened here is that the original EX9 based HTMLTextures have been replaced by the more generic HTMLView (Image) nodes which can easily be used for both EX9 and DX11 via the respective UploadTexture nodes introduced recently. So the EX9 and DX11 variants of the HTMLTexture nodes are now mere modules wrapping HTMLView -> UploadTexture.

The 'CEF' in the version for the DX11 modules is to have them distinguished from the also available contribution HTMLTexture (DX11) by gumilastik, with the same name, which is internally using a different backend than CEF. So horray, more choices for you!

Just in case you wonder: Obviously the DX11 variants still require the DX11 Pack to work!

And while at it we also updated the underlying backend to reflect Chromium 66.0.3359.117

Bonustrack:
With the Image nodes you can also pipe websites into the recently introduced VL.OpenCV. This maybe quite special interest but i'm sure one fine day someone will need to do exactly that:

HTMLView verwurstelt via VL.OpenCV and displayed via Preview (DX11.Texture)). Thankyouverymuch!

Available in latest alphas now. Please test and report your findings!

joreg, Thursday, May 31st 2018 Digg | Tweet | Delicious 8 comments  

Who you
When Wed, Aug 29th 2018 until Fri, Sep 7th 2018
Where Pernerinsel in Hallein, Salzburg, Austria, Germany

Since 2003, every year, an abandoned industrial salt refinery on an island in Hallein, Austria, opens up, for ten days, to host around 300 Smiths and their ideas. We physically gather in order to get inspired, network, create, present and share. Schmiede provides a basic cooperative prototyping environment and an infrastructure full of impulses and passionate people.

For all details and application see:http://schmiede.ca/apply

Application closes: May 31st
(but i heard from an inside source that it will actually be open till June 5)

Typically a good chance to meet some fellow patchers. Highly recommended!

joreg, Wednesday, May 30th 2018 Digg | Tweet | Delicious 0 comments  

anonymous user login

Shoutbox

~19h ago

evvvvil: Yo I'm live on TWITCH doing some live coding. 25 minutes time limit, "shader showdown" style. https://www.twitch.tv/evvvvil_

~1d ago

ravazquez: @catweasel I checked and Global S&R does not work across vvvv instances (as expected). Sorry about the confusion

~1d ago

drehwurm: that's just plain cool. http://remove.bg

~2d ago

joreg: just in case you missed it: beta38.1 is out since last week: vvvv50beta38.1 #vvvv #vl #visualprogramming

~5d ago

ravazquez: @catweasel it was late when I wrote that, it's probably not the case, will test and report

~5d ago

catweasel: @ravazquez in separate instances of vvvv? Awesome if so!

~7d ago

ravazquez: @karistouf you can use my Global S&R contribution for this purpose