vuo_composition_displayscene_1200_782

So, without a line of code, you want to make something new, visually. You’ve got Max, you’ve got Pd, you’ve got vvvv. But for quickly cooking up generative visuals, dynamic interaction, live animation, and more from a clean slate, the other option had been Apple’s Quartz Composer, a tool that has lost a lot of steam (and acquired quite a few bugs) lately.

Somehow, many people want some fresh blood on this scene. And that’s where Vuo comes in. From the creators of the Kineme plug-ins, it’s a chance to start anew.

We’ve been eyeing Vuo with interest for a while. The nodal environment promises faster creation and new magical visual powers, a chance to see a from-the-ground-up modern tool amidst a scene mostly dominated by architectures created years and years ago. It could be the visual programming option that feels most modern.

And now, Vuo has finally reached a proper beta. Early reactions are overwhelmingly positive – this is something people really do anticipate.

That’s doubly impressive partly because the Vuo beta doesn’t do a lot of things you’d expect. A big deal-killer for many: there’s no video in/out. No audio, no OSC, no Syphon, no math expressions. Did I mention no video?

These things are coming; you can check it out on the roadmap. But that has meant, in the meanwhile, what Vuo can do is already enough to whet some appetites – and early adopters are even pulling out their wallets to fund the effort. It’s something this community really hasn’t seen like this before.

Years in creation, the Vuo beta – available with a paid subscription – includes enough goodness that you can likely get some value right away. And, as covered today, there’s even Leap Motion integration for easy gestural input. The developers say Vuo means “flow” in Finnish. So, what will get into your flow:

  • Fluid timing: compositions can run at framerate, or respond only to mouse clicks, MIDI notes, etc.
  • Automatic use of multiple cores for different parts of the composition. (This is still a bit dodgy in tools like Max and Pd.)
  • 2D + 3D OpenGL.
  • 3D primitives.
  • 3D object loading via Open Asset import library.
  • Images, image blending.
  • MIDI, mouse I/O.
  • Basic data flow, logic and math, event control.
  • Make multiple output windows with one composition.
  • Built-in debugging: drag and drop nodes, monitor data flowing through them, and see what isn’t running.
  • A subscription with video tutorials, community Q&A, and more. Subscribers also see the source code first; others get it on a lag.
  • OS X now; iOS with 1.0, later Windows and Linux.

Also, for developers, creating your own nodes is especially accessible. You write in C, as in other environments, but here with the ease of working with Qt and example projects. (It’s arguably easier, in other words, than making a Max or Pd external.)

Vuo compositions run natively on the processor. (Vuo’s developers here claim that “other multimedia environments” use “a virtual machine.” To be fair, vvvv, Max, and Pd also use native-executed code, even in the dataflow environment; I’m not sure what they’re talking about. But yes, this is an architecture that makes sense; that’s why the other dataflow tools do this this way.)

So, those are the technical features. But perhaps what’s more telling is the reaction from the visual community.

Finnish artist Matti Niinimäki goes into some detail. It’s worth reading his whole post:
VUO 0.5.0 – PUBLIC BETA

First, even with other tools, he wants something fast – which had been Quartz Composer (until Vuo):

For the past 5+ years, I’ve made my living mainly by making art, interaction design, installations, animations, real-time graphics, performances, custom tools and other various things using Quartz Composer. I use openFrameworks, Pure Data, Max, Processing and other tools also, but I will pretty much always choose to work in QC if it’s possible to create the project at hand using it. For me, it’s the environment where I work the fastest.

Even with all the current limitations, he’s happy to get to use Vuo as a comfortable, modern replacement. You can check out his own custom nodes (many of them already useful) on GitHub:
https://github.com/Mnstri/MnstriVuoExamples

vuo_matti

He is as kind to Vuo as he is unkind to Apple (even as he hopes for an update to Quartz Composer):

Sadly, QC is made by Apple and it has been quite obvious for a few years that Apple doesn’t really give a shit about the people working with Quartz Composer. It’s not aimed for the corporate executives creating their slideshows, funny posters and generic GarageBand songs on their MacBook Airs at the airport while waiting for their connecting flight.

I’m not certain that’s fair, personally. Part of what happened at Apple is simply that very bright, very creative people moved onto other challenges. (Unfortunately, two lead developers went on to found photo service Everpix, which has met an untimely end.)

But it is true that it may take a dedicated community focused on the needs of visualists to pull off the Next Big Thing. And that endeavor is very likely to require money and investment – not even the most hardened free software advocate would argue otherwise. What’s striking is the outpouring of support from the community, as well as the clever ways the developers continue to encourage that feedback loop, from t-shirts to referral programs to unique subscriber benefits.

Building on the reputation of Kineme and all it has done to aid artists’ work, the response is overwhelming.

Sample Tweet, sent in a Vuo update (by @danielmkarlsson): “Oh my glob! Under the Run tab is Show Events. I’m throwing kisses at the wind for you @vuoflow That is so smart!”

More on what Vuo can do, which will look very familiar to Quartz Composer users.

Displaying 3D:

Vuo Tutorial — Displaying 3D Objects from Vuo on Vimeo.

Displaying images:

Vuo Tutorial — Displaying Images from Vuo on Vimeo.

A first live performance:

Project Ruori @ electro-music 2013 from Steve Mokris on Vimeo.

And more useful resources:
Video tutorials (more than what’s on Vimeo)
0.5.1 Manual [PDF]
Frequent Q&A
Subscription plans, explained
Roadmap
http://vuo.org/

  • Jim Warrier

    Been fun playing with this for the past few weeks. Syphon support is coming in the next week or two and will open it up to some more possibilities.

    There is also the Vuo user group on Facebook which is seeing some great discussion.
    https://www.facebook.com/groups/vuoflow/

    • Ashley Brown

      figured youd have had your mitts into this mate 🙂

  • Thanks, Peter!

    Perhaps I can shed some light on the “virtual machine” question — the difference, in other words, is that Vuo is a compiled language, and other visual programming languages are predominantly interpreted languages (excepting some components, like GLSL and Max’s Gen). Each Vuo composition is custom-compiled to native code, which means Vuo compositions get to take advantage of compiler optimizations (inlining, unrolling, etc.), and don’t have the overhead of having to run code that interprets code. (The disadvantage of the latter is particularly apparent when you build Quartz Composer compositions with hundreds or thousands of nodes, or if you try to run more than a few hundred iterations in QC’s Iterator patch.)

    • Gabriel Rey-Goodlatte

      This is really exciting as it relates to the performance of Vuo compositions. My first instinct after making some cool generative visuals is usually to create 10,000 instances and see what happens.

      Do you think it also means Vuo could become something that people use to develop commercial applications?

      • wideEyedPupil

        Yes, definitely. That’s part of the brief as I understand it.

    • valyard

      So to make a change you need to stop the program, recompile and run it again, right?

      • @valyard:disqus — Vuo makes it almost seamless.

        Technical details: When you make a change in a Vuo composition, the Vuo Editor recompiles your composition to a dynamic library. The running composition is instructed to pause and serialize its state, then the old dynamic library is unloaded, then the new dynamic library is loaded, then the composition is unserialized and resumed.

        Currently this process takes about 1/4 second (so the running composition briefly stutters), and we’re working on further optimizing this process, to hopefully get it down below 1/60 second.

        We’ve also implemented some shortcuts — for example, if you just change a constant value, the value in the running composition is updated instantly, without requiring recompilation.

        • valyard

          I see.
          I wonder how you managed to reduce compilation time if all the nodes are in C. Would be really interesting for most of us to have a comparison table between different technologies and Vuo. Right now it looks like Quartz Composer.

          • @valyard:disqus — Here’s our comparison chart: http://vuo.org/compare . (Let me know if you think of any other comparisons that would be helpful.)

            Individual nodes are precompiled to separate bitcode modules, then the required modules are linked together at runtime. The composition code that connects the nodes together is generated dynamically using LLVM, which itself is quite fast.

  • Diego Esquivel Rodríguez

    It seems like we have a winner here! Looking forward to test integration with other tools.

  • Matti Niinimäki

    My post (quoted here) might come off as overly critical towards Apple and also overly positive about Vuo. Much of it is Finnish sarcasm, but I think my main point is that QC has been – and still is – the most intuitive way of working in this field for me, but I am frustrated by the fact that it seems to be standing still and it obviously isn’t very high on the priority list at Apple. QC gives me the feeling of having a very minimal amount of clutter between working with the code and the actual result. And nothing out there really compares to the way .qtz files can be used inside other software. It’s far from perfect, but the potential is there for it to be so much more. Sadly, it doesn’t seem to be able to reach that full potential (I hope I’m wrong and something might still be in the works behind closed doors).

    Also, Vuo with its current state and features is not usable for any real project I’m working on. There are tons of very critical features missing and the node UI could do with some work still, but the feeling of working with Vuo is similar to working with QC and the potential is there. After a few updates it might already be useful in the real-world. Most importantly, I’ve had a very positive first impression about the communication between the developers and the users. So I’m looking forward to seeing where it goes.

  • vade

    “Somehow, many people want some fresh blood on this scene. And that’s where Vuo comes in. From the creators of the Kineme plug-ins, it’s a chance to start anew.”

    Well, to be fair, PD, Max, VVVV and other node based languages pale in comparison when it comes to usage OUTSIDE of the editor. QC’s strength and power was not that it was a node based environment, but that it was a node based environment that allowed integration with Obj-C code, to push and pull inputs and allow multiple applications to share compositions in a really powerful way.

    That right there is what made (and still makes) QC so powerful.

  • Benedikt Eickhoff

    Is there any Framework which can’t be wrapped ivy or into a QC Plugin or be called by a command line plugin from within QC ? Keen to know really – ?

    • Theoretically, no. Practically, there are some frameworks whose design makes it impractical.

      For example, about 5 years ago we at Kineme started work on a Python interpreter QC patch. At the time, the Python framework had a lot of process-wide shared data, which meant there could only be a single instance of the Python interpreter, which doesn’t really fit the way QC works (in QC you should be able to create as many instances of a patch as you want)… So we gave up on the Python QC patch.

      • Benedikt Eickhoff

        Lua comes to mind, but unfortunately the available options are broken on Maverick …

  • Benedikt Eickhoff

    “Ivy = by “

  • SkyRon™

    Enjoying this thread!

    As a QC / PD / Processing user/performer/teacher, I’d really like a tool that can handle video effortlessly (QC), create remarkable sound sketches (PD), and tap into a fantastic developer community (Processing). Plus, I’d like everything to be free and cross platform (PD/Processing), and I’d like to be able to use Vade’s UBERGREAT Rutt-Etra VideoSynthesis and DataMosh plug-ins (earlier versions of QC). And, I want to be able to use Kinect to control some of this work (QC/PD and Processing, if you are fearless in working in Terminal, which I am not).

    I want it all, and I want it now. Can someone who needs less sleep than I do make this happen? Will it happen with Vuo in the next few months? How much VC do they need?

  • George Toledo

    This is a really one sided article that’s lacking in objectivity, and has an amazing amount of hyperbolic rumor. Try to adhere to some kind of journalistic standard.