SceneBeans

An Animation Framework for Java

SceneBeans is a Java framework for building and controlling animated graphics. It removes the drudgery of programming animated graphics, allowing programmers to concentrate on what is being animated, rather than on how that animation is played back to the user. SceneBeans is based upon Java Beans and XML. Its component-based architecture allows application developers to easily extend the framework with domain-specific visual and behavioural components. It is used in the LTSA tool to animate formal models of concurrent systems and has also been used to build computer-based education programs for junior science.


Features

Structured Graphics
The graphics drawn by SceneBeans are defined by a "scene graph", a directed, acyclic graph of Java Beans. Each bean encapsulates a simple drawing command and are combined to describe complex scenes. The SceneBeans framework includes components to display scene graphs. Programmers can concentrate on building scene graphs to render the required display, rather than writing code to paint the display in response to expose events.
Animation
A program animates a scene graph by modifying properties of the beans in the graph before drawing each frame. The SceneBeans framework provides support for scheduling animation behaviours. The programmer merely has to select the behaviour components they require and wire them into the scene graph.
XML File Format
SceneBeans uses an XML-based file format to define animations. This allows non-programmers to build animations without programming a single line of Java and and also is convenient for programmers because they can avoid the frustrating edit/compile/debug cycle when fine-tuning animation parameters.
Illustrative
The SceneBeans framework is designed to allow applications to communicate with and control animations so that animations can communicate application-specific information to the user, rather than being mere "eye candy".
Extensible
The XML parser provides methods to register additional packages of application-specific beans. The <?scenebeans...?> processing instruction allows individual animations to register additional packages of beans stored in separate JAR files.

Documentation

The following documentation is available about SceneBeans:

You can also download the following papers:

SceneBeans: A Component-Based Animation Framework for Java
Giving a high level overview of the SceneBeans framework, this paper simplifies some of the implementation details in favour of emphasising the motivation for the framework and how it meets those requirements.
Graphical Animation of Behaviour Models
Graphical animation is a way of visualising the behaviour of design models that is of use in validating the model against informally specified requirements and in interpreting the meaning and significance of analysis results in relation to the problem domain. This paper describes how behaviour models specified by Labelled Transition Systems can drive graphical animations defined by SceneBeans. The semantic framework for the approach is based on Timed Automata.

Download

The latest version of SceneBeans and related software are available from the SceneBeans download page.

Related Links

Comments and Bug Reports

Send comments and bug reports to scenebeans@dse.doc.ic.ac.uk.

Credits

SceneBeans was designed and implemented by Nat Pryce with contributions from Jeff Magee.

The SceneBeans distribution includes the redistributable binary components of Sun's Project-X XML parser.

SceneBeans uses Konstantin Metlov's JEL library to evaluate expressions. JEL is distributed under the GPL, and source code is available from the JEL web site.