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

Features

libavg includes a hardware-accelerated display mixer and screen layout engine and integrates high-performance video playback. It supports paragraph-level text layout and rendering as well as cameras. Nearly all parameters can be changed at runtime using python scripts. Input is supported using mouse and keyboard as well as standard touchscreens and multitouch surfaces. Among others, libavg projects have used motors, coin rejectors and relays attached to parallel and serial ports, worked with usb bluetooth dongles and integrated printing.

Screen Layout Engine

The screen layout engine is at the heart of avg. It is responsible for dealing with graphical elements (images, videos, text, camera output) in a generic way and for putting these on the screen. Among others, it supports:

Video Support

libavg video support means:

Text Support

Text rendering is supported with:

Vector Support

libavg supports vector nodes rendered on the GPU. Available vector node types are Line, PolyLine, Curve, Circle, Polygon and Rectangle. Vector nodes can be textured, with the closed vectors taking two textures: one for the outline, one for the fill.

Sound Support

libavg supports mixing of an unlimited amount of stereo sounds with a high-quality limiter to avoid artifacts on volume spikes. It supports alsa on linux and core audio on Mac OS X for low-latency sound output.

Camera Support

libavg supports a wide variety of firewire and USB cameras. Setting camera parameters such as brightness, exposure, saturation and gamma is also possible.

Plugin Support

Plugins written in C++ have access to all libavg internals and can define complete new node types, including xml and python interface.

Animation

libavg has built-in support for smooth time-based animations. Any numeric attribute of a node - x, y, angle, etc. - can be animated with a single line of code to create linear and spline-based movements.

Tracking

libavg was used as the basis for the c-base MultiTouch Console MTC and thus supports camera tracking and multitouch surfaces built using firewire and Video4Linux cameras.

Authoring

All of python is available for scripting. libavg directly provides: