Animator is a program that allows you to draw simple animated 2D vector graphics without having to know the intricate APIs of more sophisticated vector libs. You don't have to link with anything: animator reads drawing commands from its STDIN.

Optionally, Animator can describe mouse and keyboard events on its STDOUT, so interactive graphics may be made.

Animator is written in ANSI C99 and uses SDL1.2 for graphics.

Animator might be useful together with software like Plumb. Sister project Projector is a similar for 3d drawings.

Key featuers:

  • Simple, well documented plain text language
  • Lines, polygons
  • Text (raster and vector font)
  • Image/texture support, image editing in memory
  • Macros for repeating or stored graphics
  • Transformation matrices
  • Matrix stack
  • Frame rate (render timing)
  • Suitable for creating still images, animation, interactive 3d applications, headless (server side) rendering.
  • Portable: ANSI C99, libsdl1.2, pure software rendering (optional opengl)
  • Small: core source code is about 8000 sloc.
  • Optional PostScript-to-animator converter (less than 2000 sloc)

Motivation: Animator is designed to be an easy to use tool for simple 2d visualisation and animation, mostly for engineering and programming. Emphasis is on ease of use and convenience, not on beautiful, detailed renders. Animator with its simple text language allows you to use any tool, scripting language, program, text editor to create animations easily, without having to worry about low level graphic interfacing.

Typical use case is as simple as

./ | animator

but with a loopback pipe it is also possible to implement interactive 3d applications since projector can report user input and events on STDOUT.

Rotating rectangle demo
Rotating rectangle demo: real-time animation (click for source)

Metaball demo
Metaball demo: "pixel" graphics animation with rectangles (click for source)

Downloads & contacts


Lander demo
Lander demo: interactive game (click for source)