Bndr

RxJS-based composable user-input streams from keyboards, pointers, gamepads, and MIDI

npm version   npm license

Bndr is an RxJSopen in new window-based library for composing user-input streams from devices such as mice🖱️, styluses🖊️, touch inputs👆, keyboards⌨️, MIDIopen in new window controllers🎹, and gamepadsopen in new window🎮. 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 Hashimotoopen in new window.

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 demoopen in new window.

Supported devices

  • 👆 Pointer (mouse, stylus, touch) — all PointerEvent parameters (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}