Clutter is a GObject based library for creating fast, visually rich graphical user interfaces.
Clutter semantics work by having a stage (a window) and then adding actors (widgets) to the stage and manipulating via the actor api. Actors can contain child actors (ClutterGroup for example) and be manipulated as a whole.
Animations and visual effects can be created via the use of timelines 
    and behaviours. Timelines provide accurate frame based animations. 
    Behaviours further extend this by taking a timeline, a control function 
    (clutter.Alpha) 
    and then applying to actors as to modify a property as a function of time.