hid.spacemouse

HID based abstraction layer for 3DConnexion space mice (no need for 3DXWare bloatware) in node.js

Usage no npm install needed!

<script type="module">
  import hidSpacemouse from 'https://cdn.skypack.dev/hid.spacemouse';
</script>

README

hid.spacemouse

HID based abstraction layer for 3DConnexion space mice (no need for 3DXWare bloatware) in node.js

This package creates a spacemouse manager with accumulated data and an array of connected spacemice. Usage:

sm = require("./index.js");
sm.spaceMice.onData = mouse => {
    console.clear();
    console.log(JSON.stringify(mouse.mice[0], null, 2));
};

spaceMice class looks like this:

{
    translate: {x, y, z}, // x right, y backwards, z down [-1..1]
    rotate: {x, y, z}, // x pitch ccv, y roll ccv, z yaw cw [-1..1]
    buttons: [], // array of 48 possible buttons
    devices: [], // HID device info about found spacemice
    mice: [], // array of spaceMouse objects
    onData: function(spacemice) {} // callback function on data received from any device, argument is this object
}

spaceMice manages an array of spaceMouse devices which looks like:

{
    translate: {x, y, z}, // x right, y backwards, z down [-1..1]
    rotate: {x, y, z}, // x pitch ccv, y roll ccv, z yaw cw [-1..1]
    buttons: [], // array of 48 possible buttons
    onData: function(spacemouse) {} // callback function on data received from this device, argument is this object
}

that's it.