» 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 December 2017


jannuary 2018,

or as i'd like to call it: a new dawn.

so many things...where to start... probly here if you haven't yet: vvvv-in-numbers-2017
then an apology for the current release-candidate hiatus. we've been too optimistic end of december, when we let out the first. meanwhile 3 more things got finalized:

a new RC is scheduled to be announced this week.

also, the five part vl for vvvv users series of videos is now complete: part 1, part 2, part 3, part 4, part 5. it is basically the workshop i gave at node17. it picks you up where you are as a vvvv user and shows you how the basic things are mostly the same in vl but only when it comes to spreading you need to learn about loops instead. and once you're there you'll not want to look back...

...like e.g. this doctor, who was kind enough to give us an update on the status of his latest developments. must watch!

what next:
we have a few independent libraries in the works at the moment that we're planning to announce properly in the coming weeks each. for the bravvvve ones among you, go check our public repositories already:

and even more to come... but beware: there aren't really instructions yet on how to use those. so you might as well want to wait for the announcements.

with beta36 hopefully out soon we'll then make plans for the next release. high priorities are endless, will be some tough decisions to make again.

vvvv Academy

it happened. it was great. 6 participants from zero to vvovv in 6 days. a few impressions are here. we're planning to do this again, stay tuned!

Contributions

here is a big one: u7angel open sourced his Automata UI and in addition is also giving it away for free now for commercial projects! you be stoopid not use it and get him at least a drink the next time you see him. thanks man!

further quite a load of new stuff:

and updates to many top contributions:

Gallery

Recursive Infinity - Endless Procedural Crazyshit by evvvvil

otherwise sadly not so much in the gallery last month. seems everyone is too busy networking their stuff socially. and then i stumbled upon this: https://vimeo.com/search/sort:latest?q=vvvv with many more recent uploads.. but please don't forget to share your works also in our gallery to show people having their first contact with vvvv.org, what you're doing with it.

and on a final note: tekcor has announced a workshop titled Chaos - Noise - Motion that will take place on march 10th in leipzig.


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

joreg, Sunday, Feb 4th 2018 Digg | Tweet | Delicious 2 comments  

Dynamic Buffers

Current vvvv alpha and upcoming vvvv beta36 has a new set of nodes that allows you to quickly upload data from VL to the graphics card. We had a WIP forum discussion about it here: VL - Custom Dynamic Buffer

On the VL side the nodes are called ToBufferDescription and we have them for the basic data types that usually hold big chunks of data: Spread, Array, IntPtr and Stream. The vvvv side is rather easy and only has one node called UploadBuffer (DX11.Buffer).

Primitive Data Types

Primitive types work out of the box and don't need any special treatment. Just make sure you define the correct Buffer type in the shader. This works for Integers, Floats, Vectors and so on, everything that is available in the shader as primitive type. Here is an example for Float32:

The only exception is Matrix it needs to be transposed in order to work like a normal transformation input. If you send a large amount of individual matrices to the shader the most efficient way is to do the transpose in the shader directly:

If the same matrix is re-used very often or you don't have access to the shader code simply transpose in VL:

Custom Data Types

If you want to define your own data types like light information or a custom vertex type in the shader then you need to pack the data accordingly in the buffer description. For this task the ToBufferDescription (Stride) nodes are used. They allow you to make a buffer description out of primitive types like float or even byte and set the stride size of your custom type in bytes so that the shader can read the custom type directly out of the buffer.

Matrix hint: If you define a matrix in a custom type in the shader you can use the row_major modifier to automate the transpose operation.

struct MyLightType
{
    float3 Direction;
    float Brightness; 
    row_major float4x4 Transformation; //set matrix type
};

Performance hint: If you can, design your custom types in a way that the byte count is a multiple of 16, sometimes it makes sense to insert unused floats as padding:

//would have 20 bytes, but blown up to 32 bytes (2 x 16) for faster read performance
struct Circle
{
    float4 Position;
    float  Radius;
    float pad0;
    float pad1;
    float pad2;
};

More info: https://developer.nvidia.com/content/understanding-structured-buffer-performance

Custom types in C#

If you are a C# coder you can also define a struct in C# with attribute StructLayout(LayoutKind.Sequential) and the same byte layout, import it in VL and pass that directly into the buffer. Then you don't need the node with version StrideSize because the data type size already matches.

[StructLayout(LayoutKind.Sequential)]
public struct Circle
{
    public Vector4 Position;
    public float Radius;
    float pad0;
    float pad1;
    float pad2;
 
    public Circle(Vector4 position, float radius)
    {
        Position = position;
        Radius = radius;
    }
}

Dynamic Raw Buffers

While in the process of doing the dynamic buffer nodes it was easy to add raw buffers. These buffers are from older shader models and can only be filled with bytes. On the shader side however you can also define Custom types. Only difference in HLSL is that you write Buffer<YourType> instead of StructuredBuffer<YourType>.

The node set is basically the same except that the VL part is not generic and only accepts bytes as input. The node names are ToRawBufferDescription in VL and UploadBuffer (DX11.Buffer Raw) in vvvv.

Raw buffers have no advantage except when you have to deal with an older graphics card, driver or shader code.

Examples

A VL patch with shader code can be found in latest alphas girlpower\VL\DX\DynamicBuffersAndTextures.v4p. And it is also used by @mburk for material management in his latest superphysical pack.

So now you can start sending your data up to the card and enjoy the speed. As always, if any questions arise hit us up in the forums.

yours,
devvvvs

tonfilm, Thursday, Feb 1st 2018 Digg | Tweet | Delicious 3 comments  
Some brief statements


A quad is quadratic

This quad has a quadratic shape.


Positioning an element at the mouse position results in that element being shown at the mouse position

This small quad is aligned to the mouse.


Using touch positions for positioning results in elements drawn at your finger tips

These quads show up where i touched the screen.


Interact with objects in world space, even in complex multi screen setups. Do that with the system cursor, not a displaced rendered cursor

Star

All this wasn't something that you could take for granted. Up to now.
I had to tease you first, before going into detail. If you think about the statements above, or even don't think about it, all of the above should be just normal, no-brainers. Having a not-quadratic screen is the case 99% of the time. These cases occur that often, we should make them easier to work with.

So from now on we have

  • Auto Aspect Ratio in the renderer, so you don't need to do that AspectRatio (Transform) involving cylic graph with the 3 links
  • you can disable Auto Aspect Ratio and still feed your own for the more complex cases
  • mouse, touch, gesture nodes are now reporting positions in our notion of projection space, an undistorted space that didn't get treated by the aspect-ratio transformation. These postions are just easy to work with as you saw above.
Projection Space vs. Distorted Normalized Projection Space

The main output of the mouse is the Position (Projection) XY pin, values in the case above go from (-1.78, -1) to (+1.78, +1), reflecting that the renderer is not quadratic.


All the details

What's that Projection Space?

The underlying technology (DirectX) comes with the following spaces and transformations, to get from one space to the other:

              World T.           View T.           Proj. T.          
 Object Space   ->   World Space   ->   View Space   ->   Proj. Space  

World Transformation typically is set by the Transform pin at your "quad", that takes it from object space and places that object within the world (the 3d scene).
View Transformation is what you connect to the renderer and is about the position and orientation of your camera.
Projection Transformation is the other input on your renderer, that is for making your scene compatible to a 2d screen. It pojects that 3d stuff onto a screen.
Now, while the underlying DirectX also mixes aspect ratio into that transformation, vvvv at some point started to distinguish lense projection and aspect ratio transformation, which now feels to pay out in the end.
So here is our notion of spaces and transforms:

              World T.           View T.           Proj. T.          Aspect Ratio T.
 Object Space   ->   World Space   ->   View Space   ->   Proj. Space   ->   Norm. Proj. Space 

Our renderer comes with this additional pin Aspect Ratio (and now also comes with that auto aspect ratio feature), treating this transformation a seperate step. Since the transformations are seperated, we got an additional space that you can think in.
And this is the space you want to be in. This at least is our theory. In our projection space the aspect ratio transformation didn't get applied yet.

Let's look at some gif before we theorize further:

Operating in projection space

Here we see how to operate in projection space when a camera is attached.
With the node WithinProjection (Transform) we tell the system that we want to operate in projection space, which is the same as saying "do not care about the camera (don't apply view and projection transformation as we already are in the right space)". So the spheres get affected by the camera, the quad does not get affected by the camera.
So what you take from the lesson should be that mouse pin Position (Projection) XY goes well together with the WithinProjection (Transform) node. The node you only need if a camera is connected to the renderer.

Normalized Projection Space

Now, the next step the pipeline does is applying aspect ratio, which distort everything in a way that a quadratic space matches the rectangular window or viewport. This is just technical necessity as DirectX asks for that. We are now in normalized projection space. You know, that space where left & bottom border are at -1, and right & top border are at +1. The one that you learned in your first tutorial about.
We always thought that this is the nicest space to think in, which is obviously not true. It feels nicely quadratic in size, which just doesn't align to the fact, that your renderer typically is not. So it is a distorted space.

Several render passes

Here is how we still give it a raison d'être:
If you have several render passes you often just want to have a fullscreen quad textured by a previous render pass. Now how would you place a quad so that it goes from left to right border and bottom to top border. Well this is obviously easy to do in a space where these borders are always at a fixed position like in the normalized projection space.

not so quadratic

What if you want to use and render the mouse in an early render pass, maybe with many viewports, softedge and aspect ratio settings, while actually hovering with the mouse over the final renderer, that comes with different settings? Does this align?
Well, this is a rare case where you again need to use manual aspect ratio nodes. With them you can adjust how to map to meaningful mouse positions that make sense in an earlier render pass. Actually you just need to reason about the aspect ratio of your orginal scene to make this work nicely. Note however, that in this special case - especially when softedge is involved - system cursor position and rendered cursor position don't align anymore, as you were used to in earlier vvvversions. Note that the editors from the editing framework still work, you just need to use the Cursor node to visualize the cursor, since the system cursor is off.

Cursor gets rendered in another renderer that you hover. Softedge adds to the complexity.

Old patches and a breaking change

Patches get converted so that they now work with the new mouse positions, those in projection space.
By that all patches fit well together. We are pretty sure that the benefits outweight the cons. This however still is a breaking change. If you have a patch where you don't use the mouse position for positioning elements, but map it to something else, and experience that the new value range doesn't feel right, you need to manually switch to the old behavior. Check the mouse node to access the now hidden Position (Normalized Window) XY, to access the exact old behavior. Gesture and Touch nodes come with the same pins.
Old renderers get converted in a way that the Auto Aspect Ratio is turned off - on newly created renderers it's turned on.
Patches working with touch or gesture were complicated as they just had to correct the touch position by manually transforming it in compliance to the aspect ratio. Where with mouse you got away with showing a rendered cursor that is just displaced, touch and gesture just don't let you do the same trick. You really expect the elements under your fingers to react. Those patches get converted in a way that they still work by using the Position (Normalized Window) XY, but you should consider cleaning that up by using the standard output Position (Projection) XY and throwing away all the unnecessary aspect ratio related tweaks and hacks.

DX11

Directx 11 doesn't come with the features for now. There would of course be a way to do the same with DX11, but let's see first, if the new system prooves to be easier to use for the majority of the tasks, while not failing at the more complex setups. When we have that proof of concept, it'll be doable to copy the concepts over to DX11. Let's wait for that first.
Depending on whether new DX11 builds shall still support older vvvversions or not, the implementation gets trickier or easier. So give us some time here to figure out what route to take. Thank you!

The fact that DX11 works a bit different for now isn't a big issue. Most patches that are supposed to work for both node sets actually do work for both environments. The only difference typically is how a rendered cursor comes into view. Interaction in most cases should feel the same though. For DX11 nothing has changed and all patches should work exactly like before.
gregsn, Friday, Jan 26th 2018 Digg | Tweet | Delicious 10 comments  

As you might know, enums in vvvv got our attention several times in the past. But still, we found something to improve.

There's been the NULL (Enumerations) node, that we now decided to drop.
Often when using Ord2Enum, String2Enum, Enum2Ord or Enum2String you additionally needed this node to specify which enum you actually want to work with.

Now, Ord2Enum, String2Enum, Enum2Ord, and Enum2String come with a configuration pin that lets you specify the enum. So no need for NULL anymore.

The mentioned nodes got legacy. Old patches will be converted in a way that they still use these legacy versions. (NULL (Enumerations Legacy), Enum2Ord (Enumerations Legacy)...)

If you want to update your patches, so that they work with the new versions

  • delete the null node
  • double click on the legacy Ord2Enum (..) node and select the new node in the node browser
  • select the right enum (using the inspector). Yes, the list wasn't sorted alphabetically in earlier versions. Sorry for that!

The patches should get cleaner in the end, which should make them easier to understand.
The system has less to infer over links (less magic = less unwanted side effects). It just takes the enum specified.


Side note:

As the enum encoding changed (in vvvv50beta35.7) and now works with strings, you now are allowed to connect a source of one enum to a sink of another enum:

Bingo

There just might be cases where this makes sense.


EDIT:
It's a bit unfortunate, but we had to keep the old nodes still active. There are cases where the enum in question is not available via the global enum list. E.g. a shader has this technique pin that can differ from shader to shader and sometimes even between instances of one and the same shader. So these enums need to be "pushed" towards the connected Ord2Enum node. So you still need the old nodes.

The old ones keep their names.
The new nodes now are named Enum2Ord (Enumerations Explicit), ...
Null (Enumerations) is legacy.

Please excuse the confusion.

gregsn, Friday, Jan 26th 2018 Digg | Tweet | Delicious 1 comments  

Who David Gann
When Sat, Mar 10th 2018 - 14:00 until Sat, Mar 10th 2018 - 17:30
Where LOFFT Verein zur Förderung des Leipziger OFF-Theaters e.V., Lindenauer Markt 21 , 04177, Leipzig, Germany

ATLAS @ Deep Space Ars Electronica

WORKSHOP: CHAOS - NOISE - MOTION
MIT VORSTELLUNGSBESUCH VON CABOOM
DAVID GANN / 000.GRAPHICS
Dem Körper angepasste Interfaces ermöglichen es Tänzer*innen und Performer*innen, direkt mit Sound und Computergrafik zu interagieren. Die Körperbewegung wird dadurch zum Ausdrucksvektor für audio-visuelle Kompositionen, basierend auf Chaos und Noise.

  • - English below --

Der Workshop vermittelt eine Basis, Tanz und Performance mit interaktiver Kunst und Medienkunst zu verbinden. Die Teilnehmenden nähern sich Methoden an, mit denen Körperbewegungen digital erkennbar werden und setzen diese Bewegungsdaten in Echtzeit für die Erzeugung audiovisueller Elemente ein. Dabei wird primär die visuelle Programmiersprache VVVV gezeigt, welche besonders gut für den flexiblen Einsatz auf der Bühne geeignet ist (auch für Anfänger). Es wird speziell auf die Themen Chaos und Noise in der Computergrafik und im Sound Design eingegangen mit dem Ziel, Wege zu finden, durch Bewegungen komplexe und eindrucksvolle Bilder und Klänge zu erzeugen.

David Gann studierte Biologie und Interface Art und arbeitet als Künstler, Entwickler und Designer im Bereich interaktive audio-visuelle Medien, Computergrafik und Sound Art.

English Description
Wearable DIY interfaces enable dancers and performers to directly connect to real-time generated audio and computer graphics. The body movement becomes an expression vector for generating audio-visual productions based on chaos and noise. The participants approach methods of digitally capturing body movements and use the data gathered to create audio-visual elements in real-time. The primary focus is on the coding language VVVV, which is especially applicable for the flexible use on stage (even for beginners).

David Gann studied biology and interface art and is working as a artist, developer and designer in the field of interactive audio-visual media, computer graphics and sound art.

Wearable Motion Controllers
FBM Noise

HINWEIS: Die Workshopgebühr beinhaltet ein Ticket für einen Vorstellungsbesuch von CABOOM vom 09. bis 11. März 2018.

Anmeldung unter: workshop@lofft.de

000.graphics

KONZEPT+DURCHFÜHRUNG+FOTO David Gann. Ein Workshop von David Gann/ooo.graphics in Kooperation mit LOFFT – Das Theater. Gefördert von der Stadt Leipzig, Kulturamt. Diese Maßnahme wird mitfinanziert durch Steuermittel auf der Grundlage des von den Abgeordneten des Sächsischen Landtags beschlossenen Haushaltes.

tekcor, Thursday, Jan 25th 2018 Digg | Tweet | Delicious 0 comments  
VVVV Workshops by Creative Coding Cairo

Hello from Cairo !
I am happy to announce that i had the first introductory workshop in Cairo - Egypt at Creative Coding Cairo .
This workshop was after i attended The VVVV Academy course last summer in Berlin . It was a great chance to share back here with Artists , Designers , Programmers and the CC Community in Cairo what they can do with VVVV in a 3 days workshop . I am Preparing now for another Workshop to come soon for more and more people to practice the basics .

I started Creative Coding Cairo to build a community for creative coders in Egypt as a one space for Artists , Designers , Coders and Makers to meet and share knowledge .

You can check out more about our monthly activities from the link below :
https://www.facebook.com/creativecodingcairo/

check also more about our Fablab Egypt . Our main host and supporter to run our activities .

https://www.facebook.com/fablab.egypt/

Excited to share back soon more stuff with VVVV from the community around here !

mohamed hossam, Monday, Jan 22nd 2018 Digg | Tweet | Delicious 2 comments  

what goes up...

thanks evvvveryone for tuning in again to this years numbertalk where we talk about the numbers you left with vvvv in 2017. what the numbers? well, in case you're new to this and if you have a minute i'd like to recommend you take a look back at the 2016 numbers before reading on.

webwise

everytime you hit on vvvv.org you leave an invisible trace that shows us where you're coming from. and last year, i have to say, you really changed:

2012 2013 2014 2015 2016 2017
germany (+) 16.99% germany (+) 17.02% germany (-) 13.81% germany (+) 13.85% germany (-) 12.35% germany (+) 13.94%
usa (-) 10.72% usa (-) 9.87% usa (+) 10.74% usa (+) 10.90% usa (+) 11.76% usa (-) 9.81%
uk (-) 6.31% russia (+) 5.78% russia (+) 7.39% china (+) 5.44% japan (+) 4.85% india(+) 5.94%
russia (+) 4.98% uk (-) 5.64% uk (-) 5.37% russia (-) 4.77% russia (-) 4.67% china(+) 5.15%
italy (+) 4.97% france (+) 4.93% japan (+) 4.85% japan (-) 4.76% uk (=) 4.51% japan(-) 4.25%
france (-) 4.92% italy (-) 4.56% france (-) 4.12% uk (-) 4.51% china (-) 4.26% uk(-) 4.18%

my best guess about what we see here is you've all been on a sabbatical in india to relax a bit but then still couldn't help it and checked the forum every five minutes for whats going on. fair enough.. already in 2016 india was going up 12% compared to the year before and now it got another 40% boost landing it on spot 3 tightly followed by china who got a 21% boost this past year. are we conquering new markets there without knowing it? on the other hand rather sad to see russia dropping out of the ranks for the first time...что случилось?

despite the big shift in accessing countries it seems the number of unique visitors is relatively stable the past three years:

2010 2011 2012 2013 2014 2015 2016* 2017
244.010 313.075 335.056 350.650 408.173 448.556 457.541 447.605

* includes hacker-news incident'

this is also confirmed by the number of daily forum posts as you can see below which even received quite a visible bump at the end of 2016 when we installed the new forum:


number of daily forum posts from jannuary 2016 to december 2017

downloads

2010 2011 2012 2013* 2014* 2015* 2016* 2017*
releases 4 3 5 5 5 4 1 4
core 45.700 32.100 36.000 45.000 42.500 38.000 29.300 32.600
addons 10.700 14.400 18.800 29.000 28.500 25.200 19.400 21.400

* x86 and x64 combined

significantly more releases but not significantly more downloads than in the year before...whats going on here? lets have a look at the

licenses

oha...this is setting us back to figures of 2013. ahm, lets have a closer look at the numbers that tell us how many different countries and companies licenses have been bought from:

2011 2012 2013 2014 2015 2016 2017
countries 19 18 17 17 21 19 22
companies 52 61 69 81 102 90 80

huh...so while obviously vvvv is slowly spreading over the whole world as you can see by the sharp rise in the number of countries, i'm afraid i find it really hard to argue an increase in the number of individual customers over the past three years. how are politicians doing this?

so where exactly are we loosing it? let's have a look at the number of licenses sold per country. germany and uk: booh. but then who would have thought? is america really great again? and what is going on in the state of denmark?

2012 2013 2014 2015 2016 2017
germany 65% germany 55% germany 48% germany 55% germany 68% germany 63%
uk 10% uk 25% uk 14% uk 15% uk 13.6% uk 11%
switzerland 8% austria 3% switzerland 6% switzerland 6% russia 5.3% us 6.5%
russia 5% japan 2.8% japan 5.6% us 3.52% austria 3.8% switzerland 4.6%
austria 3% russia 2.5% aut, aus, usa 4.22% austria 3.22% switzerland 1.5% russia 2.6%
spain 2% france 2.5% russia, norway, czech 2.8% russia 2.93% France 1.6% denmark 2%

so..where were we? ah..numbers?! all pointing down, bohoo...but really, all of them? well there is at least one i know of that has been going up continuously since vvvvs inception. i'm afraid i don't have a graph for it, so you'll have to trust me on this one: it is our spirits.

motivational picture: commits on the vvvv source code repository

we're sitting here, day in, day out and have the privilege to invent the future of programming for you. and the sheer amout of work we put into this uncertain endeavor over the past years is finally starting to pay off. not financially (see above) but...functionally. we're using vl on a daily basis with a joy that only compares to the very early years of vvvv. after which we found all it's problems and started to tinker about how a new system would look and feel like that doesn't have all of vvvvs limitations. and it is here now. at your finger-tips. embedded into your favorite multipurpose toolkit, making it an unrivvvvaled tool (citation needed!) at your disposal. today.

switch to an alternate universe where for the past ~five years we struggled with the horrors of cross-compiling vvvv to mac and linux and started implementing a new render engine in opengl only to learn of that new thing called vulkan halfway through, where we are still fighting with random crashes due to quantum threading effects with our attempt to multi-thread the existing vvvv core and where that dump guy is still POTUS...
i don't get a clear reception of our spirits and the license-numbers from over there but what i do see is a rather conservative visual programming environment with more problems at hand but not standing out so much compared to similar products.

... say what? enough with the sermon, where is the bling!? ok. so at the same time that others set the industry standards in realtime 3d rendering, we chose to work on the standards for visual programming: object-oriented, multi-threaded, with one-click library import, generics, delegates, interfaces and so much more.

and now, obviously, we have to do the ketchup with the rest of the best. 2d- and 3d-rendering and asset management, audio-video playback, computer-vision, 2d- and 3d-physics, editing and ui-framework, timeliner, automata,... are still missing. so you see we're not going to get bored anytime soon. but since most of the hard parts are now done, we're really looking forward to those!

what an exciting cliffhanger concluding the season of 2017...make sure not to miss any episodes in the coming season, you can subscribe here.

we wish an exceptionally great 2018 to all of you who've been with us over the years, to those who are new and even to those who didn't buy a license last year, you'll come to reason...

yours,
vvvvl.

joreg, Monday, Jan 22nd 2018 Digg | Tweet | Delicious 2 comments  

previously on vvvv: vvvvhat happened in November 2017


happy new patcherpeople,

vvvv/vl

in case you haven't noticed, 2017 has passed without the release of beta36. booohh..i know, this wasn't our intention but you know, good things... and on the other hand you can say it is practically already there: please check our beta36 release candidate and report your final findings!

among the new features in vl is a way to pause and step through frames as you can learn in: One Frame at a Time. find out about the many more changes in possibly the longest changelog evvvver.

and if you didn't dare yet to touch vl, here is a soft way to get started: lean back and watch this series of videos to understand that using the basics of vl is quite similar to using vvvv, only that once you get there, it has so much more potential...

...still two more to come to cover only the absolute basics and get you up to speed. yes still no rendering of any sorts, but we're working on that...

regarding the promised major new feature of using .NET libraries, here is a quick example of using the bulletsharp physics library in vl without the need to write a single line of code: Doing Bullet3d with vl

vvvv Academy

starting now, follow @vvvvAcademy

Contributions

Some new stuff:

and two updates:

Gallery

colorsound experiments with lasers and vl

Teasers

A single disguised teaser this time: spreaded-html or what is this? forest-pointcloud-0


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

joreg, Tuesday, Jan 2nd 2018 Digg | Tweet | Delicious 0 comments  

Newsflash!

Here are two new little features we want to make sure you're aware of. Not completely finished but already helpful:

StepByStep

Press F6 to pause and step through your patch one frame at a time. Press F5 to continue running the patch.
F6, F6, F6, F6, F5

Note how the Quad (topleft) indicates run/pause. Tremendous you say? Indeed, but beware the following caveats for now:

  • this works only for vl, so if you have parts of your patch in vvvv, those will still continue to run as usual!
  • tooltips don't work in this mode yet, so you'll need IOBoxes wherever you want to inspect values
  • no stepping through slices of loops

Still you'll see that in cases where you're looking for a logical problem in your patch it is already useful to be able to step through its execution one frame at a time to better understand how it is evolving.

JumpToError

Set RuntimePauseOnError to TRUE in the settings in case you want to have the patch paused in case an error occured.
Pink: the node that threw the runtime-error.
Bright: the call stack, leading up to the error.
Dark: nodes not executed.

This can be useful when you're on a debugging spree and expect an error to happen at some point. Activate this option to be brought to the point where the error occurred, the moment it happened. Saves you some navigation and highlights the nodes involved leading up to the error. Again press F6 to step or try F5 to get the patch running again after you solved the problem.

Caveat: Look closely, the error message in the tooltip actually belongs to the Add of the Dictionary. The reason for that is code-optimization which sometimes leads to the error-indicator being one node off. A setting to disable code-optimization is pending..


As mentioned, both features are not finished but are a first step into the direction of better debugging support. Still more to come..

joreg, Tuesday, Dec 19th 2017 Digg | Tweet | Delicious 6 comments  

previously on vvvv: vvvvhat happened in October 2017


dear patchers worldwide,

vvvv/vl

another month has passed without us releasing the long promised beta36. reason: the things we've planned for it to include, are not finished yet. as mentioned previously the main focus of this release is to get the workflow right, for using/wrapping external .NET libraries in vl. people using latest alphas already have the possibility to do so. basically any .NET library can now be used in vl directly via drag'n'drop. this is huge and on the other hand feels so natural that it is also not a big deal and will and should be taken for granted from now on. when developing plugins for vvvv was still kind of a pro-thing, even though we had easy dynamic plugins, it is now a no-brainer with vl and i predict that everyone will do it casually at some point. so again, please test with latest alphas and report your findings in the chat or on the forum (with tag "alpha"). thanks for the more and more vl-related issues there and on the chat recently!

but then that is not all. obviously. besides adding C#6 support for dynamic plugins we've also made quite some fixes to vvvv and vl as you can see already in the (not yet complete) change-log.

job

looking for a vvvv job in london? have a look at this fine offer by YR!

vvvv Academy

dominikKoller is doing it again! coming january there'll be another vvvv beginners course at our office in berlin. please help us promoting the course by spreading the following two blog-posts that include all the necessary informations:

Contributions

No big drop this time, but still some updates:

And i posted a work-in-progress or more a proof-of-concept for an InputMapper in VL.

Gallery

happy to see the first two big recent works being powered by vl:

Skyguide by intolight

and two more classic vvvv projects:

Teasers

Good stuff as always in the teasers:


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

joreg, Saturday, Dec 2nd 2017 Digg | Tweet | Delicious 2 comments  

anonymous user login

Shoutbox

~2d ago

domj: Little vvvv robotics and light control in the Tschechisches Zentrum Berlin in few hours, just patching en route https://bit.ly/2V0FAb3 ;)

~2d ago

AKa-visuals: @polyrhythm Stunning!.. cant wait for ibl integration. Keep on!

~2d ago

catweasel: @polyrhythm looks lovely!

~2d ago

polyrhythm: i put a little love into my vvvv raytracer after some time not touching it. textured emissive lights! https://i.imgur.com/OVzp6d5.png

~2d ago

sinus: Yes, they did the kollabo with klf. Still a tornado in the club.

~3d ago

microdee: @sinus: hahaha maaan that's some amazing stuff :D

~3d ago

elektromeier: @sinus: the extreme noise terror which played at klf s exit gig at brits?

~3d ago

sinus: Ipswitch

~3d ago

sinus: @evvvvil: from ispwitch! noble men! https://extremenoiseterror.bandcamp.com/

~4d ago

evvvvil: Fuck Norfolk that's where every boring person in the world is from. Suffolk is also a shithole and their football team is worst. xx