Skip to content

edia-toolbox/edia_rcas

Repository files navigation

EDIA Remote (aka RCAS — Remote-Control-And-Streaming) is a Unity framework enabling remote control of an VR application on a HMD.

Samples

For this package, two example scenes are provided.

  1. Controller
  2. 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.

Controller

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 ]

Executer

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.
⚠️ At the moment, turning on video streaming (can be de-/activated from the controller side) is pretty resource intensive and will most likely cause loss of performance (e.g., frame drops).

Description

This is the source project in which the package is a part.

Technical Documentation

For details when it comes to setup, installation and usage, refer to the following documentation:

Credits

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.

Contribution

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.

About

EDIA: Remote Control And Streaming

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •