Skip to content

Commit e11be63

Browse files
author
hpcdgrie
committed
Added collaborative setup instructions
1 parent f2c5b79 commit e11be63

1 file changed

Lines changed: 108 additions & 0 deletions

File tree

src/kernel/vrb/README

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
OpenCOVER and COVISE collaborative setup
2+
========================================
3+
4+
This directory contains the VRB client/server code that OpenCOVER uses for
5+
collaborative sessions. The VRB server is the central connection point. It manages clients and can host
6+
multiple sessions in which states are shared between clients. Clients can be
7+
OpenCOVER instances, coviseDaemons, and COVISE instances.
8+
9+
What you need
10+
-------------
11+
12+
- A working COVISE/OpenCOVER build
13+
- One VRB server endpoint that all clients can reach
14+
- A valid COCONFIG
15+
16+
Collaborative configuration
17+
---------------------------
18+
19+
OpenCOVER, VRB, COVISE, and coviseDaemon use COCONFIG for connection details:
20+
21+
<System>
22+
<VRB>
23+
<Server value="host_url" tcpPort="31253" udpPort="49999" />
24+
<RemoteFetch value="on" path="/var/tmp/$USER/remoteFetch" hash="on" />
25+
<CheckConnectionTimeout value="5" />
26+
</VRB>
27+
</System>
28+
29+
Remote fetch allows OpenCOVER to copy loaded files from the source machine.
30+
If hash is enabled, the source file system path is hashed to create individual
31+
file names.
32+
33+
Warning: This does not work for non-VRML files that implicitly depend on other
34+
files.
35+
36+
Client information for OpenCOVER can be configured in the COVER section:
37+
38+
<COVER>
39+
<Collaborative>
40+
<UserName value="your_name" />
41+
<Email value="your_email" />
42+
<Icon value="path_to_your_icon" />
43+
</Collaborative>
44+
</COVER>
45+
46+
The icon (for example, .obj) is shown on the floor panel of the VR avatar.
47+
48+
Connecting two OpenCOVER instances
49+
----------------------------------
50+
51+
After the configuration is set up:
52+
53+
1. Start VRB on the configured endpoint that all clients can reach.
54+
2. Start OpenCOVER on machine A: Opencover -g your_session_name ...
55+
3. Start OpenCOVER on machine B: Opencover -g your_session_name ...
56+
57+
Collaboration modes (Collaborate menu)
58+
--------------------------------------
59+
60+
The Collaborate menu is available as long as you are in a collaborative
61+
session with at least one other OpenCOVER instance.
62+
63+
Collaboration modes:
64+
65+
- Loose: each client moves independently and is represented to others by a VR avatar.
66+
- Master/Slave: the master perspective is forced on clients; head tracking still works.
67+
- Tight: clients share the perspective; navigation is enabled only if no other client is navigating.
68+
69+
Using coviseDaemon
70+
------------------
71+
72+
The coviseDaemon signals that a client is ready to be invited to OpenCOVER or
73+
COVISE sessions.
74+
75+
In OpenCOVER, use File -> Launch remote COVER. In COVISE, use CSCW -> manage
76+
partners. All coviseDaemons connected to the same VRB are listed and can be
77+
selected to add that client to the remote session.
78+
79+
COVISE specifics
80+
----------------
81+
Since COVISE objects can be quite large the VRB tries to setup peer-to-peer connections between the master client and it's slaves. If that failes the objects are tunneld through the VRB.
82+
83+
For developers
84+
--------------
85+
86+
Use the SharedState template class to synchronize variables via VRB.
87+
88+
VRML specifics
89+
--------------
90+
91+
TUI nodes (TUIButton, TUIToggleButton, TUISlider, TUIFloatSlider,
92+
TUIComboBox, TUIListBox) are not shared by default. Set shared TRUE to
93+
synchronize them, for example:
94+
95+
TUIFloatSlider
96+
{
97+
elementName "your_slider_name"
98+
pos 0 14
99+
max 100.0
100+
min 0.0
101+
value 0.0
102+
shared TRUE
103+
}
104+
105+
106+
107+
108+

0 commit comments

Comments
 (0)