prefuse is a user interface toolkit for constructing highly-interactive visualizations of graph-structured (i.e. node-link) data. prefuse applications are built by stringing together composable modules (called {@link edu.berkeley.guir.prefuse.action.Action Actions}) into {@link edu.berkeley.guir.prefuse.activity.ActionList ActionLists} that perform various tasks such as graph processing and animation.

Other features of the toolkit include:
The general pattern of building a prefuse visualization component is to first determine the {@link edu.berkeley.guir.prefuse.graph.Graph Graph} data structure to visualize, and construct an {@link edu.berkeley.guir.prefuse.ItemRegistry ItemRegistry} to create and store visual representations of the graph data along with one or more {@link edu.berkeley.guir.prefuse.Display Display} instances to draw these visual representations to the screen. One then assigns a {@link edu.berkeley.guir.prefuse.render.RendererFactory RendererFactory} to the {@link edu.berkeley.guir.prefuse.ItemRegistry ItemRegistry}, which determines which {@link edu.berkeley.guir.prefuse.render.Renderer Renderer} instances are used to draw individual items. Then any number of {@link edu.berkeley.guir.prefuse.activity.ActionList ActionLists} can be created and scheduled to perform graph operations such as layout, color assignment, and animation. Finally, interactive behaviors can be specified by adding custom {@link edu.berkeley.guir.prefuse.event.ControlListener ControlListeners} or pre-built {@link edu.berkeley.guir.prefusex.controls Controls} to the {@link edu.berkeley.guir.prefuse.Display Display} instances. For working examples of this process, take a look at the provided {@link edu.berkeley.guir.prefuse.demos demonstration applications}.