Buttplug is a framework for hooking up hardware to interfaces, where hardware usually means sex toys, but could honestly be just about anything. It's basically a userland HID manager for things that may not specifically be HID.
In more concrete terms, think of Buttplug as something like osculator or VRPN, but for sex toys. Instead of wiimotes and control surfaces, we interface with vibrators, electrostim equipment, fucking machines, and other hardware that can communicate with computers.
The core of buttplug works as a router. It is an application that connects to driver libraries, to register and communicate with different hardware. Clients can then connect over different means (network, websockets, etc...), to interact with the hardware.
Buttplug implementations are available in multiple languages (rust, javascript, etc)/frameworks/platforms. For a full list, see the README in the main buttplug repo.
Buttplug C# Supports the following platforms:
-
Windows 10 - Creators Update (15063)
- BLE Devices: Fleshlight Launch, Lovense Toys, Vorze Interactive, Vibratissimo, Magic Motion
- Other devices: Xbox Gamepads (XInput)
-
Windows 7/8 and 10 pre 15063
- Other devices: Xbox Gamepads (XInput)
Packages and libraries from the buttplug-csharp repo are available via nuget. Simply run a search for "buttplug", or follow this link to the nuget "buttplug" search.
Due to a bug in the Windows 15063 SDK, applications using the BLE APIs need to have an AppId in the registry with a special SDDL access string. For more info on this bug, see this msdn forums post.
For those using the installer, this step should be taken care of by InnoSetup. If you are building the project locally, start regedit, then choose File > Import, and select the app.reg file in this repo. This will set permissions for all executables named Buttplug.exe, ButtplugCLI.exe, and ButtplugGUI.exe
If you find this project helpful, you can support Metafetish projects via Patreon! Every donation helps us afford more hardware to reverse, document, and write code for!
Buttplug is BSD 3-Clause licensed. More information is available in the LICENSE file.