EDIA Remote (aka RCAS — Remote-Control-And-Streaming) is a Unity framework enabling remote control of an VR application on a HMD.
For this package, two example scenes are provided.
- Controller
- Executer
EDIA Remote is responsible for all networked interactions between controller and executer sides. It makes it possible to do this on separate machines via network traffic. Currently only tested with Windows-based builds, but should be working as an Android APK too. Which gives opportunities for a tablet or even phone based app.
This scene is an example of the controller end.
Main purpose of the controller is to be the controling side of the experiment (i.e., the interface for the experimenter).
The controller side is responsible for:
- Act as network client which connects to the server
- Provide the possibility to connect
- Convert and send internal event over the network connection and viseversa
- Displaying streaming view from the VR user
It implements a few networked components:
- Interfacing RCAS events <> Internal events -> prefab:
[ Controller Peer ] - Video stream reciever panel -> prefab:
[ PanelVideoStreamReceiver ] - Pairing offer -> prefab:
[ PanelPairingOffer ]
This scene is an example of the executer end.
The executer is the execution side of the experiment, which runs on a VR capable device.
The executer side is responsible for:
- Act as network server which the controller can connect to
- Convert and send internal event over the network connection and vice versa
It implements a few networked components:
- Interfacing RCAS events <> Internal events -> prefab:
[ Executer Peer ] - Camera Capture streaming -> prefab:
[ CameraCaptureStreamer ]
It executes the experiment and and expects network events from the Controller side, which get converted via the RCAS HMD interface.
On the other hand it sends a converted rendertexture from a dedicated streaming camera as bytes towards the controller.
controller side) is pretty resource intensive and will most likely cause loss of performance (e.g., frame drops).
This is the source project in which the package is a part.
For details when it comes to setup, installation and usage, refer to the following documentation:
Essential parts of the code in this package were written by Benjamin Kahl (website).
If you are using this repository for your research or other public work, please cite the EDIA Toolbox.
We are happy to receive feedback and contributions. If you want to report a bug, please open a GitHub issue. If you have questions or suggestions, please use the GitHub Discussion board. If you want to contribute to EDIA, ideally first reach out to us (e.g., via the Discussion board or email), and/or post a pull request.