Bndr
RxJS-based composable user-input streams from keyboards, pointers, gamepads, and MIDI
Bndr is an RxJS-based library for composing user-input streams from devices such as mice🖱️, styluses🖊️, touch inputs👆, keyboards⌨️, MIDI controllers🎹, and gamepads🎮. It provides device sources as plain RxJS Observables, plus a few input-specific operators and combinators that the standard RxJS library doesn’t cover. Developed and maintained by Baku Hashimoto.
Potential use cases:
- ⚡️ Associating user inputs with arbitrary triggers for VJing
- 🎨 Introducing manual operations in generative art
To get a feel for how it works, please try out this demo.
Supported devices
- 👆 Pointer (mouse, stylus, touch) — all
PointerEventparameters (pressure, tilt, multi-touch) - ⌨️ Keyboard
- 🎹 MIDI — CC and velocity
- 🎮 Gamepad — vendor-specific button names (JoyCon, PS5, Xbox)
How to use
Migrating from 0.x to 1.0 →{.migration-link}