Squashing bugs, bringing awesomeness, a new vvvv. Image by vvvv community member benju. Yeah, it’s summer, and fly season.

You’ve got something on the screen from one program – an animation, 3D generative eye candy, video whatever. You want to have that texture working somewhere else, so you could, say, mix it with some video clips in your VJ app. Intuitively, you want to just be able to “pipe” the texture from one place to the other, on the graphics card, without performance overhead.

Macs, thanks to the brilliant open source Syphon framework, can do this, via the OpenGL graphics framework. It’s something we talk about on this site a lot. But Windows machines, using a mix of OpenGL and DirectX APIs to render video and 3D, and their own drivers and OS-level graphics support, have been left out. That is, until now.

Back in March, I spoke to ArKaos about how they’re making inter-app video work. On the Mac, they use Syphon. But on Windows, they showed me for the first time an implementation using DirectX. That got me excitedly thinking about vvvv, the immensely-powerful node-based, graphical environment for live visuals (among other things).

This week, vvvv has added just this feature in a beta. If you’re using multiple copies of vvvv, it lets you share textures between them, as well as – in a bonus – the ability to run a video texture across multiple heads of a multi-head output (for multiple projectors, etc.). But it also hints at a new ecosystem of Windows apps that share textures, so, for instance, you might take advantage of new ArKaos video mapping capabilities and video mixing alongside some elaborate patch you built in vvvv. I had wrongly assumed such capabilities would be limited to DirectX-based apps, but an OpenGL bridge could be theoretically possible (for apps like Resolume Avenue, which use OpenGL rather than DirectX).

All the details of how to use this beta release, and what this functionality means for users and developers, are detailed in a blog post:
cross-process texture sharing, depth rendering [vvvv.org blog]

There are other improvements in this latest build, bringing still more enhancements in vvvv’s frenetic update cadence:

Network video sync is also a deeply exciting possibility.

But I imagine the big headline for Windows users – and the one (cough) other Windows developers may want to investigate – is Syphon-like video sharing on a platform that’s not the Mac.

All the news on the beta build for users and developers:

And remember, it’s pronounced “v-4” (largely in Germany, though oddly not “v Vier”). Or, “v, v, v, v” (everywhere else, or to avoid confusion with Edirol mixers). Or, my personal favorite, “vvvvvVVVVVVvvvvvv vvvvvv.”

Thanks to Kyle McLean for the tip!

  • Grrrrrr

    You know what would be a great “improvement” for VVVV? A fucking manual!!

  • vade

    Er. Thats cool, but two non open standards for single app solutions does not an ecosystem make, non?

    There needs to be a community and a standard API and DLL for 3rd parties to use. Thats what has made Syphon exciting I think.

    • +1 Vade, my thoughts too.

      @deec44212ae8588cda3a84a8971031f6:disqus I see a loads of Mac people using vvvv actually…

    • I agree with Vade, the whole point of syphon is that it has allowed artists freedom from monopoly of a single app. One point I do want to make is that I believe that Pro Version of Touch Designer has a patch that allows to copy frames between different apps. But it is not free, and you have to code the app on the other side to accept the frames.

    • As we discussed on Twitter. VVVV __is__ using an open OS-wide standard for its texture sharing which doesn’t even depend on inclusion of a single new software library. All applications wishing to use that texture sharing can simply add the shared handle argument whenever they create a texture (available in DX9 and above since the recent DX9ex update).

      For the time being, the user just has to copy/paste/osc/whatever the handle manually which is a single unsigned int (basically a big number for anyone who doesn’t know what that is :).

      It would be great to move this to have better IPC and management like with Syphon. And the Windows community has always wished for a continuum with Syphon/OSX and the great things in the osx ecosystem (e.g. VJ apps).

      A standard isn’t far away, the technology is there and it is open. This is just giving people access to the facility so the standard can be born.

      • vade

        Sure, that handle is exactly how IOSurface works (for the most part), however, there *are* gotchas like you said. A standard IPC library and methodology, a notification for new handles coming online, naming them for clarity, etc. Also, there are nuances too that have to be handled.

        Image resizing (say a new movie is loaded with different dimensions in your pipeline): you need to notify resize handling since (at least on GL), this requires a destroy and realloc, thus a new handle being created, etc. Copy and pasting IOSurface ID’s can sort of work too, but that might be the worst UI in the world.

        Many apps use IOSurface, but none of them expose clean, standard APIs to address and handle these edge cases. A “handle” is not always enough – otherwise we would just all be using that. The situation is the same on the Mac, thus the need for Syphon, not just using IOSurface directly. Otherwise, everyones work would be already done ūüėõ

  • Waldmanconnor

    Now only if vvvv could release a mac version….

    • Impossible, VVVV is largely based on C Sharp and Direct 3D

      • Possible. I’ve written OpenGL renderers in VVVV, anyone else could as well. C#/.NET is heavily supported on all Operating Systems¬†(including iOS)¬†through the Mono framework.

        Mac has always been on the table, but the OS is quite restricting in terms of devices and cost, which means that many professional studios (most of VVVV audience) choose Windows over OSX for deployment.

        However, as hardware becomes normalised (many works now no longer need the top end GPU’s which have never been available on OSX, macs are getting better options for multi-head, macs are getting better camera/device support, many users are on osx now), the argument for an osx move becomes more compelling

  • Peter: It is not only theoretically possible but is the reality already. There is an app ¬†that can export all of the meshes out of Open Gl buffer. The only reason there is no such app because most of the VJ are on OSX.

  • videoawareness

    ¬†Thanks a ton of great information, and your right the updates are frenetic.¬† I can’t wait to try out the video texturing in beta.¬† Altough a better step by step instruction would work best but as fast as things change it might not be possible, maybe a simple base manual.

  • just gotta work out how to dual boot my hackintosh. want to mix tagtool output with intensity pro input in vvvv and do some othershit…