29
Using GASP for collaborative Interaction within 3D Virtual Worlds Thierry Duval and David Margery IRISA - Siames

Using GASP for collaborative Interaction within 3D Virtual Worlds Thierry Duval and David Margery IRISA - Siames

Embed Size (px)

Citation preview

Using GASP for collaborative Interaction within 3D Virtual Worlds

Thierry Duval and David Margery

IRISA - Siames

Outline

GASP’s mission statement

GASP’s Framework

GASP’s run-time platform (Distributing a virtual world)

Sharing 3D virtual worlds

Interacting in 3D virtual worlds

Conclusion

Mission Statement

Enable the construction of virtual worldsThat can be shared between usersWhose calculations can be distributed

Without having to deal withNetwork programming3D visualisation 3D interactions

By providing a complete framework For the programming of the entities populating the

Virtual world

Framework - Overview

Based on an Object Oriented approach (C++)

Entities populating the virtual world are described byan interface: the simulation objecta behaviour: the calculation objecta frequency at which the behaviour must be calculated

The virtual world is described by the entities populating it (configuration files)

Framework - Simulation Objects

They are the public interface of virtual entities describe the outputs of the virtual entity : named

and typed fieldsdescribe the inputs known by construction so they

can be connected to the outputs of other objectsdescribe control parameters (named and typed)

than can be read and set by other objects

position

F1:FollowerFollowed position position

F2:FollowerFollowed position

FC2:FollowerCalculFC1:FollowerCalcul

Framework - Calculation Objects

Manages the creation and connection of the inputs of the entity

Read the inputs of the entity

Calculates and produces the outputs

position

F1:FollowerFollowed position position

F2:FollowerFollowed position

Framework - Frequencies

Each object has it’s own frequencyThe connection between input and outputs is an

abstract one for the programmer Interpolation or extrapolation is fundamental to the

frameworkWhether the connection is local or uses a network

is of no importance when the entity is written

FC2:FollowerCalculFC1:FollowerCalcul

position

F1:Followerposition

F2:FollowerFollowed position 50hz25hzFollowed position

GASP’s Distributed Run-Time Platform

CommunicationHow are the data connections between entities

implemented ?

SynchronisationHow is the notion of frequency kept meaningful

across a network of workstations ?

ConsistencyHow is the virtual world kept coherent ?

Distribution - Communications

FC2:FollowerCalcul

FC1:FollowerCalcul

position

F1:FollowerFollowed position

position

F2:FollowerFollowed position 50hz

25hz

Process A

Process B

position

F1:Follower(Mirror)

Distribution - Synchronisation

A local controller is created on each node.

Basic algorithm : Proceed to simulation step of date TWait for all controllers to have finished simulation

step T Send update values to distant mirrors.Wait for update values of local mirrors

Expensive synchronisation costs

Distribution - Synchronisation 2

New algorithm (parameterised by latency)Proceed to simulation step of date T if all the

update data of simulation step of date T-dt-latency from the other controllers is available (dt is the simulated time spent during one simulation step)

Send update values and repeat

Less time spent waiting as update values transit through the network during the calculations of a simulation step

Distribution - Consistency

Extrapolation of values avoids waiting for values

If latency is made to correspond to network latency, distribution doesn’t slow the simulation ideal view: time for the creation and copy of

messages into the network subsystem buffers is taken on simulation time

Very little lag between the different machines

Visualizing 3D Virtual Worlds

Thanks to the « PsVisualization » entity: it creates a visualization for each entity derivating

from « PsGeoMeca » it is based upon the SGI Performer 3D graphic

library

Classes of the Framework

PsGeoMeca

PsObjetSimul PsCalcul1 0..n

“The Train”

Inheritance for Visualization

PsGeoMeca

Follower FollowerCalcul

PsObjetSimul PsCalcul1 0..n

1 1

Sharing 3D Virtual Worlds

By instancing several « PsVisualizations » interactive visualizations…appropriate interactors...

By distributing these entities upon several workstations thanks to our kernel distribution possibilities

F8:FollowerF7:Follower

F6:FollowerF5:Follower

F4:FollowerF3:Follower

Single Process Simulation

F2:FollowerF1:Follower

V1:Visualization

Node 1

mF8:FollowermF7:Follower

mF6:FollowermF5:Follower

mF4:FollowermF3:Follower

mF2:FollowermF1:Follower

Delegated Visualization

F8:FollowerF7:Follower

F6:FollowerF5:Follower

F4:FollowerF3:Follower

F2:FollowerF1:Follower

Node 1

V1:Visualization

Node 2

mF8:FollowermF7:Follower

mF6:FollowermF5:Follower

mF4:FollowermF3:Follower

mF2:FollowermF1:Follower

Distribution

F4:FollowerF3:Follower

F2:FollowerF1:Follower

Node 1

V1:Visualization

Node 3

F8:FollowerF7:Follower

F6:FollowerF5:Follower

mF4:Follower

Node 2

Typical Collaborative Simulation

F4:FollowerF3:Follower

F2:FollowerF1:Follower

Node 1

mF8:FollowermF7:Follower

mF6:FollowermF5:Follower

mF4:FollowermF3:Follower

mF2:FollowermF1:Follower

V1:Visualization

Node 3

F8:FollowerF7:Follower

F6:FollowerF5:Follower

mF4:Follower

Node 2

mF8:FollowermF7:Follower

mF6:FollowermF5:Follower

mF4:FollowermF3:Follower

mF2:FollowermF1:Follower

V2:Visualization

Node 4

Interacting within Virtual Worlds

By adding « Interactors » entities:new entities that provide outputs for interactionexisting entities specialized to provide such outputs

By linking these outputs to some inputs:of existing entities ready for interactionof specialized entities that have been made

interactive using inheritance (and genericity) and then adding dynamically new inputs to them

“The Interactive Train”

Asking for InteractionFC1:FollowerCalcul

FC2:FollowerCalcul

FC8:FollowerCalcul

position

F1:Follower

position

F8:Follower

InteractorCalcul

positionF1

positionF2

Interactor

positionF3

positionF4

positionF6

positionF5

positionF8

positionF7

position

F7:Follower

...

mousePosition

followedPosition

followedPosition

followedPosition

Ask for control taking

User event

FC1:FollowerCalcul

FC2:FollowerCalcul

FC8:FollowerCalculCFC8:ControllableFollowerCalcul

Accepting Interaction

position

F1:Follower

position

F8:Follower

InteractorCalcul

positionF1

positionF2

Interactor

positionF3

positionF4

positionF6

positionF5

positionF8

positionF7

position

F7:Follower

...

position

mousePosition

Accept the control taking

followedPosition

followedPosition

followedPosition

Inheritance for Interaction

ControllableFollower ControllableFollowerCalcul

PsGeoMeca

Follower FollowerCalcul

PsObjetSimul PsCalcul1 0..n

1 1

1

1

11

Conclusion

GASP ensures its mission statements: it enables the construction of virtual worlds:

• that can be shared between users• whose calculations can be distributed

without having to deal with:• network programming• 3D visualisation • 3D interactions

by providing a complete framework:• for the programming of the entities

Ongoing Work

Improving the distribution:performances (PVM, …)paradigms (duplicated objects)

Improving the interaction:adding more interactorsmaking objects interactive more easily

Virtual Museum