avg | ain´t vector grafics
Showcase
timescope Photobox Werder Bremen Museum
Unità Zero c-base Core Control
c-base Scanner c-base Infoscreens
 

Mission

When artists and designers build computer-based installations, they often need to rely on a framework for managing high-quality interactive visuals and sound. In the past, most such installations were built using Macromedia Director (or possibly Flash) and ran under Microsoft Windows or Mac OS. avg is an open source alternative to these systems Ð a free plattform for multimedia installations that has some distinct advantages when compared to the proprietary solutions.

The avg project started in 2003, when we were trying to build an installation in the c-base and got fed up with the apparent impossibility of doing what we wanted legally without paying for software.

Requirements

At the start of the project, something that could be termed requirements gathering took place: I sat in bars late at night listening to people who build installations telling me how they work and what they´d like to be able to do. I combined this with my own experiences in building installations and came up with the following list of needed features:

Alternatives: Director, Flash, svg players

Of course, if the commercial products did everything authors want, it would be hard to convince most people to use an open-source counterpart.

They don´t.

Director still has a slow rendering engine that does all computation in software. Font quality is mediocre, so designers regularly pre-render text in image processing programs and import the images in Director. (Needless to say, that results in lots of extra work if the text needs to be changed during production). There is no linux player.

Flash focuses on internet delivery. It is optimized for small downloads, thus the good support for vector graphics. It is not made to handle complex bitmapped graphics and videos, causing performance problems. Like in director, all rendering is done in software and there is no up-to-date playback engine for Linux.

The open svg (Scalable Vector Graphics) standard is an attempt to build an open standard alternative to flash. While interesting, the standard does not support video. It is also a large standard that is hard to implement completely.

Concept

Central to the avg plattform is an xml-based screen layout language named - you guessed it - avg. This language is simliar to svg, with lots of vector-oriented features missing and things like video support added. Dynamic, reactive or interactive elements are scripted in python. The result is that there´s a clear separation between static content (screen layout) and dynamics (animations, user interaction). This makes it easy for content and dynamics to be handled by different people if necessary or convenient.

As an example, here is an avg file that displays a bitmap on the screen:

<avg id="mainavgnode" width="640" height="480" fullscreen="true">
 <image id="logo" x="0" y="0" z="1" href="avglogo.tif" 
        onmouseover="disappear"/>
</avg>

And this is a python snippet that gets called when the user moves the mouse over the bitmap and makes it disappear:

def disappear():
    logoNode = AVGPlayer.getElementByID("logo")
    logoNode.opacity = 0

A full list of the things that libavg currently supports can be found on the features page.

Ulrich von Zadow April 2006