Upload
thomasine-dickerson
View
220
Download
0
Tags:
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
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
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