HD Cookbook - The Animation Framework

This project includes a well-developed animation framework that's well suited to the needs of Blu-ray, and other television platforms based on PBP, like OCAP and MHP. This framework gives the programmer and author the tools needed to create time-based animation withoptimized drawing, where only the areas of the screen that have changed are re-drawn. The GRIN scene graph uses this animation framework, but the animation framework can also be used in a stand-alone fashion. It features an open architecture that allows drawing from multiple sources to be combined into the same presentation, with drawing from different source stacked to top of eachother. This allows any Java program to, for example, draw both under and over the drawing produced from a GRIN scene graph.

Key to achieving good animation framework is to optimize the drawing operations, so that the number of pixels tha need to be copied for each frame are minimized. A good animation framework also needs a solid threading model, so that application programmers don't have to worry too much about mulit-threading.

There are important workflow differences between development for TV platform and the web:

The GRIN animation framework was built around this understanding of the workflow, that runs from design, to authoring, to mastering, to replication. A similar workflow is expected for professional TV production in other domains, like IPTV.

The image at the top of this document is a screen grab of a desktop tool that an author can use to visualize and tune the drawing operations performed in an animation. An author can group together related sets of drawings (perhaps those co-located on the screen), and can provide other information that helps the drawing engine to minimize the drawing that needs to be done. In the screen grab, the areas to be erased are showin in red. The turtles are moving to the right, but because they fill a rectangular area with opaque pixels, only the left side of the previous image needs to be erased. The GRIN show that produced this frame is in the file grin/samples/GrinViewerXlet/show.txt, and can be run with the command "grin/scripts/shell/run_grinviewer.sh test".

The GRIN animation framework has these design goals:

More complete and detailed technical information can be found in the Animation Framework Usage document.