Skip to content

Commit d98b808

Browse files
authored
Release v0.5
v0.5 Release
2 parents f46e8d4 + e61c145 commit d98b808

26 files changed

+1069
-557
lines changed

CMakeLists.txt

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,19 @@ elseif(APPLE)
2424
set(PLATFORM_NAME "osx")
2525
endif()
2626

27+
execute_process(
28+
COMMAND git rev-parse --abbrev-ref HEAD
29+
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
30+
OUTPUT_VARIABLE GIT_BRANCH
31+
OUTPUT_STRIP_TRAILING_WHITESPACE)
32+
33+
# Get the latest commit hash
34+
execute_process(
35+
COMMAND git rev-parse HEAD
36+
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
37+
OUTPUT_VARIABLE GIT_COMMIT_HASH
38+
OUTPUT_STRIP_TRAILING_WHITESPACE)
39+
2740
find_library(OPENVR_LIB openvr_api HINTS "${CMAKE_CURRENT_SOURCE_DIR}/libraries/openvr/lib/${PLATFORM_NAME}${PROCESSOR_ARCH}/" NO_DEFAULT_PATH )
2841

2942
add_subdirectory("overlay")
@@ -41,6 +54,9 @@ target_include_directories("${OPENGLOVE_PROJECT}" PUBLIC "${OPENVR_INCLUDE_DIR}"
4154
target_include_directories("${OPENGLOVE_PROJECT}" PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include/")
4255
target_link_libraries("${OPENGLOVE_PROJECT}" PUBLIC "${OPENVR_LIB}" setupapi wsock32 ws2_32 bthprops)
4356

57+
target_compile_definitions("${OPENGLOVE_PROJECT}" PRIVATE
58+
"-DGIT_COMMIT_HASH=\"${GIT_COMMIT_HASH}\"")
59+
4460
source_group(TREE "${CMAKE_CURRENT_SOURCE_DIR}/include" PREFIX "Header Files" FILES ${HEADERS})
4561
source_group(TREE "${CMAKE_CURRENT_SOURCE_DIR}/src" PREFIX "Source Files" FILES ${SOURCES})
4662
set_property(TARGET "${OPENGLOVE_PROJECT}" PROPERTY CXX_STANDARD 17)

README.md

Lines changed: 67 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,62 +1,84 @@
1-
# OpenGloves Driver
1+
# OpenGloves Driver[![Steam Badge]][Steam] [![Discord Badge]][Discord]
22

3-
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.
3+
A general purpose **SteamVR** driver with an **[Open Interface]** <br>
4+
for anyone to connect their **DIY** **VR***( Glove )* hardware.
45

5-
## Installation and Usage
6+
---
67

8+
**[Installation] ⸥ ⸢ [Limitations] ⸥ ⸢ [Compatibility]**
79

8-
### Download on Steam:
9-
[![Steam Release](https://cdn.discordapp.com/attachments/790676300552994826/845412304219537439/openglovessteam.png)](https://store.steampowered.com/app/1574050/OpenGloves)
10-
* We strongly recommend downloading the driver from Steam, to recieve automatic updates and UI settings.
10+
---
1111

12-
*Or download the latest on GitHub:*
13-
* https://github.com/LucidVR/opengloves-driver/releases
12+
## Features
1413

15-
**Follow the wiki guide for configuring the driver**
16-
* https://github.com/LucidVR/opengloves-driver/wiki/Configuring-the-Driver
17-
* The driver will not work correctly unless you configure it properly.
14+
- **Haptic Force Feedback**
1815

19-
**Problems?**
20-
* Check [Troubleshooting](https://github.com/LucidVR/opengloves-driver/wiki/Troubleshooting)
21-
* Didn't help? Contact us on the [Community Discord Server](https://discord.gg/lucidvr)
22-
## Building
23-
If you want to use the driver as-is, refer to [Installation and Usage](#Installation-and-Usage).
24-
If you are planning on modifying source files, refer to [BUILDING.md](https://github.com/LucidVR/opengloves-driver/blob/develop/BUILDING.md).
16+
- **Full Finger Tracking** <br>
17+
*‹ Beta › Splay Support* <br>
18+
*‹ Beta › Individual Joint Support*
2519

26-
## Compatibility
27-
### Compatible Hardware
28-
* [LucidGloves](https://github.com/LucidVR/lucidgloves) - Lucas VRTech
29-
* [Fngrs](https://github.com/danwillm/Fngrs/) - danwillm
30-
* Have your own hardware you want to feature here? Let us know!
20+
- **Tracker / Controller Positioning** <br>
21+
*Automatic relative calibration* <br>
22+
*Controller ⟷ Glove*
3123

32-
### Compatible Games
33-
* Refer to [Game Compatibility List](https://github.com/LucidVR/opengloves-driver/wiki/Game-Compatibility-List)
34-
* 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.
24+
- **Button / Joystick Inputs** <br>
25+
*➜ Trigger | A | B* <br>
26+
*➜ Joystick | X | Y | Click*
3527

36-
### Current features included in the driver
37-
* Finger flexion tracking
38-
* Force feedback haptics
39-
* Positioning from controllers + trackers
40-
* Automatic Calibration
41-
* Button/Joystick inputs
42-
* A/B/Menu buttons, Joystick X/Y/Click
43-
* Communication Protocols:
44-
* Serial USB
45-
* Serial over Bluetooth
28+
- **Multiple Communication Protocols** <br>
29+
*- Bluetooth Serial* <br>
30+
*- Named Pipes* <br>
31+
*- Serial USB*
4632

47-
### Planned features
48-
* BLE Communication
49-
* Finger splay tracking
50-
* Vibration haptics
33+
<br>
5134

35+
### Steam UI
36+
37+
The **[Steam]** version of **OpenGloves** also comes <br>
38+
with a **[UI]** for configuring driver related features.
39+
40+
##### UI Supported Features
41+
- Force Feedback Testing
42+
- Editable Driver Settings
43+
- Automatic Calibration <br>
44+
*Controller ⟷ Glove*
45+
46+
---
5247

5348
## Contributing
54-
Pull requests are very welcome. For major changes, please open an issue first to discuss what you would like to change.
5549

56-
## Authors
50+
**Pull requests are very welcome.**
51+
52+
*For major changes, please open an* <br>
53+
***[Issue]*** *or contact us first to discuss* <br>
54+
*what you would like to change.*
55+
56+
---
57+
58+
## Credits
59+
60+
| Author | Discord |
61+
|:------:|:-------:|
62+
| **[Danwillm]** | `danwillm#8254` |
63+
| **[Lucas VRTech]** | `LucidVR#0001` |
64+
65+
66+
<!----------------------------------------------------------------------------->
67+
68+
[Steam Badge]: https://img.shields.io/badge/Steam-000000?style=for-the-badge&logo=steam&logoColor=white
69+
[Discord Badge]: https://img.shields.io/badge/Discord-7289DA?style=for-the-badge&logo=discord&logoColor=white
70+
71+
[Discord]: https://discord.gg/lucidvr
72+
[Steam]: https://store.steampowered.com/app/1574050/OpenGloves
73+
74+
[Installation]: docs/Installation.md
75+
[Limitations]: docs/Limitations.md
76+
[Compatibility]: docs/Compatibility.md
77+
78+
[UI]: https://github.com/lucidVR/opengloves-ui
79+
[Open Interface]: https://github.com/LucidVR/opengloves-driver/wiki/Driver-Input
5780

58-
* Danwillm (`danwillm#8254`)
59-
* Lucas VRTech (`LucidVR#0001`)
81+
[Issue]: https://github.com/LucidVR/opengloves-driver/issues
6082

61-
## Discord
62-
https://discord.gg/lucidvr
83+
[Danwillm]: https://github.com/danwillm
84+
[Lucas VRTech]: https://github.com/lucas-vrtech
File renamed without changes.

docs/Compatibility.md

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
2+
# Compatibility
3+
4+
<br>
5+
6+
## Officially Hardware
7+
8+
The following projects are known to be compatible with **OpenGloves**.
9+
10+
- **[LucidGloves]** <br>
11+
*by [Lucas VRTech]*
12+
13+
- **[Fngrs]** <br>
14+
*by [danwillm]*
15+
16+
<br>
17+
18+
**Made your own hardware? Let us know!**
19+
20+
---
21+
22+
## Your Hardware
23+
24+
While **OpenGloves** is capable of handling <br>
25+
inputs from a variety of VR controllers, <br>
26+
it is primarily designed for VR Gloves.
27+
28+
<br>
29+
30+
#### Custom Hardware
31+
32+
To make your own hardware compatible with **OpenGloves**, <br>
33+
please refer to the **[Driver Input]** page, which provides relevant <br>
34+
information like `Encoding Schemes` & `Communication Methods`.
35+
36+
<br>
37+
38+
#### LucidVR
39+
40+
This is our own **[Firmware]** that is compatible with <br>
41+
**OpenGloves** and runs on `Arduino` / `ESP32` devices.
42+
43+
---
44+
45+
## Games
46+
47+
**OpenGloves** is strictly compatible with **OpenVR** compatible games.
48+
49+
<br>
50+
51+
##### Finger Curling
52+
53+
Is supported in games that work with the **Index** controllers.
54+
55+
<br>
56+
57+
##### Force Feedback
58+
59+
Unfortunately, game compatibility <br>
60+
with this feature is **[More Limited][Game Compatibility]**.
61+
62+
If you'd like to make your **Game** / **Mod** compatible <br>
63+
with `Force Feedback`, please refer to the **[Wiki][Integration]**.
64+
65+
66+
67+
<!----------------------------------------------------------------------------->
68+
69+
[LucidGloves]: https://github.com/LucidVR/lucidgloves
70+
[Lucas VRTech]: https://github.com/lucas-vrtech
71+
72+
[Fngrs]: https://github.com/danwillm/Fngrs/
73+
[danwillm]: https://github.com/danwillm
74+
75+
[Driver Input]: https://github.com/LucidVR/opengloves-driver/wiki/Driver-Input
76+
77+
[Firmware]: https://github.com/LucidVR/lucidgloves/tree/main/firmware/lucidgloves-firmware
78+
79+
[Game Compatibility]: https://github.com/LucidVR/opengloves-driver/wiki/Game-Compatibility-List
80+
81+
[Integration]: https://github.com/LucidVR/opengloves-driver/wiki/Integrating-Force-Feedback

docs/Installation.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
2+
# Installation & Usage
3+
4+
It is strongly recommended to use the **[Steam]** version <br>
5+
to receive `Automatic Updates` as well as a `Builtin UI`.
6+
7+
[![Steam Preview]][Steam]
8+
9+
---
10+
11+
## GitHub
12+
13+
While ***not recommended***, it is possible to install **OpenGloves** <br>
14+
manually by downloading a **[Release]** and **[Building]** it yourself.
15+
16+
17+
<!----------------------------------------------------------------------------->
18+
19+
[Steam]: https://store.steampowered.com/app/1574050/OpenGloves
20+
[Steam Preview]: https://cdn.discordapp.com/attachments/790676300552994826/845412304219537439/openglovessteam.png
21+
22+
[Release]: https://github.com/LucidVR/opengloves-driver/releases
23+
[Building]: Building.md

docs/Limitations.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
2+
# Limitations
3+
4+
<br>
5+
6+
#### Missing Custom Controller Support
7+
8+
Many VR titles do not support finger tracking from **custom** <br>
9+
controllers, requiring the need to emulate controller types.
10+
11+
12+
We emulate the index controller to achieve this <br>
13+
compatibility, which means that we are limited <br>
14+
to the inputs that the index controller exposes. <br>
15+
16+
It is possible to emulate an index controller while <br>
17+
providing your own input profiles and bindings, <br>
18+
but we have chosen not to include that by default <br>
19+
in the driver, as to preserve compatibility with <br>
20+
default index controller bindings.
21+
22+
##### Custom Implementation
23+
24+
If you want to implement your own device and use the utilities <br>
25+
that **OpenGloves** provides, such as `Bone Calculations` and <br>
26+
`Communication`, you will have to implement a custom driver.
27+
28+
To do this, you have to create your own class derived from [`DeviceDriver`], that <br> implement `StartingDevice`, `SetupProps`, `HandleInput` & `StoppingDevice`.
29+
30+
****  An example of a fully custom controller is **[LucidGloveDriver]** <br>
31+
     *which you are free to adapt to your needs.*
32+
33+
<br>
34+
35+
#### Dynamic Inputs
36+
37+
Due to how **OpenVR** works, inputs cannot be set ***dynamically***.
38+
39+
Our inputs for `Index Controller Emulated Devices` are ***fixed*** <br>
40+
to that of the index controller, and cannot have custom inputs.
41+
42+
*****However, you can define your own inputs in a* <br>
43+
     *custom device with a different input profile.*
44+
45+
46+
<!----------------------------------------------------------------------------->
47+
48+
[`DeviceDriver`]: ../src/DeviceDriver/DeviceDriver.cpp
49+
50+
[LucidGloveDriver]: https://github.com/LucidVR/opengloves-driver/blob/develop/src/DeviceDriver/LucidGloveDriver.cpp

0 commit comments

Comments
 (0)