
helos,
this just to mention the second chapter examples of the Generative Gestaltung book (which btw. have i mentioned already? is now also available in english and français) just dropped. check: parasitic-design-a-vvvv-beginners-cookbook to get the latest pack.
the pack includes 36 new documented examples that crack some hard nuts. should be interesting for beginners/intermediates to browse and tinker over some of the details..
let us know if you find bogus or have other problems/questions.
goodnites.

photo by benju
okok,
this one took us longer than planned, but it was a difficult one in a way that it includes so many new details. if you are following the devvvv blog you should already know about most of the new stuff thats coming with this release. here is a feature-summary:
here is a list of the latest blog-posts with infos regarding changes to the plugininterface for beta28 that should make your devvvvs lifes easier:
for a full list of fixes and changes check the change-log as usual.
good patch,
yours devvvvs.

rendering by unc
this is the first beta28 addonpack.
it comes with a bunch of new stuff by unc regarding realtime cubemapping, ie modules for conversions between different formats. and lecloneur spent you all a humble bundle of 30 TextureFX modules. just type his name into the NodeBrowser to see the list.
there is a new TypeWriter (String) based on original code by bo27 that should come quite handy for creating onscreen keyboards.
besides that a series of fixes and new nodes by yours truly vux and woei as documented in the change-log.
remember: everything thats in the addonpack (and more) is open-source: https://github.com/vvvv/vvvv-sdk
For analysing small textures there is a new node that let's you do that in a patch:
Texture (EX9.Texture Split) gives you all RGBA-Values for each texel of the texture.
Even for small textures this results in quite big spreads. So typically this is useful when you can identify the interesting texels with just a few nodes. E.g. you could check if the alpha value is > (Value) 0. You then can Select (Value) those texels and operate on just those few texels.

dear beginners,
with the rise of generative design (and a bit late) vvvv wants to get its share of the buzz. so in its long tradition of copying the best it gives to you:
Parasitic Design a series of demo-patches with detailed explanations that closely resemble the output of their originals which are the processing-examples that come with the book
http://www.generative-gestaltung.de
which btw. is available in english and french now!
over the course of the next few weeks we'll release most of the examples of their P chapter (>60) reimplemented as vvvv patches for your studying pleasure. they work nicer with the book at hand but also without the book you should be able to learn by just inspecting the patches.
looking through the examples you'll notice that some of them are not really suitable to demonstrate the strengths of vvvv. nevermind. those examples are there for all of us to find out more about vvvvs weaknesses. we left out only a few that we found too embarrasing to implement..
so the first 6 examples from the "Color" chapter are available from today. next week will see the drop of the "Shape" patches... subscribe to this contribution:
parasitic-design-a-vvvv-beginners-cookbook
to be informed of all releases.
muchos gracias go out to the patchers who spent countless hours on creating, documenting and cleaning the patches for you: roman_g, ridike and robotanton. plus special thanks for beta-testing and -critizism to anna. and an extra quad to the generative-design-team for their kicking us and the mention in the english version of the book. horray.
hope this helps,
yours devvvvs.
the beta28 release will contain two new spread operations available for all major data types: zip and unzip. their operation is best explained by two screenshots of their help patches:
![]() |
![]() |
there're situations were one needs to create pins at runtime depending on the value of some config pin. for example consider the Expr (Value) node. it creates input pins for each given variable name.
with beta28 coming up this kind of task got considerably easier to do with a new interface called IIOFactory.
it basically provides a method to create so called IO containers, containing the actual "view" on the pin data (such as ISpread) and controlling the lifetime of it.
say we want to create an ISpread<ISpread<T>> during runtime, we do something like this:
in case we decide to get rid of those two pins which are used by inputFooSpread we simply call Dispose on the associated IO container:
... inputFooContainer.Dispose(); ...
for details and as a starting point have a look at the new dynamic plugin template contained in beta28, which creates inputs and outputs on the fly, when changing the associated config pins.

We are looking for a few beta testers! The MINT framework is now at a point where we want to get the feedback from the vvvv community and would like to invite evvvveryone to apply for the closed beta. Just write a comment below and I will contact you with the details.
the easiest way to write a plugin with a texture output was by extending the DXTextureOutPluginBase class and overriding the CreateTexture and UpdateTexture methods. this approach lead to several issues though:
well it's nearly as simple as that now. you can create a texture output by writing
[Output("Texture")] ISpread<TextureResource> FMyTextureOut;
the TextureResource class takes care of the resource management, for example if a renderer is moved to another screen, the directx9 device changes and therefor the texture on the old device needs to be disposed and recreated on the new one.
the constructor of the TextureResource class takes up to four arguments:
so in order to create a texture we need to do this:
FMyTextureOut[i] = TextureResource.Create(i, CreateTexture); ... Texture CreateTexture(int slice, Device device) { return new Texture(device, ...); }
if we want to update the texture when some input changes:
FMyTextureOut[i] = TextureResource.Create(i, CreateTexture, UpdateTexture); ... void UpdateTexture(int slice, Texture texture) { // Do something with the texture }
and if something special needs to be done when destroying the texture:
FMyTextureOut[i] = TextureResource.Create(i, CreateTexture, UpdateTexture, DestroyTexture); ... void DestroyTexture(int slice, Texture texture) { // Destroy the texture }
in many cases the UpdateTexture call can be quite expensive, in order to disable it set the NeedsUpdate property on the TextureResource to false and set it back to true under a certain condition.
for a full example have a look at the rewritten dynamic plugin template.
oh and all this stuff works for meshes too, simply replace TextureResource with MeshResource.
ever wanted to write a sample and hold node as a plugin? well you couldn't, until now :)
anonymous user login
~4h ago
~6h ago
~6h ago
~7h ago
~12h ago
~12h ago
~15h ago
~23h ago
~1d ago