25
PAC-C3D: PAC-C3D: The Architecture of the Collaviz Framework The Architecture of the Collaviz Framework Thierry Duval Thierry Duval IRISA – Rennes – France IRISA – Rennes – France

PAC-C3D: The Architecture of the Collaviz Frameworkpeople.irisa.fr/Thierry.Duval/Documents/VCoRE/... · 18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 10 Related work

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

Page 1: PAC-C3D: The Architecture of the Collaviz Frameworkpeople.irisa.fr/Thierry.Duval/Documents/VCoRE/... · 18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 10 Related work

PAC-C3D:PAC-C3D:The Architecture of the Collaviz FrameworkThe Architecture of the Collaviz Framework

Thierry DuvalThierry Duval

IRISA – Rennes – FranceIRISA – Rennes – France

Page 2: PAC-C3D: The Architecture of the Collaviz Frameworkpeople.irisa.fr/Thierry.Duval/Documents/VCoRE/... · 18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 10 Related work

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

Page 3: PAC-C3D: The Architecture of the Collaviz Frameworkpeople.irisa.fr/Thierry.Duval/Documents/VCoRE/... · 18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 10 Related work

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

Page 4: PAC-C3D: The Architecture of the Collaviz Frameworkpeople.irisa.fr/Thierry.Duval/Documents/VCoRE/... · 18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 10 Related work

18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 4

Related work3D CVE distribution modes

➢ 3D CVE architectures: duplicated model

Page 5: PAC-C3D: The Architecture of the Collaviz Frameworkpeople.irisa.fr/Thierry.Duval/Documents/VCoRE/... · 18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 10 Related work

18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 5

Related work3D CVE distribution modes

➢ 3D CVE architectures: centralized model

Page 6: PAC-C3D: The Architecture of the Collaviz Frameworkpeople.irisa.fr/Thierry.Duval/Documents/VCoRE/... · 18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 10 Related work

18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 6

Related work3D CVE distribution modes

➢ 3D CVE architectures: hybrid model

Page 7: PAC-C3D: The Architecture of the Collaviz Frameworkpeople.irisa.fr/Thierry.Duval/Documents/VCoRE/... · 18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 10 Related work

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]

Page 8: PAC-C3D: The Architecture of the Collaviz Frameworkpeople.irisa.fr/Thierry.Duval/Documents/VCoRE/... · 18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 10 Related work

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]

Page 9: PAC-C3D: The Architecture of the Collaviz Frameworkpeople.irisa.fr/Thierry.Duval/Documents/VCoRE/... · 18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 10 Related work

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]

Page 10: PAC-C3D: The Architecture of the Collaviz Frameworkpeople.irisa.fr/Thierry.Duval/Documents/VCoRE/... · 18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 10 Related work

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

Page 11: PAC-C3D: The Architecture of the Collaviz Frameworkpeople.irisa.fr/Thierry.Duval/Documents/VCoRE/... · 18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 10 Related work

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

Page 12: PAC-C3D: The Architecture of the Collaviz Frameworkpeople.irisa.fr/Thierry.Duval/Documents/VCoRE/... · 18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 10 Related work

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

Page 13: PAC-C3D: The Architecture of the Collaviz Frameworkpeople.irisa.fr/Thierry.Duval/Documents/VCoRE/... · 18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 10 Related work

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

Page 14: PAC-C3D: The Architecture of the Collaviz Frameworkpeople.irisa.fr/Thierry.Duval/Documents/VCoRE/... · 18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 10 Related work

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

Page 15: PAC-C3D: The Architecture of the Collaviz Frameworkpeople.irisa.fr/Thierry.Duval/Documents/VCoRE/... · 18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 10 Related work

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

Page 16: PAC-C3D: The Architecture of the Collaviz Frameworkpeople.irisa.fr/Thierry.Duval/Documents/VCoRE/... · 18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 10 Related work

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

Page 17: PAC-C3D: The Architecture of the Collaviz Frameworkpeople.irisa.fr/Thierry.Duval/Documents/VCoRE/... · 18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 10 Related work

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

Page 18: PAC-C3D: The Architecture of the Collaviz Frameworkpeople.irisa.fr/Thierry.Duval/Documents/VCoRE/... · 18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 10 Related work

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

Page 19: PAC-C3D: The Architecture of the Collaviz Frameworkpeople.irisa.fr/Thierry.Duval/Documents/VCoRE/... · 18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 10 Related work

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)

Page 20: PAC-C3D: The Architecture of the Collaviz Frameworkpeople.irisa.fr/Thierry.Duval/Documents/VCoRE/... · 18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 10 Related work

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

Page 21: PAC-C3D: The Architecture of the Collaviz Frameworkpeople.irisa.fr/Thierry.Duval/Documents/VCoRE/... · 18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 10 Related work

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

Page 22: PAC-C3D: The Architecture of the Collaviz Frameworkpeople.irisa.fr/Thierry.Duval/Documents/VCoRE/... · 18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 10 Related work

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, ...

Page 23: PAC-C3D: The Architecture of the Collaviz Frameworkpeople.irisa.fr/Thierry.Duval/Documents/VCoRE/... · 18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 10 Related work

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!

Page 24: PAC-C3D: The Architecture of the Collaviz Frameworkpeople.irisa.fr/Thierry.Duval/Documents/VCoRE/... · 18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 10 Related work

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, ...

Page 25: PAC-C3D: The Architecture of the Collaviz Frameworkpeople.irisa.fr/Thierry.Duval/Documents/VCoRE/... · 18/01/2012 PAC-C3D: The Architecture of the Collaviz Framework 10 Related work

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