A TypeScript WebHID-based API for communicating with FFBeast force feedback wheel controllers directly from the browser.
This library is a TypeScript rewrite of the original C/C++ API, adapted to use the WebHID API for browser-based applications. The original C/C++ source code is available in the reference_cpp directory for reference.
Note: This API includes additional helper methods and properties not present in the original C/C++ implementation, such as
readAllSettings(),positionDegrees,torqueNormalized, and more for convenience.
Note: Supported in all modern Chromium-based browsers (e.g., Chrome, Edge, Opera, Brave, etc).
| Browser | Supported |
|---|---|
| Chromium-based | ✅ |
| Firefox | ❌ |
| Safari | ❌ |
npm i @shubham0x13/ffbeast-wheel-webhid-api
import { WheelApi } from "@shubham0x13/ffbeast-wheel-webhid-api";
const wheel = new WheelApi();
wheel.on("stateReceived", (state) => {
console.log("Position:", state.positionDegrees);
console.log("Torque:", state.torqueNormalized);
});
wheel.on("deviceConnected", (device) => {
console.log("Connected to:", device.productName);
});
// Connect to the wheel (opens browser device picker)
await wheel.connect();
// Cleanup when done
await wheel.disconnect();
wheel.destroy();
This project is licensed under the MIT License