clutterhs: Bindings to the Clutter animation library

[ gui, library ] [ Propose Tags ]

Clutterhs is a binding to the Clutter C library. Clutter is an open source software library for creating fast, visually rich, portable and animated graphical user interfaces. Clutter uses OpenGL for rendering but with an API which hides the underlying GL complexity from the developer. The Clutter API is intended to be easy to use, efficient and flexible.

[Skip to Readme]


  • Graphics
    • UI
      • Graphics.UI.Clutter
        • Graphics.UI.Clutter.Actor
        • Graphics.UI.Clutter.Alpha
        • Graphics.UI.Clutter.Animatable
        • Graphics.UI.Clutter.Animation
        • Graphics.UI.Clutter.Behaviour
        • Graphics.UI.Clutter.BehaviourDepth
        • Graphics.UI.Clutter.BehaviourEllipse
        • Graphics.UI.Clutter.BehaviourOpacity
        • Graphics.UI.Clutter.BehaviourPath
        • Graphics.UI.Clutter.BehaviourRotate
        • Graphics.UI.Clutter.BehaviourScale
        • Graphics.UI.Clutter.BindingPool
        • Graphics.UI.Clutter.CairoTexture
        • Graphics.UI.Clutter.ChildMeta
        • Graphics.UI.Clutter.Clone
        • Graphics.UI.Clutter.Color
        • Graphics.UI.Clutter.Container
        • Graphics.UI.Clutter.CustomSignals
        • Graphics.UI.Clutter.Event
        • Graphics.UI.Clutter.GTypes
        • Graphics.UI.Clutter.General
        • Graphics.UI.Clutter.Group
        • Graphics.UI.Clutter.Interval
        • Graphics.UI.Clutter.ListModel
        • Graphics.UI.Clutter.Media
        • Graphics.UI.Clutter.Model
        • Graphics.UI.Clutter.ModelIter
        • Graphics.UI.Clutter.Path
        • Graphics.UI.Clutter.Rectangle
        • Graphics.UI.Clutter.Score
        • Graphics.UI.Clutter.Script
        • Graphics.UI.Clutter.Scriptable
        • Graphics.UI.Clutter.Shader
        • Graphics.UI.Clutter.Signals
        • Graphics.UI.Clutter.Stage
        • Graphics.UI.Clutter.StoreValue
        • Graphics.UI.Clutter.Text
        • Graphics.UI.Clutter.Texture
        • Graphics.UI.Clutter.Timeline
        • Graphics.UI.Clutter.Types
        • Graphics.UI.Clutter.Units
        • Graphics.UI.Clutter.Utilities
        • Graphics.UI.Clutter.Utility
        • Graphics.UI.Clutter.X11


Automatic Flags

Enable debug support


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


  • No Candidates
Versions [RSS] 0.1
Dependencies array, base (>3 && <5), cairo, glib (>=0.10.1), gtk (>=0.10.1), haskell98, mtl, X11 [details]
License LicenseRef-LGPL
Copyright (c) 2009 Matthew Arsenault
Author Matthew Arsenault
Category GUI
Uploaded by MatthewArsenault at 2009-11-29T04:12:01Z
Reverse Dependencies 1 direct, 0 indirect [details]
Downloads 1321 total (5 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
All reported builds failed as of 2016-11-10 [all 12 reports]

Readme for clutterhs-0.1

[back to package description]
=== Clutterhs README ==

Bindings for the Clutter ( animation
library for Haskell.

This currently depends on Gtk2hs from darcs, mostly using the
Glib/GObject bindings.


The closest things to examples are in clutter/demo in the git repo,
the most useful of which is probably ClutterGame.

This library is currently incomplete. Most of the core parts of
Clutter are bound. Basic actors and animations should all be bound
(however incompletely tested). Documentation is partially complete. It
is mostly copied from the Clutter C documentation, and some parts have
not been Haskellified yet. There's also quite a bit of mess internally
that will be cleaned up eventually.

If you have any comments, complaints, or suggestions on the API or
anything, feel free to email me (

The only major components that are somewhere between entirely unbound
or effectively so are ClutterUnits, ClutterModel related things, and
perhaps ClutterScriptable and Animatable. Also many random lower level
functions, and things involving threads or timeouts are unbound. Also
I haven't started binding COGL yet, but that's also planned.

I've only tested on Linux, and only partially have the X11 backend
specific stuff bound (which you also can't yet disable, so this is
more or less X11-backend-only for right now). Clutter-gtk is in the source
tree, but pretend it doesn't exist since nothing is actually there
right now.

As another GObject based GUI library, use should be similar to gtk2hs
in many ways. As a simple example of animations, you do something like

  animate rectangle EaseOutBounce 3000 [ actorX :-> rnd1 * w,
                                         actorY :-> rnd2 * h / 2 + h / 2,
                                         actorRotationAngleZ :-> ang,
                                         actorOpacity :-> 0 ]

where the last argument to the animate function is a list of
attributes and their ending values in the animation. Any writable
property of the Clutter Actor you are animating should work, paired
with it's ending value with ':->'. The best example currently would be
ClutterGame.hs in the demo folder. Better examples and a tutorial are

In general, anything in the Clutter C API that takes a string name of
a property and a Gvalue uses an Attribute.