This is a third year Computing Science project at the University of Glasgow (http://www.dcs.gla.ac.uk) that a group of us five students did. Technology such as graphics orientated systems from Silicon Graphics fail to replace the traditional cartoon animator or automate to a reasonable degree the noticeably expensive process of in-betweening. It is the particular drawing style of each cartoonist that characterizes a cartoon and also poses the main problem in automating the cartoon animation process. This project intended to address some of these problems and aimed to provide "procedural libraries for cartoon animation".
It consists of the following components:
A User Interface layer.
A Language layer to allow users to specify scenes - the Cartoon Scripting Language (CSL).
An Engine layer - a set of animation libraries generating images representing animation effects specified by the user.
We used a spreadsheet interface for graphical objects as devised by Marc Levoy's paper (Spreadsheet For Images, SIGGRAPH 96). Each column represents a frame and each row represents a layer. The user types in code in our custom language, CSL, presses compile and images are rendered onto the spreadsheet in 2D. One can make play the individual frames in the video player.
Code parameters include the number of particles wanted, what their velocities are, what colour scheme to use as each particle's life changes. Paths for particles can be made, and wind and gravity can affect particle movement. Such standard effects possible are fire, rain, smoke, and as shown above, water spray.
We used Java SDK 1.4.0 to build this project. Video files are saved in one file containing PNG byte arrays. This allows huge savings in disk space, and since PNG is a loss less format, you do not get the artefacts that are apparent in compression of cartoons. A video of length 61 frames takes on average 400KB. We did not use the Java Media Framework since there is incompatibility between it and Java SDK 1.4.0.
At the moment, one member of our team is redesigning the system so that the interface is in applet form on a client and computation and file IO is done on at the server end. The Faraday Lab in our Computing Science department will release the code as open source in the not so distance future?..