Collaboration between CAVEInteraction and XRInterface plugins
This is the second in a two-part series covering some of the improvements to the CAVEInteraction plugin that have come out of Kitware’s recent collaboration with the National Institute of Standards and Technology (NIST). The first post discussed the benefits of writing your own custom Python interactor styles for the CAVE.
In this installment, we will highlight another new feature of the CAVEInteraction plugin: collaboration between CAVEs and head-mounted displays (HMDs) showing ParaView visualizations with the XRInterface plugin. You can read more about the XRInterface plugin in previous blog posts, covering plugin basics and navigation. A nice feature of the XRInterface plugin is its support for collaboration among users. In the XRInterface panel, just point to the host/port where the collaboration server is running, agree on a session name with your desired collaborators, and give yourself a name as shown in the figure below. Then hit the “Connect” button to join with your colleagues in a shared immersive experience where you can all see each other’s avatars and explore your data together.
The screenshots below depict the immersive collaboration support that has been available for some time in the XRInterface plugin.
Thanks to the recent collaborative efforts between Kitware and NIST, support for immersive collaboration has been added to the CAVEInteraction plugin. This means that whether your colleagues around the world use a HMD-based or CAVE-style VR display for immersive ParaView experiences, you can now share that immersive experience with them seamlessly.
Let’s take a quick tour of this new feature in the CAVEInteraction plugin.
If you have built ParaView with collaboration support turned on (or more conveniently, downloaded a binary version of ParaView), then you’ll notice a new section with the CaveInteraction Manager panel.
Notice that the UI is similar to the one available in the XRInterface plugin. It allows you to specify a host and port where the collaboration server is listening (more on that below), a session, and a name for yourself. Unlike the XRInterface version, there is no “Connect” button. Instead, you can enable collaboration using the checkbox, and when you start the CAVE tracking event loop using the “Start” button already present in the panel, ParaView will connect to the collaboration server automatically. Another thing not in the XRInterface is the ability to set the default avatar up vector. This is simply the direction in world coordinates that new avatars joining your session should be oriented upon creation. This feature is useful when your data is not oriented such that +Y is “up”.
Thanks to fundamental differences in how tracking devices and events are configured in the two plugins, the CAVEInteraction plugin also gives you the ability to configure which of your tracked devices to use to represent your head and hands.
When you click the “Edit Avatar” button, you’ll be presented with the dialog above, which is pre-populated with any tracker events you have configured in the plugin (see the documentation on VR Connections for more information). Just assign them to be your head and hands based on how you’re using them. For example, in the screenshot above, we used the HTC Vive Tracker device for head tracking, so we assign it to represent our avatar’s head.
Sharing navigation allows your collaborators to see not only your tracked head and hand positions/orientations, but also your current navigation location (see the documentation on navigation in the CAVE for details).
Once your collaboration configuration is all set, you might want to save state so you don’t have to do it all over again next time you start ParaView. The collaboration configuration details are saved, along with the rest of the CAVEInteraction state, anytime you save ParaView state (via the File menu option), or use the dedicated button at the bottom of the plugin panel to save just the CAVEInteraction parameters. Having saved the interaction and collaboration parameters, you can avoid having to set them again in the future, and instead simply reload them with the “Restore” button on the CAVEInteraction panel. Finally, once all the parameters are configured, just hit the “Start” button to start interacting with your data and your colleagues!
One final improvement is worth a brief mention as well. The collaboration server itself (historically hosted by Kitware at vrserver.kitware.com) has been made into its own open-source project. While Kitware will continue to host it at vrserver.kitware.com for demonstration purposes, you can now clone the repository to investigate how the server is implemented, and especially for the security-minded, build and deploy it within your own network. For convenience, ParaView binary downloads also come with the collaboration server application included (though this is Linux-only for now).
That concludes this brief tour of collaboration support within the CAVEInteraction plugin. Enjoy!
Acknowledgements
This work was funded by the National Institute of Standards and Technology.