To build larger abstractions on top of these things, we need looser coupling. I want to draw and erase with Pencil, but use a manual dial to set the pressure because I do very precise architectural drawings. I want to draw with Pencil but use Mighty to make my lines snap to a grid and some other French Curve thing I hacked together with some dials for snapping to curves. I want to use two Pencils at once on two separate iPads and draw together with someone. I want my LeapMotion to understand my hand gestures to rotate data in an Excel pivot table and project it into a graph.
Yes, I want crazy things. But abstractions work to build crazy, unexpected text-oriented programs in Unix. So what are the abstractions we need to build arbitrary crazy programs with UIs and hardware peripherals?
I don't have high hopes for abstractions on pressure-sensitive styli.
There are a number of high-end stylus makers that offer app developers SDK integration with their tools:
https://github.com/Adonit/JotTouchSDK http://www.tenonedesign.com/t1pogomanager.php http://www.hex3.co/pages/developers http://us.wacom.com/en/developerrelations/ios
And many drawing apps have taken advantage of them, such as the professional-level Procreate app, which allows one to use any of the pressure-sensitive styli listed above interchangeably.