mainThings - Summary

Membership Info
Group Admin:
2 active members

Group identification
Id: 10219
System Name: things
Name: Things
Group Type: non-GNU software and documentation

Search in this Group


This group is not part of the GNU Project.

Things is a Retained-Mode Canvas Animation API

The target O/S is GNU/Linux; it was developed on Kubuntu Gutsy.

I wanted an API to express animation and the 'thing-iness' of objects as directly as I could imagine. With Things, it's very easy to create visual metaphors.

"Things inside other things, doing things with stuff." is the basic recipe :) Each thing has a timeline and a variety of ways to draw py-cairo graphics. Each Thing can contain other things, and so-on down. Things can be tweened around keys like size, rotation and alpha.

Various specialized Things are available to do stuff like clipping, hit-detection, path following and so on.

Inkscape is the extended IDE for this API: You can draw all your vector graphics there and pull them out into Things via Python. You can draw individual 'sprites' or multiple 'loops' or paths and masks.

There is a (primitive) event system -- so you can do mouse stuff. Indeed there is a ButtonThing and a HitThing ready for use.

To manage "media" content, there is a Bag-Of-Stuff module which manages media and other stuff that goes into an animation:

  • Loads animations and paths from SVG files.
  • Installs fonts (otf, ttf) temporarily.
  • Loads images.

My hope is that someone (with a brain, not like mine :) ) will take this API and turn it into a fast C/C++ library.
If this happens then we could focus on building an actual IDE to draw SVG and code Python and layout keys all on a visual timeline. It could be a really neat animation system for GNU/Linux (and other platforms).

It's written in Python and uses Python-Cairo as its engine.

Please see the demos; (they are named * and run them from the command-line roughly like this:

Export function

Export each frame to alpha PNG or SVG files: This will let you make quick ajax throbbers, animated gifs and import frames into other software like Blender for example.


In order to get a copy, please use:

svn co svn://
svn co svn://

Or, get it from:


Thanks to all the coders involved in Cairo, librsvg, Python, Pyparsing and too many others to mention.


Registration Date: Sun 26 Apr 2009 03:33:43 PM UTC
License: GNU General Public License v3 or later
Development Status: 0 - Undefined


Quick Overview
 Memberlist (2 members)

Communication Tools

Back to the top

Powered by Savane 3.13-b921.
Corresponding source code