Samba system


Samba Page

SV Home Page

SV Publications

Quick Links:
POLKA
SAMBA
XTANGO

SAMBA is a front-end to the POLKA algorithm animation system. Samba is, in essence, an interactive animation interpreter that reads ASCII commands and performs the corresponding animation actions. A set of example commands in Samba format is shown at the end of this page. This format is designed to be very easy to learn and use. The chief advantage of Samba is that a program in any language can be annotated to generate these ASCII commands, thus driving a visualization of the program. A technical report about Samba and the documentation for the system are available here.

Samba is available via anonymous ftp within the POLKA system. The original version of the system is implemented in C++ on top of UNIX and the X11 Window System. It should be run on a color monitor. A newer version of the system (both Samba and POLKA) is available which runs directly on top of Windows. Both versions are available to be acquired via anonymous ftp from ftp.cc.gatech.edu under pub/people/stasko. To access that place, press here.

A Java version of Samba, called JSamba is available now too. This version runs as an applet and lets you try out some of the Samba functionality over the Web.

Below are a couple Samba script files. Commands exist to create objects, modify objects, and alter the viewing windows. Animations are built in floating point coordinates, and multiple windows can be used. The first field on each command is the command type. For object creation commands, the second field is an ID that is used in subsequent modifier commands. Trailing fields are then parameters to these commands. The '{' brackets allow explicit concurrency of commands.

comment This is a sample animation script
circle 1 0.8 0.8 0.1 red half
line 2 0.1 0.1 0.2 0.2 green thin
rectangle 3 0.1 0.9 0.1 0.1 blue solid
text 4 0.0 0.0 0 black Hello
text 5 0.5 0.5 1 black RealLongStringandThenSomeAndEvenMore
circle 6 0.3 0.3 0.2 wheat solid
triangle 7 0.5 1.0 0.6 0.8 0.4 0.9 cyan solid
bigtext 8 0.2 0.2 0 black Some Big Text
moveto 1 6
moverelative 3 0.05 -0.4
jumprelative 4 0.4 0.4
raise 1
lower 1
color 6 blue
move 3 0.5 0.5
jump 3 0.9 0.9
jumpto 3 6
raise 3
fill 3 half
fill 3 outline
fill 3 half
vis 3
vis 3
vis 6
delete 8
line 200 0.9 0.2 0.0 0.6 black thick
bigtext 8 0.6 0.2 0 DeepPink More Big Text
flextext 88 0.4 0.3 0 magenta 8x13bold Flex Text 8x13bold
rectangle 12 0.7 0.7 0.1 0.1 green solid
exchangepos 12 3
exchangepos 12 3
exchangepos 12 3
exchangepos 12 3
switchpos 12 3
circle 99 0.8 0.8 0.15 black outline
exchangepos 1 99
bg pink
bg LemonChiffon2
coords -0.5 -0.5 1.5 1.5


viewdef MainView 600 600
viewdef SecondView 400 400
comment Switch to MainView.
view MainView
comment Draw a line there.
line thinblackline 0.2 0.2 0.5 0.0 black thin
comment Switch to the SecondView.
view SecondView
comment Draw a rectangle here.
rectangle redrectangle 0.2 0.1 0.3 0.2 red half
view MainView
comment Let's move the rectangle and the line at the same time.
{
view SecondView
move redrectangle 0.3 0.3
view MainView
move thinblackline 0.5 0.5
}
delay 15
comment Now, let's move them separately.
moverelative thinblackline -0.2 -0.2
view SecondView
moverelative redrectangle 0.2 0.2
delay 15
comment Let's put in a polygon in SecondView.
polygon greenpoly 4 green solid 0.0 0.0 0.5 0.5 0.7 0.5 0.5 0.1 0.0 0.0
comment Let's alter the fill and color for the rectangle.
fill redrectangle solid
color redrectangle khaki
delay 15
comment Let's get rid of that polygon.
delete greenpoly


 


Research | Education | People | Labs | News & Events

Questions or Comments? Visit our FAQ and Feedback Pages. Last Modified on .