|clutter is a next-generation canvas library for open architectures|
|Contact Person:||Tschew (mail)|
"File:" cannot be used as a page name in this wiki.
NOTE TO VISITORS FROM HSF: cluttermm and clutter are currently moving targets, my code does not work with the current master branches of each.
Clutter is an open-source canvas library for animating actors (textures, shapes, text etc..) on a stage (OpenGL accelerated screen) using timelines and animations. It can be used to create advanced user interfaces as it sports a full set of signals for interaction. For instance, it is used for the new Moblin interface. It can be integrated into GTK+ applications as a widget and is ideally suited for living in the GTK+ ecosystem, using GObject in depth.
Because user interfaces benefit immensely from using language-native object orientation, Openismus has produced high-quality C++ bindings: cluttermm There also exist bindings for python which should be useful for making interface mockups.
Using these, classes can be defined painlessly which have independent behaviours according to their own states and the state of the stage, making the management of large collections of actors really simple.
Murray Cumming and co. from Openismus have written tutorials for both clutter and cluttermm. (Note: the cluttermm tutorial still includes the deprecated Clutter::EffectsTemplate which has been replaced with Clutter::Animation)
As an example, I've prepared a couple of short screencasts showing off a mock UI displaying the pages of a PDF book (loaded using poppler) and a short animation of hundreds of small squares oscillating with a radial sinc (sin(r)/r) function and their normal vectors following the pointer which is taken to be 1000 units above the screen. The sourcecode for each (sometimes with some changes compared to the screencasts) is the the 'experiments' folder in the git repository and can be checked out via
git clone git://source.hacker.lu/odyssey.git
SDL and OpenFrameworks integrate badly or not at all with existing GUIs, so Clutter seems to be a prime candidate for experimenting with this exciting new way of building user interfaces. Since we have a few people who are interested in multitouch and modern interfaces, I thought I'd share my stuff here and invite others to 'beat the crap out of proprietary software'.
Note: the artifacts & slowness in the videos are from the screencast, the UIs are smooth.