Egon Animator
 The latest addition to the Siag family is a program to create animated sequences. Examples of where such a program can be useful is:

Presentation graphics Computerized toons Demonstrations Animated GIF creation
 The name of this program is Egon Animator. The look and feel of the program is very similar to that of Siag and Pathetic Writer; however not all of their powerful features like embedding are yet implemented. But the core of the program is the same, in fact the three programs share much of the same source. The multiple interpreter support is present (with only SIOD implemented properly, but the hooks are there for Guile and Tcl).

Why an animation program?
 Well, why not? When I first started working on my spreadsheet Siag, the long term goal was to create a full, free office package. Now that Siag and the word processor Pathetic Writer are operational, if not finished, it seemed like a small but natural step to add a simple program to create presentation graphics. As usual, I had an old program lying around which could be botched into a new role.

So, what is it like?
 Egon has an editing interface with three lists for the objects, the ticks and the properties. Objects include rectangles, lines, pixmaps and so on. Every object has a list of one or more ticks, which are "milestones" telling where the object should be at a particular time, what shape, colour and so on. When the animation is played, Egon automatically interpolates intermediate positions between the ticks so that a smooth linear movement can be specified with only the endpoints.
 There will also be a Visual Basic-style interface where objects can be chosen from a palette and placed on the animation window using drag-and-drop, but that is not yet implemented.
 The animations are stored as Scheme scripts in human-readable form so that they can be edited manually. It is also easy to write scripts without using the editing interface at all. For example, here is a script to create a ticker-tape:

(define (ticker-tape width height duration text)
  (ani-object ANI_LINE)
  (ani-properties ANI_X 0 ANI_Y (- height 21) ANI_WIDTH width)
  (ani-object ANI_FILLRECT)
  (ani-properties ANI_X 0 ANI_Y (- height 20))
  (ani-properties ANI_WIDTH width ANI_HEIGHT 20)
  (ani-properties ANI_COLOR WHITE)
  (ani-object ANI_STRING)
  (ani-properties ANI_X width ANI_Y (- height 5))
  (ani-properties ANI_TEXT text)
  (ani-time duration)
  (ani-properties ANI_X 0))
 Interpretation: At the bottom of the window, create a horizontal black line and a white rectangle. Using the rectangle as background, make the message move from left to right throughout the presentation.
 Once defined, this function can be called from any number of animations with different parameters. For example, assuming we have a demo with a window size of 600x500 and a playing time of 2 seconds:

(ticker-tape 600 500 2000 "Egon Animation 2.23. No Warranty")
 Simple, eh?
 Simple scripts can also be merged into more complex animations, so the above definition can be stored in a separate file ticker.scm and used in other animations. This makes it possible to create a library of reusable animation snippets.