# gdvrpn A native GDScript implementation of the [VRPN](https://vrpn.github.io/) client protocol. # Background VR hardware and software provide commonly an interface for tracking data by implementing a VPRN server. Binding the actual VRPN client library into an extension is proven and working poses a burden for maintenance and deployability. To solve this gdvrpn allows for a native integration of VRPN tracking in Godot. This project does not implement any server components or forwarding and is only tested with a limited number of devices in our lab. Currently, UDP mode is under development. ![Tracking with an OptiTrack System](addons/vrpn/docs/img/gdvrpn-optitrack.jpg) # Install Install the project from the AssetLib in Godot or directly from the repository. # Usage There are two components, a `VRPN_Client` and needed for using this addon: `VPRPN_Client` is mandatory and implements the network component of this addon that parses the data received and broadcasts them to the respective receivers within the scene tree. `VRPN_Tracker` is a receiver taking pose information (i.e. position and orientation) of a rigid body and applies it to the nodes global transform. `VRPN_Button` is a receiver of button events. ## Example For some inspiration try the example `spin_tracker.tscn`. To create a test input use the shipped VRPN config file `test/vrpn.test.cfg` as follows (from the root of this repository) ```bash $> vrpn_server -f addons/vrpn/tests/vrpn.test.cfg ``` # License This project is licensed under the terms of the [MIT License](https://opensource.org/license/mit)