As your options multiply, I think there are few excuses in 2009 not to develop using portable, free and open source, multi-platform, mobile-ready platforms — period. We talk a lot about the Java side of the pond, or even C/C++, but the other reality is you have options for just about any job using just about any language of choice.

If you’re a developer (or programming artist), it’s worth paying attention.

If you’re a user, you should be able to look forward to being able to use whatever OS you like — Linux included — and be able to work with visuals.

Clutter is a library for creating “visually rich” apps. That could be a UI, or it could be a “rich client,” or a VJ and animation app. How cool is Clutter?

  • It’s built in C, but you can use C++, Perl, Python, C#, Vala, and Ruby.
  • It does scene graphs, at least for manipulating 2D elements in 3D space.
  • It works on Linux, Windows, and OS X. It supports Cocoa.
  • It does OpenGL – including shaders and FBOs. It does mobile OpenGL ES.
  • It does animation, with paths and transitions and behaviors and timelines.
  • JSON-based scripting.

The Clutter Toolkit

And it’s all free and open source. So why, exactly, are you still sticking with clumsy proprietary tools that don’t do what you want and lock you into some platforms, but not others? (Okay, I know there are some good reasons for that, but still — you get the point.)

Anyway, let’s skip straight to video. Part of what’s nice about Clutter is its support for some nice rich libraries (Cairo for graphics, GTK+ for UI, Box2D for physics, and WebKit for the Web). Best of these: GStreamer, the truly-amazing, truly compatible, faster-than-what-you’re-using-now video playback library. (And yes, GStreamer can even best QuickTime in some performance tests from what I’ve heard.)

Irish-based VJ and developer Luis de Bethencourt — also the lead behind Ubuntu Studio — has a nice post on the topic.

awesome (gstreamer * clutter) [The Phrygian Cap]

In just a few lines of code, he pipes video output from GStreamer to Clutter.

Manipulating that texture is then a piece of cake, meaning this could be a fantastic environment to build a live visual app. (One hint to the Clutter folks — time for some nice eye-candy screenshots. Or maybe this community could help make that happen.)

I love Java and Processing, but, um, look out. This is a strong option, too. (And even in Processing/Java development, I’m now using GStreamer, so it’s all in the family.)

  • http://www.tweakingknobs.com TweakingKnobs

    Um… No images or video about it ?

  • wes

    what does all this mean??? i just want to make visual and sound design like universaleverything and freefarm, im so lost in this world of producing visual via code based programs. i wanna be a kid again and make things with visuals not lines of code. helllp world!!!

  • http://createdigitalmusic.com Peter Kirn

    @wes Hey, don't worry! Like I said, if you're not ready to jump down this rabbit hole yourself, just *know that it's there*. If you want to get started with visuals, I wouldn't recommend this tool, necessarily. I'd play with Processing (lines of code, but very immediate and visual) or, you know, even work optically and film stuff. Seriously. There are terrific effects you can create real-for-real.

    I think the important thing is that we have a number of strong options that *are* open and cross-platform as libraries and frameworks. I just don't see a strong argument for new visual environments being so tied to one platform. I think we have enough of those. I think we'll see more stuff that goes across platforms and extends to mobile — and artists, even if you're not developing these toys, stick around and you should have them to play with soon.

    And yeah, we do need some demo images/videos, agreed. ;)

  • http://www.colour-burst.com cat

    Wes look at quartz composer or vvvv, they let you make applications without writing code, you still need to get your head around maths (and in quartz you'll often get the useful advice of your need to use java for that…) but its mostly about knowing what you want to do and discovering the way to do it via joining basic functions with wires, its very liberating and faster to learn than coding, especially if you can't spell like me!

  • http://luisbg.blogalia.com/ luisbg

    clutter is awesome indeed. i’m looking foward to including it into freemix 0.3 :)

    i’m irish based but born and raised in the canary islands.

    enjoy!

  • naus3a

    Totally have ho try it. The c++ side is a little less impromptu but the extra time spent in debugging code, even if it's mode geeky, can really pay off when you have to perform in real time

  • Chuck

    The post mentions it works under Windows, but I couldn't find any info on that environment (binaries, build environment) on the toolkit web site. Anyone have any info on using it in Windows?

  • Chuck

    I did find some Windows build info – in the API doc – http://clutter-project.org/docs/clutter/0.8/build…. They outline using the mingw tool set.