» 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 2019


have you tried it yet?

it is still hot and regularly updated! if you haven't yet, maybe the latest IOBox update convinces you to give it a go. massive thanks to everyone who is testing and giving feedback and reporting bugs. very much appreciated!

while we're onto fixing the still most pressing bugs we're now concentrating on 3 final things we mentioned in the roadmap: tooltips, executable export, documentation. these are the areas where we're hoping to have something to show next.

meanwhile if you have thoughts on working with Kinect2 in vl, please let us know.

and thanks to u7angel we have recordings of a recent vvvv gamma workshop, a presentation about Ocean Of Air and a VL.Xenko demo.

Contributions

happy to see vl based contributions rolling in...

new:

updated:

some new wips:

some teasers:

Gallery

Real-time point cloud experiments by boplbopl

and some more not to miss:

Jobs

and again some relevvvvant jobs are posted on jobboard Das Auge.


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

joreg, Saturday, May 4th 2019 Digg | Tweet | Delicious 0 comments  

Who Will Young, Damien Schneider
When Wed, May 15th 2019 - 20:00 until Wed, May 15th 2019 - 20:00
Where Quays Theatre, The Lowry, Salford Quays, Manchester, United Kingdom

Three Sound Sculptures

Brand new audiovisual performance on the way from me and Damien Schneider. Featuring body movement by Sean Murray

15th May - The Lowry, Salford Quays, Manchester - Ticket cost is 'pay what you feel'

thelowry.com/digital

mrboni, Friday, May 3rd 2019 Digg | Tweet | Delicious 0 comments  

jojojo IO,

one of the more important features for quick prototyping in vvvv always were the IOBoxes. Here is an update that finally brings the vl IOBoxes up to par (and beyond) with what you were used to from vvvv beta.

Support for Spreads

Most notably missing so far was proper support for spreads. Sorted. When creating an IOBox via "start link -> middleclick" you now always get an interactive IOBox for the supported primitive types: ints, floats, bool, string, path, color, enum, even if they are spreaded or spread-of-spreaded or...

IOBoxes to quickly few contents of spreads

Or configure your own, by first creating a normal IOBox via right doubleclick and then configuring its type (middleclick it) via the Inspektor to a Spread type:

IOBoxes to quickly define values in a patch

Key to spread IOBoxes is that you can directly set their count, without the need to open an inspektor. By default they now show a maximum of 5 entries and add a scrollbar to show more. If you want to see more, you can change the "Maximum Visible Entries" count via the Inspektor.

Setting the max visible count

To quickly modify a constant spread you can also insert/remove slices when the inspektor is active:

Inserting and removing slices

Same as with other editors, the spread editors also work on inputs of a node to quickly tweak values:

Editing a spread directly on an input pin

And you can now specify defaults for input pins that are spreads:

Setting the default of a spread input

Override values temporarily

Mostly useful for numbers and bools, in vl you can override upstream values directly, by manipulating an IOBox that sits in the middle:

IOBoxes do not only pass values through, but can also override them

Numbers

What we're used to from beta: Entering values via formula now also works:

Entering values by formula

Vectors

Vectors now allow you to change all components at once:

One for all!

Also the Inspektor now shows all properties that you get on a float IOBox, so you can now also configure e.g. a vectors precision.

Strings and Chars

Both can now optionally show non-printable characters:

Showing non-printable characters as ASCII values

Colors

Color IOBoxes now also show you transparency:

Transparency visualized

Paths

Paths finally can be reduced to smaller sizes and show proper path ellipsis, ie. preferring to keep the last part of the value visible:

Path ellipsis to the rescue

Click the little O icon to open the current file/directory with their associated program. ALT+click the icon to show the file/directory in the explorer.

Matrix

For completeness:

Matrix IOBox

This is it for now.. Available for testing in both latest alphas and gamma previews.

joreg, Wednesday, Apr 17th 2019 Digg | Tweet | Delicious 8 comments  

We are very lucky to host the first vvvv gamma workshop at the Muthesius Kunsthochschule in Kiel. Joreg and Tebjan will give a 3 hour introduction into the vvvv future. Since we use vvvv a lot at the university, it makes totally sense to check out, what we can do with the next big thing.

There are still some seats left.

Where ? - Prototyping Lab, Werkstattgebäude
When ? - Thursday 18th of april, starting 2pm

In case you don't want to patch but just listen to what will come, you are invited to the evening presentation. The boys will give us a making-off presentation of Ocean Of Air, the first ever project realized with vvvv gamma and the upcoming Xenko 3d engine integration. (sentence stolen from the other news post ;)

Where ? - mainbuilding,ZFM Medienseminarraum EG
When ? Thursday 18th of april, starting 7pm

See you there

u7angel, Wednesday, Apr 17th 2019 Digg | Tweet | Delicious 15 comments  

When Wed, Apr 24th 2019 - 19:30 until Wed, Apr 24th 2019 - 23:00
Where Retune Studio, Glogauer Str. 21, 2nd Backyard, Berlin, Germany

Here we go,

vvvv berlin meetup #8 is happening at a new location!
Spektrum Berlin sadly is no more. If you ever enjoyed a vvvv meetup or another event there, please consider donating!

Meanwhile the fine people of Retune Studio offered us their space, which we'll gladly occupy next week.

Ocean Of Air: A multiplayer VR installation by marshmellowlaserfeaset

We'll have tonfilm giving us a making-off presentation of Ocean Of Air, the first ever project realized with vvvv gamma and the upcoming Xenko 3d engine integration.

Also we're happy to have m9dfukc talk about "Bodies In Motion" he recently helped realize:

And as always, feel free to bring your project/notebook/questions or whatever you want to share with the community. We have space and time for spontaneous discussions and presentations!

If you feel like, please rsvp on our Getogether page!

joreg, Wednesday, Apr 17th 2019 Digg | Tweet | Delicious 0 comments  

previously on vvvv: vvvvhat happened in February 2019


it is out!

as promised, we released vvvv gamma into the wild. not exactly the full 1.0 release we had hoped for, but at least as a preview that you can download and testdrive. we're eagerly awaiting your feedback and bugreports in the dedicated gamma forum and are regularly updating the download link in the announcement post with the latest preview release.

one of the freaky new features recently introduced in vl are input and output pin-groups. when previously the usage of dynamic pin-groups required writing c# code, it is now a breeze to add them to your own nodes with just a few clicks.

and a release candidate is up for our computer vision library VL.OpenCV, which is now using latest OpenCV 4 and comes with a lot of howto patches that you can conveniently access via the help browser. note that when using gamma, VL.OpenCV is already included, no need for a separate nuget-install!

next steps? polishing gamma to a proper 1.0 release by holding on to our roadmap.

Contributions

a firework of new and updated contributions this week. take your time to check these out:

new:
Struct by woei
Preset Manager by joao
updated:
Player (DX11.Texture) by woei
SceneGraph by woei
Ivans Project Template by bo27
Barcode1d (Texture) spreadable nodes by bjoern

and the great yhy, one of the winners of the golden quad 2015, who also happens to be a youtube celebrity with over 1000 subscribers, who brought us 100+ tutorials on vvvv that have a total of ~50k views, is at it again: as of this writing, he has already produced 8 japanese vl tutorials: vvvv講座(VL編)

Gallery

Vase Bakery - Generative surface deformation for round bodies by roman_g

two teasers:

and a reminder:
the vl/xenko powered installationhttp://oceanofair.com got extended once more and is still on show in london until may 5th!

Jobs

a vvvv handler is needed in Milan in April.

plus mentions of vvvv in job postings on:


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

joreg, Saturday, Apr 6th 2019 Digg | Tweet | Delicious 0 comments  

General Status

As you know, efforts have been going for the last year and a half into bringing a computer vision nodeset to VL.

The goal was to incorporate as many of the features covered by the world renowned ImagePack; contributed by Elliot Woods some years ago; while bringing in as many new features and improvements as we could.

In the winter of 2018, after setting a roadmap and having patched a decent initial nodeset, we happily announced the pre-release version of VL.OpenCV.

Since then, listening to your needs and constant feedback, we have tried to polish every corner, fix every bug, document every odd scenario, add plenty of demos and specially we tried to give you a clean, consistent and easy to use nodeset.

At this point in time, we are happy to announce that the goal has been nearly met. Most of the features available in the ImagePack made it into VL.OpenCV with the exception of Structured Light, Feature Detection, StereoCalibrate and some of the Contour detection functionality. At the same time, newer features such as YOLO, Aruco marker detection and others have been brought in for you to play with.

So what's next? Even better documentation and loads of examples!

In the mean time, here is a summary of the new things that have been brought into the package in the last couple of months:

CvImage

The new CvImage wrapper around OpenCV's Mat type allows for some optimizations, specially when dealing with non-changing images.

CvImage allows nodes to run only once when the image has changed, significantly reducing CPU usage

Cache Region lovvvves CvImage!

Since it is now possible to detect if an image has changed, CvImage is a perfect candidate to benefit from Cache regions.

Cache Region

Cache regions can now make proper usage of image inputs and outputs

Keep in mind that Cache regions have already been added to most VL.OpenCV nodes. When in doubt just open the node and have a look inside.

Renderer

The Renderer was re-built from the ground up to improve usability and to fix bugs and issues. Title, Render Mode and Show Info features were added. Renderer also remembers its bounds on document reload.

Renderer

New Renderer implementation introduces Title, Renderer Mode and Show Info pins

Histograms

Histogram analysis has been added to VL.OpenCV. A useful tool in many scenarios.

Hitograms

Histograms allow you to analyze pixel value tendencies per channel

Homography

Homography and reverse homography are now available in VL.OpenCV.

Homography

Homography (vvvv used only for point IOBox)

Stereo Matchers

Two new Stereo Matchers were added, these allow you to create a depth map from a set of stereo images. For more see the StereoDepth demo patch in VL.OpenCV.

Stereo Matcher

Depth map obtained from a pair of stereo images

Serialization

Serialization support was added for CvImage and Mat types, allowing you to use CvImage as part of more complex data structures which get serialized with no effort. This can be a heavy operation so make sure to trigger it when needed only.

For a hands on demonstration check out the Serialization VL demo that ships with VL.OpenCV.

Breaking Changes

As part of this final effort to clean everything even further and make the nodeset consistent and properly organized, we needed to rename and move a few things around which as you can imagine means the introduction of breaking changes. We understand this is an annoying thing to cope with, but this was basically the reason why we chose to keep this pack in a pre-release state until we felt confident with its structure and approach.

In summary yes, you will get red nodes when you upgrade your VL.OpenCV projects to the latest version, but in most cases it should be as easy as to double-click and find the node in its new category.

An exception to this are the nodes that got renamed, which we list below:

  • Reader (Intrinsics) -> IntrinsicsReader
  • Reader (View Projection) -> ViewProjectionReader
  • Writer (Intrinsics) -> IntrinsicsWriter
  • Writer (View Projection) -> ViewProjectionWriter
  • GetByteArray -> ToByteArray
  • GetValues -> ToValues
  • GetValues (Custom) -> ToValues (Custom)
  • FiducialTracker -> FiducialDetector
  • Update (FaceRecognizer) -> FaceRecognizerUpdate
  • VideoFile (Append) -> VideoWriter (Append)
  • VideoFile - VideoPlayer
  • Merge -> Join

Summarized Changelog

General

  • Introduced a new wrapper for Mat called CvImage
  • Cache region additions to improve performance on non-changing Images
  • ImageReader re-implementation
  • Renderer re-implementation
  • VideoIn re-implementation
  • Reintroduced "Supported Formats" output pin on VideoIn node
  • Upgraded to VL.Core 0.95.37
  • DirectX/OpenCV transformation documentation and cleanup
  • Added Blocking, Reactive and HoldLatestCopy versions of VideoIn node
  • Added Blocking and Reactive versions of ImageReader node
  • Reimplemented Extrinsics as a data type
  • Stabilized VideoFile Source node and moved from Experimental into Sources
  • Added Serialization support for Mat type
  • Added Serialization support for CvImage type

New in VL

Nodes

  • StereoBMMatcher
  • StereoSGBMMatcher
  • ToValues (Custom)
  • ToValues
  • GetChannel
  • Histogram
  • DrawHistogram
  • ToByteArray
  • Transform (Perspective)
Demos

  • DrawNodes
  • Homography
  • Histogram
  • Serialization
  • StereoSGBMMatcher

New in vvvv

Nodes

  • IntrinsicsToProjectionMatrix
  • ExtrinsicsToViewMatrix
Demos

  • Calibrate and Reproject
  • SolvePnP
  • StereoDepth

Remember that in order to use VL.OpenCV you first need to manually install it as explained here. Also, until we move away from pre-release you need to use the latest alpha builds.

We hope you find good use for this library in your computer vision projects and as always, please test and report.

ravazquez, Sunday, Mar 17th 2019 Digg | Tweet | Delicious 3 comments  

Up until now VL had a rather rudimentary support for pin groups. Only nodes following a certain pattern had the option to have a dynamic amount of input pins. For simple nodes like a plus or a multiply this worked out fine, but for others it either felt like a hack or it was simply impossible to use at all. A node having a dynamic amount of outputs was never supported at all.

Pin Groups by Index

This all changes now by introducing proper support for pin groups. So let's jump right into it and have a look at the definition of the very famous Cons node:

As we can see the pin inspektor is showing one new entry called "Pin Group". This flag has to be enabled obviously. Then we annotate the pin with type Spread. This creates pins with the name "Input", "Input 2", "Input 3" etc. on the node.

If we now look at an application of the Cons node we can already see a couple of nice new features:

  1. It's much faster. To build the input spread it can make use of a spread builder allocating the needed memory in one go, compared to the old Cons node which concatenated one spread after the other, leading to a total of 8 copies.
  2. The returned spread will stay the same as long as the inputs stay the same. This is done by keeping the generated spread for the input group in an internal field. When building up the new spread each slice will be compared to with the one from before. And only if one of those slices change a new spread will be allocated.

Pin groups are not limited to inputs, they also work for outputs which brings us to a new node called Decons - deconstructing a spread into its outputs:

Pin Groups by Name

Cons and Decons are examples of using a pin group as a Spread. But there is another variant where the group gets annotated as a Dictionary<string,*>. Instead of addressing the pins by index, they get addressed by their actual name. Let's have a look at two other new nodes again called Cons and Decons but residing in the Dictionary category:

Pins can get added as usual with Ctrl - +, but what's new is that those pins can be renamed in the inspektor UI giving us the ability to quickly build up dictionaries.
The patch of the Cons building up a dictionary compared to the one building up a spread only differs in the type annotation of the input pin.

Apart from Spread and Dictionary the system also supports pin groups of type Array, MutableArray and MutableDictionary. According Cons and Decons nodes can be found when enabling the Advanced view in the node browser.

Creating Pins from within a Patch

So far the pins of a pin group have always been created by the user interface of the patch editor. Things get really interesting though when creating them from within the patch itself:

Imagine the string being an expression of some sort generating inputs for each unbound variable. The possibilities are endless :)

The nodes needed to create and remove pins can be found in the VL category after adding a reference to VL.Lang - the patch from the gif above can be found in the help folder of the VL.CoreLib package.

More information on those nodes will be covered in an upcoming blog post. Until then you can try these new pin groups in our latest alpha downloads and happy patching,

yours,
devvvvs

Elias, Friday, Mar 15th 2019 Digg | Tweet | Delicious 0 comments  

previously on vvvv: vvvvhat happened in January 2019


say vvvvhat?

right when we have only one month left to the announced release of vvvv gamma, february cut us short of another 2 days...had we only known that.. so where are we?

we've finally added support for Regular Expressions to the nodelibrary of vl and finished one important step of UX improvement we describe in: Application vs. Definition.

also a lot of work happened in the VL.OpenCV library which we now consider to be in a pretty mature state and shall therefore release it as a proper (ie. non-prerelease) package soon.

but most importantly we've announced the pricing for vvvv gamma which has faced some criticism as you can read yourself in the comments. being aware that this would not be an easy topic, we consulted with a couple of longterm vvvv users, to get some outside views on our thinking before the announcement. from the public responses we now got, we understand that this was not enough. our attempt to keep the announcement simple and compact backfired with quite some missunderstandings of the terms that we presented. we appreciate your feedback. please add your thoughts and also feel free to contact us via mail if you don't feel like adding to the public discussion. every thought helps us clarify the discussion.

so, less than a month left till the announced release..we make very good progress but still this is going to be tough...

also last call to take part in the 2019 Survvvvey. we've reached more than 300 participants and will be closing it and releasing the results soon!

Contributions

quite a couple new things:

and one update:

Gallery

ENCHANTMENT. FIELDS by stain

and some more fine projects:


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

joreg, Wednesday, Mar 6th 2019 Digg | Tweet | Delicious 0 comments  

Since a while, VL comes with the idea that you can organize node and type definitions in your VL document.

Definitions
We have one "Wheel" definition, independent of how many we need in the end

But now, we want to give you back another, alternative way to look at things - an organization structure, which is more intuitive and also well known from vvvv beta: The application side of things...

Piaggio Ape simulation
See how one wheel instance is rotated and the others are not

And also, we did this in reaction to the feedback we got from Link festival:

You want to be able to navigate the running object graph, where it's about the instances of patches, not about their definitions. You want to be able to navigate into a running patch and see the values that flow in this instance, not in another instance of the same patch...

Also, typically you approach your project top-down and just add more details to it since this is the basic idea of rapid prototyping: patching a running system that you incrementally grow and modify.

So we took the chance to shift the focus a bit so that in VL you again get confronted with the application side of things first.

The Application Side of Things

This is what you know from vvvv beta: a patch can contain a sub-patch - you navigate into it and inspect the values flowing. You go outwards - to the caller - via "Ctrl-^". With the ^-Key we actually refer to a key at a certain position on the keyboard.

Ctrl-^
On your keyboard it may be labeled differently

In VL this now is just exactly the same. Navigating into a process node shows you the right values. Ctrl-^ brings you back to the caller. So you are basically navigating the living node tree of the application. In VL it's been hard to think in these terms, but now it's the default. We also made sure that this works when navigating between vvvv beta and embedded VL nodes.

Also, try to use the back and forth mouse buttons if you happen to have a 5-button mouse. Ctrl-MouseBack will bring you to the calling patch and Ctrl-MouseForth will travel back into where-ever you were coming from.

Every VL document comes with an Application patch, which will open by default. You can start patching right away. A bit as it is like in vvvv beta.

Patching top-down never has been easier. Creating an Ape simulation from scratch:

Caring about Applications first - creating the needed Definitions on the fly
Clicking Node will create a new process definition, name it and instantiate the node once

You can run many applications at the same time, e.g. several example patches in addition to your project app. The application menu lists all documents that actually make use of the application patch.

The Definition Side of Things

Definitions in vvvv beta basically correspond to the .v4p files, in VL you can have more of them per document.

Library developers or more advanced users will of course still want to organize types and nodes and approach them from the definition side. This is like saying "There is one idea of a wheel, but if you feel like you can instantiate three of them".

For an overview of the definitions, each document comes with a separate Definitions patch - basically what's been the document patch.

Here you see what happened during patching top-down: on the definition side, we now have two Processes.

Definitions
The Definitions patch gives you an overview of your document structure

That's where you would from now on also place your Classes, Records...

Navigation within the current document structure works with Ctrl-Shift-^, Ctrl-Shift-MouseBack, Ctrl-Shift-MouseForth.

When navigating into a patch like that you will see some instance of the patch or maybe none, if none is instantiated or currently running. In this case, you will not be able to see any values.

If the patch is not yet inspecting a particular instance it will wait for the moment an instance gets executed and then attach to this particular instance.

Some more minor cleanup

We took the chance to clean up some bits in the node browser and the patch explorer as well.
The application patch e.g. now doesn't offer confusing options, but basically only shows the properties stemming from pads, the Process Node Definition now is called that way (was "Order"), Process Nodes in the node browser look a bit like process nodes in the patch, choices like "Input", "Node" appear at the top of the list of choices in the node browser...

Note: We had to change the document structure! Patches saved with the latest alpha and come with an application may open in beta, but you will not be able to see nor execute the application patch.

That should be it for now!
Thanks, yours devvvs

gregsn, Wednesday, Mar 6th 2019 Digg | Tweet | Delicious 6 comments  

anonymous user login

Shoutbox

~11h ago

karistouf: arghhh, my dx11 mesh assimp are red nodes !!! any idea ???

~14d ago

SuperflysiNZ: Thanks

~17d ago

sebescudie: @Superfly : ApplicationPath

~17d ago

SuperflysiNZ: How do you get the path of the current patch in VL?

~17d ago

SuperflysiNZ: How do you get the path of the current patch in VL?

~18d ago

joreg: reminder: first #vvvv online meetup after the summer break: tomorrow, tuesday 7th, 8pm CET 13.-worldwide-vvvv-meetup