-
Notifications
You must be signed in to change notification settings - Fork 81
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
v0.5 Release
- Loading branch information
Showing
26 changed files
with
1,069 additions
and
557 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,62 +1,84 @@ | ||
# OpenGloves Driver | ||
# OpenGloves Driver [![Steam Badge]][Steam] [![Discord Badge]][Discord] | ||
|
||
OpenGloves is an OpenVR driver for DIY Virtual Reality Gloves. Using OpenVR's driver interface we are able to provide support for many SteamVR/OpenVR games. | ||
A general purpose **SteamVR** driver with an **[Open Interface]** <br> | ||
for anyone to connect their **DIY** **VR** *( Glove )* hardware. | ||
|
||
## Installation and Usage | ||
--- | ||
|
||
**⸢ [Installation] ⸥ ⸢ [Limitations] ⸥ ⸢ [Compatibility] ⸥** | ||
|
||
### Download on Steam: | ||
[![Steam Release](https://cdn.discordapp.com/attachments/790676300552994826/845412304219537439/openglovessteam.png)](https://store.steampowered.com/app/1574050/OpenGloves) | ||
* We strongly recommend downloading the driver from Steam, to recieve automatic updates and UI settings. | ||
--- | ||
|
||
*Or download the latest on GitHub:* | ||
* https://github.com/LucidVR/opengloves-driver/releases | ||
## Features | ||
|
||
**Follow the wiki guide for configuring the driver** | ||
* https://github.com/LucidVR/opengloves-driver/wiki/Configuring-the-Driver | ||
* The driver will not work correctly unless you configure it properly. | ||
- **Haptic Force Feedback** | ||
|
||
**Problems?** | ||
* Check [Troubleshooting](https://github.com/LucidVR/opengloves-driver/wiki/Troubleshooting) | ||
* Didn't help? Contact us on the [Community Discord Server](https://discord.gg/lucidvr) | ||
## Building | ||
If you want to use the driver as-is, refer to [Installation and Usage](#Installation-and-Usage). | ||
If you are planning on modifying source files, refer to [BUILDING.md](https://github.com/LucidVR/opengloves-driver/blob/develop/BUILDING.md). | ||
- **Full Finger Tracking** <br> | ||
*‹ Beta › Splay Support* <br> | ||
*‹ Beta › Individual Joint Support* | ||
|
||
## Compatibility | ||
### Compatible Hardware | ||
* [LucidGloves](https://github.com/LucidVR/lucidgloves) - Lucas VRTech | ||
* [Fngrs](https://github.com/danwillm/Fngrs/) - danwillm | ||
* Have your own hardware you want to feature here? Let us know! | ||
- **Tracker / Controller Positioning** <br> | ||
*Automatic relative calibration* <br> | ||
*Controller ⟷ Glove* | ||
|
||
### Compatible Games | ||
* Refer to [Game Compatibility List](https://github.com/LucidVR/opengloves-driver/wiki/Game-Compatibility-List) | ||
* As this is an OpenVR driver, it is strictly compatible with games that take input from the OpenVR API. Only the games in the list above have been tested to work properly. | ||
- **Button / Joystick Inputs** <br> | ||
*➜ Trigger | A | B* <br> | ||
*➜ Joystick | X | Y | Click* | ||
|
||
### Current features included in the driver | ||
* Finger flexion tracking | ||
* Force feedback haptics | ||
* Positioning from controllers + trackers | ||
* Automatic Calibration | ||
* Button/Joystick inputs | ||
* A/B/Menu buttons, Joystick X/Y/Click | ||
* Communication Protocols: | ||
* Serial USB | ||
* Serial over Bluetooth | ||
- **Multiple Communication Protocols** <br> | ||
*- Bluetooth Serial* <br> | ||
*- Named Pipes* <br> | ||
*- Serial USB* | ||
|
||
### Planned features | ||
* BLE Communication | ||
* Finger splay tracking | ||
* Vibration haptics | ||
<br> | ||
|
||
### Steam UI | ||
|
||
The **[Steam]** version of **OpenGloves** also comes <br> | ||
with a **[UI]** for configuring driver related features. | ||
|
||
##### UI Supported Features | ||
- Force Feedback Testing | ||
- Editable Driver Settings | ||
- Automatic Calibration <br> | ||
*Controller ⟷ Glove* | ||
|
||
--- | ||
|
||
## Contributing | ||
Pull requests are very welcome. For major changes, please open an issue first to discuss what you would like to change. | ||
|
||
## Authors | ||
**Pull requests are very welcome.** | ||
|
||
*For major changes, please open an* <br> | ||
***[Issue]*** *or contact us first to discuss* <br> | ||
*what you would like to change.* | ||
|
||
--- | ||
|
||
## Credits | ||
|
||
| Author | Discord | | ||
|:------:|:-------:| | ||
| **[Danwillm]** | `danwillm#8254` | | ||
| **[Lucas VRTech]** | `LucidVR#0001` | | ||
|
||
|
||
<!-----------------------------------------------------------------------------> | ||
|
||
[Steam Badge]: https://img.shields.io/badge/Steam-000000?style=for-the-badge&logo=steam&logoColor=white | ||
[Discord Badge]: https://img.shields.io/badge/Discord-7289DA?style=for-the-badge&logo=discord&logoColor=white | ||
|
||
[Discord]: https://discord.gg/lucidvr | ||
[Steam]: https://store.steampowered.com/app/1574050/OpenGloves | ||
|
||
[Installation]: docs/Installation.md | ||
[Limitations]: docs/Limitations.md | ||
[Compatibility]: docs/Compatibility.md | ||
|
||
[UI]: https://github.com/lucidVR/opengloves-ui | ||
[Open Interface]: https://github.com/LucidVR/opengloves-driver/wiki/Driver-Input | ||
|
||
* Danwillm (`danwillm#8254`) | ||
* Lucas VRTech (`LucidVR#0001`) | ||
[Issue]: https://github.com/LucidVR/opengloves-driver/issues | ||
|
||
## Discord | ||
https://discord.gg/lucidvr | ||
[Danwillm]: https://github.com/danwillm | ||
[Lucas VRTech]: https://github.com/lucas-vrtech |
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
|
||
# Compatibility | ||
|
||
<br> | ||
|
||
## Officially Hardware | ||
|
||
The following projects are known to be compatible with **OpenGloves**. | ||
|
||
- **[LucidGloves]** <br> | ||
*by [Lucas VRTech]* | ||
|
||
- **[Fngrs]** <br> | ||
*by [danwillm]* | ||
|
||
<br> | ||
|
||
**Made your own hardware? Let us know!** | ||
|
||
--- | ||
|
||
## Your Hardware | ||
|
||
While **OpenGloves** is capable of handling <br> | ||
inputs from a variety of VR controllers, <br> | ||
it is primarily designed for VR Gloves. | ||
|
||
<br> | ||
|
||
#### Custom Hardware | ||
|
||
To make your own hardware compatible with **OpenGloves**, <br> | ||
please refer to the **[Driver Input]** page, which provides relevant <br> | ||
information like `Encoding Schemes` & `Communication Methods`. | ||
|
||
<br> | ||
|
||
#### LucidVR | ||
|
||
This is our own **[Firmware]** that is compatible with <br> | ||
**OpenGloves** and runs on `Arduino` / `ESP32` devices. | ||
|
||
--- | ||
|
||
## Games | ||
|
||
**OpenGloves** is strictly compatible with **OpenVR** compatible games. | ||
|
||
<br> | ||
|
||
##### Finger Curling | ||
|
||
Is supported in games that work with the **Index** controllers. | ||
|
||
<br> | ||
|
||
##### Force Feedback | ||
|
||
Unfortunately, game compatibility <br> | ||
with this feature is **[More Limited][Game Compatibility]**. | ||
|
||
If you'd like to make your **Game** / **Mod** compatible <br> | ||
with `Force Feedback`, please refer to the **[Wiki][Integration]**. | ||
|
||
|
||
|
||
<!-----------------------------------------------------------------------------> | ||
|
||
[LucidGloves]: https://github.com/LucidVR/lucidgloves | ||
[Lucas VRTech]: https://github.com/lucas-vrtech | ||
|
||
[Fngrs]: https://github.com/danwillm/Fngrs/ | ||
[danwillm]: https://github.com/danwillm | ||
|
||
[Driver Input]: https://github.com/LucidVR/opengloves-driver/wiki/Driver-Input | ||
|
||
[Firmware]: https://github.com/LucidVR/lucidgloves/tree/main/firmware/lucidgloves-firmware | ||
|
||
[Game Compatibility]: https://github.com/LucidVR/opengloves-driver/wiki/Game-Compatibility-List | ||
|
||
[Integration]: https://github.com/LucidVR/opengloves-driver/wiki/Integrating-Force-Feedback |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
|
||
# Installation & Usage | ||
|
||
It is strongly recommended to use the **[Steam]** version <br> | ||
to receive `Automatic Updates` as well as a `Builtin UI`. | ||
|
||
[![Steam Preview]][Steam] | ||
|
||
--- | ||
|
||
## GitHub | ||
|
||
While ***not recommended***, it is possible to install **OpenGloves** <br> | ||
manually by downloading a **[Release]** and **[Building]** it yourself. | ||
|
||
|
||
<!-----------------------------------------------------------------------------> | ||
|
||
[Steam]: https://store.steampowered.com/app/1574050/OpenGloves | ||
[Steam Preview]: https://cdn.discordapp.com/attachments/790676300552994826/845412304219537439/openglovessteam.png | ||
|
||
[Release]: https://github.com/LucidVR/opengloves-driver/releases | ||
[Building]: Building.md |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
|
||
# Limitations | ||
|
||
<br> | ||
|
||
#### Missing Custom Controller Support | ||
|
||
Many VR titles do not support finger tracking from **custom** <br> | ||
controllers, requiring the need to emulate controller types. | ||
|
||
|
||
We emulate the index controller to achieve this <br> | ||
compatibility, which means that we are limited <br> | ||
to the inputs that the index controller exposes. <br> | ||
|
||
It is possible to emulate an index controller while <br> | ||
providing your own input profiles and bindings, <br> | ||
but we have chosen not to include that by default <br> | ||
in the driver, as to preserve compatibility with <br> | ||
default index controller bindings. | ||
|
||
##### Custom Implementation | ||
|
||
If you want to implement your own device and use the utilities <br> | ||
that **OpenGloves** provides, such as `Bone Calculations` and <br> | ||
`Communication`, you will have to implement a custom driver. | ||
|
||
To do this, you have to create your own class derived from [`DeviceDriver`], that <br> implement `StartingDevice`, `SetupProps`, `HandleInput` & `StoppingDevice`. | ||
|
||
**➔** An example of a fully custom controller is **[LucidGloveDriver]** <br> | ||
*which you are free to adapt to your needs.* | ||
|
||
<br> | ||
|
||
#### Dynamic Inputs | ||
|
||
Due to how **OpenVR** works, inputs cannot be set ***dynamically***. | ||
|
||
Our inputs for `Index Controller Emulated Devices` are ***fixed*** <br> | ||
to that of the index controller, and cannot have custom inputs. | ||
|
||
**➔** *However, you can define your own inputs in a* <br> | ||
*custom device with a different input profile.* | ||
|
||
|
||
<!-----------------------------------------------------------------------------> | ||
|
||
[`DeviceDriver`]: ../src/DeviceDriver/DeviceDriver.cpp | ||
|
||
[LucidGloveDriver]: https://github.com/LucidVR/opengloves-driver/blob/develop/src/DeviceDriver/LucidGloveDriver.cpp |
Oops, something went wrong.