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

Generic Nodes

There are several nodes in vvvv which are programmed in a generic way. This means that the functionality is defined once in the project GenericNodes and every developer can get over 20 nodes with just some clicks for his own data type.

You can browse the nodes and their source code here: Generic Nodes on github

Source Code Structure

Most generic nodes are pure spread operations and do not need to know anything about the type on which they operate, we called them basic nodes. However, there are some nodes which need to check whether two instances are equal in order to execute their functionality. Other, more specialized nodes need to clone an instance or calculate the distance between two instances of the type on which they operate.

We decided to sort the source code according to the method which is required for the data type, so each developer can decide which nodes make sense for his data type.

Every generic node definition should be in its own file and should be located in the folder with the name of the method it needs to operate.

Adding nodes for you own data type

First reference the GenericNodes project in your own project. Either use the nuget package or the project directly if you are working in the Addonpack.sln. Then the only thing you have to do is to copy the code from our template files and replace the string 'REPLACEME_CLASS' with your own data type and the string 'NODECATEGORY' with the category in which the nodes should land in the node browser.

For example, if your type is called BooleanShape in the category BooleanGeometry then the Cons node would look like this:

[PluginInfo(Name = "Cons",
                Category = "BooleanGeometry",
                Help = "Concatenates all input spreads to one output spread.",
                Tags = "generic, spreadop"
    public class BooleanGeometryConsNode : Cons<BooleanShape> {}

We even made an easy to use convvvverter patch which does this for you. It is also located in the GenericNodes project and called TemplateConvvvverter.v4p. Open it and follow the instructions in the patch.

Contributing a new Generic Node

If you have a generic node which you want to add to the GenericNodes project, fork the vvvv-sdk sources on github and add the generic node in the same way as the other ones:

1.) Create a .cs file named after your node in the folder with the name of the method you need for the node.

2.) Add a dummy instantiation of your node to the template files

3.) Open a pull request from your fork

If the method you need for your node doesn't exist, create a new folder and a new template file with the same naming convention.

anonymous user login


~11d ago

fleg: This Tuesday, Cologne: exhibition opening of "interwoven", textile disinformation patterns created with vvvv. https://fleg.de/news/exhibition-interwoven

~24d ago

manuelgonzalvez: Assimp nodes all broken afted Win Update w/exception "COM object that has been separated from its underlying RCW(...)"

~24d ago

manuelgonzalvez: @levi thanks would love to! anyway managed to get something similar working based on forum search and anthokio's patches.

~25d ago

levi: @ravasquez thanks. 31.2 x86 verrion worked. @manuelgonzalvez i have a dx11 projectTexture if u a want.

~26d ago

manuelgonzalvez: Anyone has a dx11 port of "projectedTexture" dx9 fx for projection mapping?

~26d ago

manuelgonzalvez: Anyone has a dx11 port of "projectedTexture" dx9 fx for projection mapping?

~26d ago

ravazquez: @levi not sure bout the ImagePack, but I believe VL.OpenCV should give you the same tools and should work with beta just fine

~27d ago

levi: anyone knows of a VVVVpacks.image that works for elliot's projector calibration patches?x64,dx11. always crashes v4 on solve.

~1mth ago

Lorenz: VJing with GIFS: https://lorenzpotthast.de/gifjockey/ A fun little side project, that I first prototyped in v4 and now turned web-based ;)

~2mth ago

schlonzo: finally fixed in 4.8 nice1