PAC-C3D:PAC-C3D:The Architecture of the Collaviz FrameworkThe Architecture of the Collaviz Framework
Thierry DuvalThierry Duval
IRISA – Rennes – FranceIRISA – Rennes – France
18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 2
Introduction
➢ Designing 3D CVE is a complex task✔ Address 3D interaction and immersion issues
✗ Adaptation to 3D graphics API, to various displays (desktop, tablets, CAVE, ...)
✔ Address collaborative issues:✗ Distribution, synchronization, consistency maintenance of the shared data
➢ To meet all these requirements, we have to merge:✔ HCI and CSCW results about independence to graphics 2D API
✔ 3D CVE results about collaborative issues
18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 3
Plan / Schedule
➢ Related work✔ Distributed architectures for 3D CVE
✔ HCI and CSCW software architectural models
➢ The PAC-C3D model✔ Independence to 3D graphics
✔ Adaptation to distribution modes
➢ PAC-C3D main features✔ Drive the same abstraction with different input devices
✔ Visualize the same abstraction with different 3D API
✔ Delegate behavior to abstraction and other presentations
✔ Make interoperability possible between heterogeneous 3D viewers
✔ Maintain consistency between Virtual and Physical world
➢ Conclusion and future work
18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 4
Related work3D CVE distribution modes
➢ 3D CVE architectures: duplicated model
18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 5
Related work3D CVE distribution modes
➢ 3D CVE architectures: centralized model
18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 6
Related work3D CVE distribution modes
➢ 3D CVE architectures: hybrid model
18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 7
Related workHCI architectural models
➢ HCI models✔ PAC [Coutaz 1987] / MVC [Reenskaug 1979] [Goldberg 1990] / Arch [UIMS 1992]
18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 8
Related workCSCW architectural models
➢ CSCW models✔ [Ellis, Wainer 1994] ontological, coordination and user-interface models
✔ Clover concept, PAC* [Calvary, Coutaz, Nigay 1997]
18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 9
Related workCSCW architectural models
➢ CSCW models✔ Dewan's model [Dewan 1999], Clover model [Laurillau, Nigay 2002]
18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 10
Related workSummary
➢ The need: help for designing 3D CVE✔ That should not rely too much on the 3D graphics API
✔ That should not be too dependent from the real displays
✔ That should not be too dependent from the network issues
➢ First solutions:✔ Static choice of the global distribution mode of the virtual environment
✗ With no explicit separation between network and graphic features✗ With no possibility to change the distribution mode
✔ HCI software architectural models✗ That do not impose a strong enough separation with 3D graphics✗ That do not locate precisely the place where to put the collaboration management
➢ These two research domains must be merged more efficiently✔ To be more dynamic
✔ To provide explicit implementations of HCI/CSCW models
18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 11
The PAC-C3D modelProviding explicit interfaces
➢ We propose a new interpretation of the PAC model: PAC-C3D✔ PAC + explicit interfaces for better independence between components
IA
A C
IC IP
P
control
0..1 abstraction
0..N
presentation
18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 12
The PAC-C3D modelProviding distribution policies
➢ We propose a new interpretation of the PAC model: PAC-C3D✔ PAC + explicit management of distribution policies
IA
A C
IC IP
P
0..N
control
0..1 abstraction presentation
PDPDDP RDP
DP
distributionPolicy0..1
18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 13
The PAC-C3D modelManaging duplicated architecture
➢ PAC-C3D and duplicated architecture
A A AC/DDP C/DDP C/DDPP P P
8: update 8: update
1: set2: set3: set
4: get
6: update 6: update
7: set 7: set
Node 1 Node 2 Node 3
5: update
18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 14
The PAC-C3D modelManaging centralized architecture
➢ PAC-C3D and centralized architecture
A C/RDP C/PDP C/PDPP P
1: set2: set
3: set4: set
Server Node 1 Node 2
5: get
7: update 7: update
6: update
18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 15
The PAC-C3D modelManaging hybrid architecture
➢ PAC-C3D and hybrid architecture
AC/PDP C/RDP C/PDPP P P1: set
2: set3: set
4: get
7: update 7: update
6: update 6: update
Node 1 Node 2 Node 3
5: update
1: set2: set
4: set
5: get 6: update
8: update 8: update
7: update 7: update
3: set
18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 16
The PAC-C3D modelCreating PAC virtual objects
➢ PAC-C3D and AbstractFactory for creation of PAC components
➢ Then the controller may send messages to other nodes✔ According to its distribution policy...
A PAC-C3D Factory Presentation1 Factory Presentation2 Factory
1: createObject2: new C
3: createA
Abstraction Factory
C
4: new A
A
6: new P1
P1
5: createP
7: createP8: new P2
P2
18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 17
The PAC-C3D modelBenefits of the PAC separation
➢ PAC-C3D encourages devices abstraction
➢ Allows to drive virtual interaction tools with any physical device...
A C PP (Java3D)
setPsetP
getPO
Java3D Visualizer2DPointer/3DRay Wiimote
(x,y) mouse moveEvent and/or (z)Wheel mouse event
C CsetPosition
(x,yz)Infra-redevent
setP
getPO updatePO
setPosition
3DPick3DPick mouse click event
click
do3DPickdo3DPIck
3DPick 3DPick
do3DPickdo3DPIck
buttonevent
do3DPick
updatePO
do3DPick
18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 18
The PAC-C3D modelCoupling physics engines
➢ PAC-C3D and Physics engines
➢ Physics engines are considered as active presentation components
A C/RDP C/PDP C/PDPP/Physics P/Graphics
1: set2: set
3: get
Server Node 1 Node 2
P/Graphics
4: update
5: update 5: update
6: set7: set8: set
9: get 10: update
Correctionby the
Physics Engine
11: update11: update
BadValue
GoodValue
18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 19
PAC-C3D Collaviz implementation
➢ PAC-C3D current implementation in the Collaviz framework:✔ Abstractions:
✗ Java
✔ Controls:✗ Java✗ tcp or http/https communication layer✗ 3 distribution policies
• The policy can change dynamically, at run-time• Each virtual object can choose its own distribution policy (fine grain granularity)
✔ Presentations:✗ Java3D✗ jReality✗ jMonkey (not yet fully operational)✗ Aviatrix3D (for the Collaviz generic client)✗ jBullet (for Physics)
18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 20
Creation of new objects
➢ To design a new kind of shared object:✔ Abstraction:
✗ Inherit from the Abstraction of an existing Collaviz object
✔ Control:✗ Inherit from the control of the corresponding Collaviz object (5%)✗ Reuse the control of an existing object (95%)
• Standard behavior of inherited controllers ensure the maintain of consistency between Abstraction and Presentation, and between associated distant controllers
✔ Presentation:✗ Inherit from the presentation of the corresponding Collaviz object (5%)✗ Reuse the presentation of an existing object (95%)
• Most of the shared objects have similar presentation features
✔ If needed, new Java interfaces for these new PAC components
18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 21
Integration of new engines
➢ To integrate a new 3D graphics API:✔ Design new presentations for Collaviz objects
✗ WorldObject, SharedObject, SupportedObject✗ Lights (DirectionalLight, SpotLight, PointLight, AmbientLight)✗ Camera (VirtualCamera, HeadTrackingCamera)✗ Other specialized objects (Plane, CuttingPlane, ...)
✔ Implement the AbstractFactory in charge of the creation of the objects✗ PXXX_ObjectManager
18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 22
Collaviz deployment
➢ To describe a CVE✔ Describe the collaborative sessions
✗ The participants✗ The shared objects
✔ Describe the content of the shared environment✗ The objects
• Their name, their owner, theirs access mode (who is allowed to do what...)• Their presentation features (geometry name, sound, ...)• Their distribution policy
✔ Describe the environment of the user✗ Which session he wants to join (session name, user name and password)✗ Which interaction tools he is using
• 3D cursor, hand, ray, ...
✗ What is his physical environment made of✗ Which devices drive his interaction tools
• Mouse, Wimote, ARTracking, ...
✗ Which kind of 3D rendering he is using• Java3D, jReality, ...
18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 23
Conclusion
➢ PAC-C3D:✔ Evolution of the PAC model
✗ Explicit interfaces between components✗ Very small dependency on 3D graphics API✗ Control components are also in charge of the collaboration
✔ Deals with different distribution modes✗ Through the control components
➢ Tangible results through our Collaviz implementation:✔ Ability to build “abstract” virtual worlds
✗ With quite standardized control components✗ With dynamical choice of the distribution mode, for each virtual object✗ With wide choice of 3D graphics visualization
✔ Ability to provide abstract navigation and interaction tools✗ That can be driven by any kind of physical devices, even by a 2D GUI
✔ Ability to share a virtual world between heterogeneous 3D viewers✗ With possibility to exchange services between them!
18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 24
Future work
➢ Take into account “active presentations” more efficiently✔ Work in progress...
➢ Couple PAC-C3D objects with other kinds of “engines”✔ Artificial intelligence behavior libraries
➢ Propose a kind of abstract scene-graph to describe CVE✔ Should cover the most common 3D features such as X3D or Collada
✔ Should describe the distribution mode of each object
✔ Should deal with interactive and collaborative capabilities for virtual objects✗ Kind of interaction for each object, how many users at the same time, ...
✔ Should manage access rights for interaction and collaboration✗ Who can interact, who can join or interrupt an interaction...
✔ Should describe the interaction tools capabilities
✔ Should describe the physical environment of the users✗ To embed it within the virtual environment, to prevent collisions, to improve collaboration, ...
18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 25
PAC-C3D, Collaviz and VCore
➢ OpenSG as a new presentation for Collaviz✔ Same kind of integration than Java3D, jReality, jMonkey
✔ With a Java – C++ binding
➢ SOFA as a new physics engine for Collaviz✔ Same kind of integration than jBullet
✔ With a Java – C++ binding
➢ Collaviz as a backbone between OpenSG and SOFA✔ In the same way that Collaviz makes links Java3D, jReality and jBullet
➢ Replace Collaviz by a C++ backbone if needed✔ To be more efficient than the Java backbone
✔ Still respecting the PAC-C3D model
➢ Propose a standardized description of a CVE✔ Through X3D or Collada Extensions