The goal is to provide an interpolation layer between unique avatars and physical devices so that any digital model works with any hardware, with a design once and use everywhere philosophy.
Vibration Motors (ERM) are currently the targeted feedback method, though more intricate feedback types are planned, like LRA and EMS. But only will be actively developed for if this project can get enough support to fund the development costs.
VRChat (VRC) is the platform this project is targeting as it's core use. When solving the problem of different feedback points on different avatars, this may happen to help with providing support for other games. Support for these games are not guaranteed or a focus of this project.
Currently there are five main repositories:
- Server: Application for handling game to device communication.
- Unity Installer: Easily generate and install haptics integrations to VRC avatars from a config file.
- Firmware: Hosts the source code for the official ESP32 firmware.
- [Firmware Installer] (Under construction): Install compiled binaries to boards and configure firmware settings.
- [Configuration Generator] (under construction): Generate configuration json's for use in the rest of the project.
Currently this is a large project maintained by a single amateur developer with serious medical issues. Please be mindful issues and bugs may take a while to resolve.
- During normal use, the user should never have to interact with anything.
- It is a fault of the developer if the user has to know anything more than a power button.
- User experience over development candy.
- We are always relegated to lower compute priority, since there will always be a compute heavy game running alongside our systems.
- The monthly budget for this project is $0, services and designs which require cloud services should be avoided where at all possible.
- The hardware solutions must be cheap enough that it is readily accessible.
- Dependence on a private source or proprietary service is unacceptable, always.
- YOU are responsible for the quality of your submissions. It is recommended to at least understand what your code means, careless contributions will be ignored.
- Your reputation and integrity as a contributor is put on the line anytime you create a PR in any project, this is no different.
- A contribution suspected of being mostly generated will be required to adhere to stricter following of the rules above.
Because this project spans such a wide breadth of integrations, from game engines to low level firmware and hardware, varying levels of AI assistance has been used when getting the initial versions in place. The intent is that these "result driven" sections be replaced and reduced over time with more thorough implementations.
Server Core : Low
Server UI : High
VRC Installer : Medium
Unity Config Generator : Medium
Goals left for a V1.0-beta:
- Configuration Generator (in unity for now)
- Stabilize Config format
- Finalize Schema (https://github.com/VRC-Haptics/mapping-schema)
- Ensure support for features like VRC Rays
- Provisions for custom scripting; Luau-jit? (https://github.com/mlua-rs/mlua)
- Improve in-game controls; requires beta testing
- Velocity from in-game VRC measurements?
- Verify supported devices.
Distant Goals
- Multi-platform Support; mostly there (server)
- Documentation website.
- Server -> Device Communication Protocols
- VRC -> Server protocols
- config format.
- Full Unity installation Guide
- Custom Design Build Guide.
- Better Custom device FW and hardware support
- Further Integrations with VRC