Collaborating with ParaView

From ParaQ Wiki
Jump to navigationJump to search

This page provides a overview for the set of collaborative features planned for ParaView.

Objective

The goal is simple, enable collaboration during the visualization and analysis process between multiple, dispersed researchers using ParaView. Users can use collaboration for shared exploration of the data as well as demonstration and presentation purposes (where the participants are mere observers).

CollaborationSetup.png

System Configuration

The configuration we are addressing is one where multiple ParaView applications connect to a common ParaView Server (pvserver) process. Thus to start collaborating with some user, one simply has to ask the user to connect to the same pvserver process.

Now different types of ParaView clients can connect to same pvserver e.g. you can have the standard Qt ParaView Client, a pvpython and a ParaViewWeb client connect to the same pvserver and they will be collaborating with each other.

What is Collaboration?

Collaboration, in our case, basically means when one performs an action in client A, say open a data file, all other clients connects to the same pvserver, see that the data file was opened. When client A renders that data, all clients see the rendering too. When client changes the color, all clients see that -- you get the picture.

When we talk of heterogeneous clients collaborating, different clients can choose different roles, e.g you can have a ParaViewWeb "Viewer" client that simply shows the updated renderings as a ParaView Qt client creates the visualization pipeline.

How will this be achieved?

Collaboration will be possible because of "shared" Server Manager. In ParaView ServerManager is the visualization core for all intents and purposes. The collaboration framework will ensure that the ServerManager between different clients will remain synced. Thus if client A creates proxy Alpha and registers it with the proxy manager, client B will also see the proxy Alpha with all its properties with same values as on client A.

Qt Client-to-Qt Client Features

Let's look at some of the features that will be available for the two or more collaborating standard ParaView Qt Clients.

Ownership

When connecting to a "collaborative" server, a "Collaboration" inspector panel will be available. This panel will show the users connected to the pvserver (using user names or host names for example). At any given time, only 1 user can "drive" the visualization. He will have the ownership of the visualization, i.e he's the only one able to make changes to the visualization pipeline. Using the "Collaboration" inspector, one can transfer the owner ship to any other user, this making him the new "driver" for the visualization. Although only 1 user has control of the visualization pipeline, all users have the ownership of their client i.e. each user can navigate through different panel in the application to his choosing e.g. explore the data information about some reader which the "driver" is applying some filter.

Independent Renderings

Each client can have different screen resolutions and aspect ratios. We are not going to require each client to have identical resolution for the renderings.

Multiple Viewpoints

It will be possible for different users to interact with the 3D scene on their own. At the same time any user choose to link his camera(s) with any particular user. We can also provide "markers" in the scene to represent the camera for each of the users so one can get an idea for what region of the data another user is exploring.

Annotation

When multiple users are collaborating over a table, they often use pointers, sketch pens and simple hand gestures to focus people’s attention to areas of interest. This use case is not much different for collaborative visualization. We need to provide facilities for the users to mark on the screen. We will provide pointers, 3D widgets, and labels to help communication between the users.