Visual Communication in the AQUA environment

Post on 07-Jan-2016

38 views 3 download

Tags:

description

Visual Communication in the AQUA environment. Technical aspects and solutions Stefan Seipel Lars W. Pettersson Björn Andersson Uppsala University. We are situated in a co-located multiple viewing environment. Co-located multiple viewing environments. - PowerPoint PPT Presentation

transcript

Visual Communication in the AQUA environment

Technical aspects and solutions

Stefan Seipel Lars W. Pettersson

Björn Andersson

Uppsala University

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

We are situated in a

co-located multiple viewing environment

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

Co-located multiple viewing environments Example: iRoom [Fox2000]

Based on conventional 2D GUI

http://graphics.stanford.edu/projects/iwork/room/images/using-room-feb-00/

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

Co-located multiple viewing environments The AQUARIUM [Sundin2000]

Beyond the 2D graphical user interface

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

Why is 3D so interesting ?

Example of what could be done with 3D representations

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

Do existing tools fix the job?

NetVR Full transparency and SG/DB replication

Latency issues not a predominant issue

Concurrency of media streams more important

Cluster/Tiled Rendering Optimization

Single data multiple processes

Single data multiple displays

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

AQUARIUM – A 3D Interactive Environment

Specific requirements

Tiled displays

Multiple view ports

Image superimposition

Multiple views on a shared 3D scene

Individual views on private data

Co-location of multiple displays

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

AQUARIUM – A 3D Interactive Environment

Specific requirements

Tiled displays

Multiple view ports

Image superimposition

Multiple views on a shared 3D scene

Individual views on private data

Co-location of multiple displays

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

AQUARIUM – A 3D Interactive Environment

Specific requirements

Tiled displays

Multiple view ports

Image superimposition

Multiple views on a shared 3D scene

Individual views on private data

Co-location of multiple displays

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

AQUARIUM – A 3D Interactive Environment

Specific requirements

Tiled displays

Multiple view ports

Image superimposition

Multiple views on a shared 3D scene

Individual views on private data

Co-location of multiple displays

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

AQUARIUM – A 3D Interactive Environment

Specific requirements

Tiled displays

Multiple view ports

Image superimposition

Multiple views on a shared 3D scene

Individual views on private data

Co-location of multiple displays

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

How to design applications…

…that support “20 eyes upon 15 visuals” ?

Multiple processes

Allow for flexible configuration

Management of visual views

Provide multiple interaction contexts

Easy to use programming concepts

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

Controlling by sharing data

Shared State Repository [Lindkvist2001]

Client 1

srAPI

Client 2

srAPI

Client n

srAPI

Server

srAPI

Virtual Shared Memory

TCP/UDP

• Client-Server architecture

• Lean and easy to use API

• Based on TCP, UDP or MC

• Small data subscription packages

• No concurrence control

srAlloc

srFree

srGet

srUpdate

...

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

Data Pools Pooling context relevant data

Application

VR-Tool

Low Level 3D (OpenGL)

Rendering HW

Display

AQUARIUM application

srAPI

Application

VR-Tool

Low Level 3D (OpenGL)

Rendering HW

Display

AQUARIUM application

srAPI

projector pool

pipe pool

node pool

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

Data Pools Pooling context relevant data

projector pool

pipe pool

node pool

how?

Viewing frustumHead position

Real world metrics

where?Buffer specificPixel metrics

Reference to a projector

what?

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

An Example Scenario

Retroscope1

Retroscope2

Vsionarium1

Vsionarium2

Tracker 1

ViewManager

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

What about performance?

Latency and frame incoherence will introduce

visual artifacts!

Little research done

Edge discontinuity

Hyper- or hypo-parallax

Vertical parallax

Peripheral viewing artifacts

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

General test set-up:

pool

Client 2

Render

Client 1

Render

Server 1

Capture&Analysis

2 Rendering processes

1 Animation process

Simple scene

Register output

Analyze differences

Observation: # frames out-of-sync.

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

Test A : Local host

server

20 Hz

200 framesAVI Sequence

fan

Client2800x300

Client1800x300

framegrabber800x600

Snurr.wmv

1 animated nodeva = 90°/sec. const.Animation rate: 10Hz, 20Hz, 30Hz, 40Hz, 50Hz

stefan:stefan:

fr~80Hz

fr~80Hz

Host 1

DifferentialAnalysis

PIII/2.2GHz, GeForce4 4600

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

Test B : Local area network

20 Hz

200 framesAVI Sequence

Client2800x300

Client1800x300

framegrabber800x600

Snurr.wmv

1 animated nodeva = 90°/sec. const.Animation rate: 10Hz, 20Hz, 30Hz, 40Hz, 50Hz

stefan:stefan:

fr~80Hz

fr~80Hz

server

fan

Host 1Host 2

LAN10/100

MBit DifferentialAnalysis

PIII/2.2GHz, GeForce4 4600PIII/500MHz, E&S

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

Results for Test A and Test B

stefan:stefan:

0

2000

4000

6000

8000

10000

12000

14000

16000

18000

20000

1 11

21

31

41

51

61

71

81

91

10

1

11

1

12

1

13

1

14

1

15

1

16

1

17

1

18

1

19

1

20

1

10Hz

20Hz

30Hz

40Hz

50Hz

0

2000

4000

6000

8000

10000

12000

14000

16000

18000

20000

1 11

21

31

41

51

61

71

81

91

10

1

11

1

12

1

13

1

14

1

15

1

16

1

17

1

18

1

19

1

20

1

10Hz

20Hz

30Hz

40Hz

50Hz

Loca

l host

LAN

Animation rate

Animation rate

Frame number

Frame number

#differing pixels

#differing pixels

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

Results for Test A and Test B

stefan:stefan:

Animation Rate 10Hz 20Hz 30Hz 40Hz 50HzAsync. Frames A (%) 0,5 3,5 3 5,5 4,5Async. Frames B (%) 1,5 1,5 1 2,5 5Async. Frames A 1 7 6 11 9Async. Frames B 3 3 2 5 10

0

1

2

3

4

5

6

10Hz 20Hz 30Hz 40Hz 50Hz

Async. Frames A (%)

Async. Frames B (%)

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

Test C and D : Traffic

va = 90°/sec. const.

stefan:stefan:

20 Hz

200 framesAVI Sequence

Client2800x300

Client1800x300

framegrabber800x600

Snurr.wmv

fr~80Hz

fr~80Hz

server

fan

Host 1Host 2

LAN10/100

MBit DifferentialAnalysis

LAN configuration as in Test B

Increasing the number of shared states

Test C: (10 Hz; 1,10,20,40,60,80,100,120,140,160,180,200)

Test D: (20 Hz; 1,10,20,40,60,80,100,120,140,160,180,200)

PIII/2.2GHz, GeForce4 4600PIII/500MHz, E&S

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

Results for Test C and Test D

stefan:stefan:

Number of nodes 1 10 20 40 60 80 100 120 140 160 180 200Async. Frames C (%) 2 2 0,5 0,5 0,5 2 2 3,5 2,5 2,5 3,5 3Async. Frames D (%) 0,5 2 2 2,5 2,5 1,5 1,5 1,5 1 1 2 2Async. Frames C 4 4 1 1 1 4 4 7 5 5 7 6Async. Frames D 1 4 4 5 5 3 3 3 2 2 4 4

0

0,5

1

1,5

2

2,5

3

3,5

4

1 10 20 40 60 80 100 120 140 160 180 200

Async. Frames C (%)

Async. Frames D (%)

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

Conclusion

Framework allows for building modular complex visualization environments

Flexible to use and combine with existing tools

No need for fancy protocols to maintain adequate frame-sync.

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

The fusion 2D and 3D Interfaces

The AQUARIUM is a 3D environment

How can legacy code be re-used?

Can 2D applications be instantiated

within a 3D environment?

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

Virtual Network Computing

System for sharing frame-buffers/applications

Developed by AT&T Laboratories Cambridge,

1999

Open Source

Remote Frame Buffer Protocol well documented

Servers and clients readily available for Microsoft

Windows, Unix, Linux och MacOs

Bold servers, thin clients

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

2D Virtual Network Computing Client

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

A 3D VNC Client

VNC Server

3D VNC Client 3D VNC Client 3D VNC Client

• Decode RFB protocol

• Administrate local texture buffers

• Handle 3D input and map to 2D

server coordinates

x

y

y

x

x’ y’

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

3D VNC Application

Example in the AQUARIUM

Contextual browsing of auxiliary information on the WEB

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

3D VNC Performance Assessment Benchmarking

Frame rate Delay

Common Interaction Text editing Mouse movement Web browsing Streaming videos

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

Modular Application Development

Background The framework & component design Communication between components

The VASE development framework

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

Background Until now – monolithic application Different but similar applications

Many components reappear in several of the applications

Makes modular development natural Framework that handles this is needed

(VASE) Easy script (XML)

The modular approach enables a parallel development process

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

Middlewares used VRT – Virtual Reality Toolkit

For graphics handling Built on top of OpenGL Implements a scenegraph

STREEP For network communication Shared state repository Supports both TCP and UDP

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

Design of the framework and the basic structure of the plugins

The framework defines the basic structure for the components (plugins)

Implements a main module Each plugin is written as a DLL and

implements a class, which structure is inherited from a base class

Plugins are dynamically linked during execution

Easy to change or create new plugins when new functionality is to be added

Main module

Plugin DLL

Class implementation

Plugin instance

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

The main module The main module (vase.exe) handles:

Parsing of a configuration file (*.vas) Loading and creation of plugin instances Distributes user interaction events Handles message passing Handles shared states

”myfile.vas” <component type=vpiAvatar name=”client>

<translate>0 -2 3</translate>

<rotate>0 -90 0</rotate>

<size>2</size>

</component>Huvudmodul (VASE.exe)

Plugin1 Plugin2 Plugin3

Plugin pool

Plugin DLLs

Plugin DLLs

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

Example configuration file

<vase> <component type="AquaViewer" name="tablet_pc_viewer">

<projector>TABLET_PC_VIEW <width>207</width> <height>138</height> <front>50</front> <back>100</back> <window_center>0.0 0.0 0.0</window_center> <window_normal>0.0 1.0 0.0</window_normal> <window_up>0 0.0 -1.0</window_up> <view_point>0.0 200.0 0.0</view_point></projector>

<pipe>TABLET_PC_PIPE <projector>TABLET_PC_VIEW</projector> <left>0</left> <bottom>0</bottom> <width>1024</width> <height>768</height></pipe>

</component>

<component type="AquaWhiteboard" name="wtboard"> <translate>0 0 3</translate> <rotate>0 0 -90</rotate> <scale>1 1 1</scale> <bgcolor_r>0</bgcolor_r> <bgcolor_g>0</bgcolor_g> <bgcolor_b>0</bgcolor_b> <show_pointer>0</show_pointer> </component></vase>

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

Client 2Client 1

Communication Local communication

Function calls to the main module

Method calls

Network communication Uses STREEP Through the main module Message passing

Receiving plugin concatinated to the message

Shared states Subscription lists keeps track

of who is interested in what

Main module

Plugin1 Plugin2

Plugin1

Shared state repository

Main moduleMain module

Plugin2

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

Example of Aqua components (plugins) AquaController

3D-buttons Sends messages to other plugins

AquaEchelon Draws an echelon graph Listens to parsed Stratmas data Implements an internal XML structure for units

AquaEnvironment Handles the drawing of the

map grid

AquaParser Inuput: Stratmas generated data file Output: Parsed binary file Distributes the parsed data to other plugins

AquaViewer Handles projectors and pipes Tracking devices

AquaWhiteboard Overlay for the map Stores strokes in RT90 coordinates

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

How do we connect the AQUA environment to the rest of the world?

The STRATMAS-Link Modifications to STRATMAS Socket connectivity File connectivity XML encoding

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

The STRATMAS Link- Modifications to STRATMAS

TCP socket communication add in a thread

conf.dat (link to) ID number for each Unit

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

The STRATMAS Link- Socket connectivity

Connection on an hostname and port specified in conf.dat

XML data is sent in fixed sized blocks over the socket connection

Communication is one way

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

The STRATMAS Link- File connectivity

Generation of data.txt on the Mac running STRATMAS Xml encoded (see next slide)

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

The STRATMAS Link- XML for Units

int ID;long superior_ID; // -1 if no superiorint rank; // 0-6 - enum RankTypefloat latitude;float longitude;int purpose; // 0-13 - enum PurposeTypeint vehicle_type; // 0-6 - enum VehType, -1 if no vehicleint unit_type; // 0-8 - enum UnitTypeint condition; // 0-100int health; // 0-2 - enum HealthTypelong my_threat; // Larger value - larger threatfloat sens_range; // Sensor range in km, -1 if no sensorsfloat veh_sens_range; // Vehicle sensor range in km, -1 if no vehiclefloat weapon_range; // Shoot radius in km, -1 if no vehiclelong shots_fired; // Number of shots firedlong fi_injured; // Number of enemies injuredlong fi_killed; // Number of enemies killedfloat vx; // vehicle velocity vector in degrees *lng* per

// iteration, -1 if no vehiclefloat vy; // vehicle velocity vector in degrees *lat* per // iteration, -1 if no vehiclefloat speed_kph; // vehicle speed in kilometers per hour, -1 if no vehiclefloat goal_x; // goal position RT90xfloat goal_y; // goal position RT90y

int flag; // Flag for red, green or blue unit. Values: 0, 2 or 1.

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

The STRATMAS Link- XML for Gridint rows; // Number of rows in the grid.int cols; // Number of columns in the grid.int nc; // Number of cells holding relevant data.int nlayers; // Number of layers. char lname[MAX_GRID_LAYERS][64]; // Layer names. int *index; // Array of the cell-indices corresponding to the data

array indices float *data; // The values for each layer are stored sequencially

after eachother. for red, green or blue unit. Values: 0, 2 or 1.

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

Map View

Topographic context Based on RT90 coordinate reference Mapped upon internal grid

1200000

1500000

1900000

6100000

7700000

15º48’29.8’’Ö

50kmx50kmScale 1:100.000

28 x 64 cells á 25x25 km (1:25000)

0/0

700000/0

700000/16000000/1600000

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

Map View contd. 2 textures

1024x1024texels

1024x1024texels

Map cell25 x 25 km32 x 32 texels1 texel ~ 780 meters

700000 [meters (RT90)]

1600

000

[met

ers

(RT9

0)]

Modeling unit in the virtual environment is 1cm (1:1000000)-> Map (70cmx160cm) fits visionarium

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

Map View summary

Map granularity can be adapdedAt present topography is schematic

High resolution map data can be loaded dynamicallyper map cell (e.g. 1:25000 maps per cell)depending on zoom level

Advantage of RT90 reference frameinternal representation of 3D data always Euklideanorthogonal system eases texture mappinguse lat/long conversion routines by metria

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

Cell Grid Layer Co-located with the RT90 map

Mapps geographically related information upon map

Grid cell contain aggregated data for military units

Grid cell contain substrate information

Grid cell can visualize itself

Grid size and resolution can be chosen arbitrarily

Current limits:

Max cell size: 200x200 km2

=> 32 cells/RT90 map

Min cell size: 3.125 x 3.125 km2

=> 114688 cells/RT90 map

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

Cell Properties

Cell geometry (polygon)

Cell texture

Cell related data

num_red : 0, 1,2,3,4,5 => number of red troups in 5 levels 0 = no red troups

num_blue: 0, 1,2,3,4,5 => number of blue troups in 5 levels 0 = no red troups

num_green: 0, 1,2,3,4,5 => number of green troups in 5 levels 0 = no green troups

age: 0, 1,2 => 0 = very up-to-date information; 1 = older; 2=very old

sensor: 0, 1 => 0 = there is no sensor coverage; 1 = sensor coverage

disease: 0, 1,2 => 0 = no disease; 1 = disease1; 2 = disease2

strenght_red: 0, 1,2,3 => 0 = perfect strenght, 1,2,3 dicreasing moral/strenght

strenght_blue: 0, 1,2,3 => 0 = perfect strenght, 1,2,3 dicreasing moral/strenght

strenght_green:0, 1,2,3 => 0 = perfect strenght, 1,2,3 dicreasing moral/strenght

combat: 0, 1,2 => 0 = no fight; 1 = little fight; 2 = heavy fight

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

Mapping Data from external Sources (e.g. Stratmas)

Continuous data(unit data)

Discrete data(raster data)

. . ... .

Stratmas gridrows="79”cols="36"

CellGrid::SetStratmasGridData

CellGrid::SetStratmasUnitData

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

Visualizing Cell Data

Visual pattern library

Patterns associated with properties (32x32 texels)

Patterns can be combined

Examples:

Cell property Visual pattern(s)

Number of troups (ordinal)

No sensor coverage

Diseases

Troup strength

Combat

Age

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

Visualizing Cell Data contd. Rules, based on actual cell data

- Chosing the correct base-pattern- Applying modifiers- Texture combiner

Examples of precompiled patterns (512x512 texels)

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

Visualizing Cell Data contd.

3 forces (red, green, and blue)

3 disease conditions

3 x 3 x 8 megabye/texture = 75 MB texture memory

This is equivalent to 2304 unique patterns

One more attribute will double the memory requirements

This is quite unlikely there are only 1800 grid cells in the default resolutionnot all cells contain interesting data

Cell pattern compilation at run-time for individual cells

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

Cell Grid Visualization Example

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

Visualization of continuously positioned data – Echelon graphs

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

AquaEchelon in detail Function

Draws tactical information in 3D Gives both a spatial and hierarchical

understanding at a glance Interactable

XML Bottom-up vs. Top-down

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

The XML formats Internal format

Top-down Shows a static situation

Example of the internal XML format<echelon> <unit type="skytte" size="pluton" pos="1550000 6600000 "> <weapon type="grk" force="5" range="7"/> <sensor type="radar" range="20"/> </unit>

<unit type="skytte" size="brigad" pos="1202000 6530000 "> <unit type="skytte" size=“bataljon" pos="1200000 6500000 "> <unit type ="grk" size=“kompani" pos="1720000 6530000 "> </unit> <unit size="tropp" pos="2000000 6500000 "> </unit> </unit> <unit type="skytte" size="grupp" pos="1300000 6600000 "> </unit> </unit> </echelon>

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

The XML formats – cont. Stratmas generated

Bottom-up Dynamic, can play whole scenarios

Example of a Stratmas generated file<stratmas> <units flag="red" count=“2"> <unit delay="0"> 1 -1 6 59.383562 17.027027 0 0 0 0.00 0 0.0 0.0 0.0 0.0 0 0 0 0.0 0.0 0.0

59.383562 17.027027 0 </unit> <unit delay="0"> 2 1 5 59.383562 17.027027 0 0 0 0.00 0 0.0 0.0 0.0 0.0 0 0 0 0.0 0.0 0.0

59.383562 17.027027 0 </unit> </units></stratmas>

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

Symbol construction Previously manually generated bitmaps

Now 3D-models of the basic shapes

Symbol construction

. . ..

. .

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

Construction of the symbols Make 3D-models of the basic shapes Merge several of these into a complete unit

Easy to alter the apperance of the symbols by changing the basic models

3D instead of 2D

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

Overlays

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

Overlays

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

Overlays Storage data structure

A document... • Has one or several pages...

• A page has none or several strokes

Rendering in a bitmap texture Strokes are rendered in their correct RT90 context

File format Text/Ascii based format.

Info

rmati

onst

ekn

olo

gi

Institutionen för informationsteknologi | www.it.uu.se

Interaction in with the AQUA environment

Demo...