Chapter 1. Introduction

This is Glay, a system for handling, processing and visualizing graphs written in Perl and modern C++. It aims to follow the KISS (Keep It Stupid and Simple) design principles, and concentrates on implementing reusable pieces of actions. Hence people knowing the Perl programming language are able to exploit it in is entirety. Using only the built-in modules like layout algorithms or the Visualization module however does not require any programming or Perl whatsoever.

Glay is built up of two main modules. One of them --- the "Visualization module" --- eats vertex coordinates, connectivity data and style information, and produces nice 3D pictures of the graph. It just draws; it has no brains or any means at all to figure out where to put the vertices, or what color the edges should have. It is usable on its own: if you provide the simple text format that it recognizes you are able to visualize graphs.

The "main module" of glay is the place that the graph can be read into, and manipulated with. It is basically a collection of actions, like an action for inputting different formats, an action for coloring, etc. Most important is the easiness of creating user defined action-files. It means that if you would like to experience with the graph, recolor some parts, calculate some quantities, etc, you only have to code the very action you want, in a minimalistic format.

The "Visualization module" and the "Main module" are designated as independent software and you are encouraged to consider using them separately, if either one alone fits your needs. If you just need to manipulate a graph, probably a command "glay -i filename -a actionname" is a command for you. If you have a separate program that can produce appropriate input for the "Visualization module", you can use that alone to visualize your data. Feel free to experience, and good luck!