Clutter is an open source (LGPL 2.1) software library for creating fast, compelling, portable, and dynamic graphical user interfaces. It is a core part of GNOME, and is supported by the open source community.

Clutter uses OpenGL for rendering (and optionally OpenGL|ES for use on mobile and embedded platforms), but wraps an easy to use, efficient, flexible API around GL’s complexity.

Clutter enforces no particular user interface style, but provides a rich, generic foundation for higher-level toolkits tailored to specific needs.


Clutter currently has the following features:

  • Scene-graph of layered 2D interface elements manipulated in 3D space via position, grouping, transparency, scaling, clipping and rotation. Learn more about ClutterActor
  • Animation framework, providing path interpolation, transitions and other custom effects via implicit animations. Learn more about Clutter Animation Framework
  • User Interface definition format, based on JSON, for describing layout and animation. Learn more about ClutterScript
  • Advanced input event handling, including multiple pointing devices.
  • Custom Pango renderer providing efficient internationalised UTF8 text rendering through OpenGL.
  • Support for high end OpenGL features such as Shaders, FBO, VBO and PBO through a low-level, object oriented abstraction API. More about Cogl
  • Support for media playback with GStreamer, Cairo graphics rendering, GTK+ embedding, Box2D physics engine and Gecko and WebKit web rendering are available via optional add-on libraries.
  • Object oriented design via GObject with a familiar GTK+ like API.
  • Runs on Linux, Windows and OSX with native backend window system support for GLX, EGL (both on X11 and framebuffer surfaces), WGL and Cocoa.
  • Support for mobile devices with fixed point internals and portability across Open GL, OpenGL ES 1.1 and OpenGL ES 2.0
  • Developed in C, with language bindings for Perl, Python, C#, C++, Vala and Ruby. Clutter also generates introspection data during build, for dynamic language binding using the GObject introspection API. Learn more about GObject introspection

2 thoughts on “About”

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.