I was in the process of designing and research an API for 3D input devices, when I came across JInput and thought maybe working with this project would be energy better spent. For me a 3D input device is anything that offers more detailed input than the X/Y data provided by a mouse. The type of input I imagine are:
- x/y/z acceleration
- x/y/z positioning
- pitch/roll/yaw
Of course not all devices will support all input, so means of knowing what device class, along with the type of input it can provided would have to be taken into consideration. In some cases the characteristics of the device can change depending on the state of the device.
Some 3D input devices I am thinking of include:
- 3dconnexion’s space mouse: http://www.3dconnexion.com/3dmouse/spaceexplorer.php
- Wii Remote & the associated Nunchuk: http://wii.nintendo.com/controller.jsp
- Some others: http://www.vrealities.com/control.html
In a number of cases the implementations for a specific device would probably have to reply on JNI, given that exact communication protocols aren’t always available, as in the case of 3dconnexion, but in other cases there are Java API available, as in the case of WiiremoteJ.
Would extending Jinput for these type of devices be of interest to anyone?