Read Me
##################
# README for k3m #
##################
Usage:
======
* Start by copying k3m.conf.sample to k3m.conf and tweaking it.
* To use that k3m.conf file, start k3m this way:
$ ./src/k3m .
* Pass any other options (like --1st-ip 101) after that initial dot:
$ ./src/k3m . --1st-ip 101
Buttons in the commands panel:
==============================
* The list of known commands should be self-explaining.
* Clicking on '+' starts such a process.
* Clicking on 'x' kills all such processes.
* Capabilities are labelled as follows:
- DF: Distant Fork
- CM: Can Migrate
- RM: Use Remote Memory
- SL: See Local Proc Stat
* Node sets are ignored at the moment.
Keyboard shortcuts in the GUI:
==============================
Useful shortcuts:
-----------------
* 'Esc' exits k3m.
* 'Space' resets the view to a neutral position.
* 'r' triggers a tiny rotation.
* 'c' toggles the commands panel.
* 'd' toggles between various rending modes for the nodes.
* 'a' displays a hideous about box during a few seconds.
* 'f' toggles fullscreen mode.
* '<' switches to a lower resolution.
* '>' switches to a higher resolution.
Less useful shortcuts:
----------------------
* 's' toggles between various (depending on the OSG version)
stats about rendering.
* 'm' toggles between various OSG threading models.
* 'h' toggles on-screen help.
Network setup:
==============
* There are two separate streams: to and from the node.
* There are two ways of interacting with the nodes: with and without
a forwarder. The idea is to use direct connections when the GUI is
on the same LAN as the nodes, and to use a forwarder when the GUI
is run from a remote network, making it easy to tunnel/cipher TCP
connections between GUI and forwarder.
* Messages from nodes to GUI:
nodes → udp:9999 → forwarder ← tcp:9999 ← GUI
nodes → udp:9999 → GUI
* Messages from GUI to nodes:
nodes ← tcp:9998 ← forwarder ← tcp:9998 ← GUI
nodes ← tcp:9998 ← GUI
* Note that changing the default port (9999) to $PORT in the
forwarder or in the GUI will change the other port (9998) to
$((PORT-1)). That's not configurable to avoid cluttering
usage/options for both tools.
* Remember to use appropriate settings for both krgconnector and
krginteractor on the nodes.