the pressure resolution is pretty substantial. roughly 400 unique values exposed to developers (+/- depending on Accessiblity settings), with a lot of headroom in private APIs.
so, mapping that to aftertouch works really nicely, and downsampling to MIDI’s 0-127 range leaves some headroom for reasonable detail with a custom velocity curve
velocity is a little trickier, since the sample rate seems to be about one per 15 milliseconds, and the first touch almost always comes in at a force of 0, so you have to live with 30ms of latency to have real “velocity”… i’m kind of fudging it in my app by only using the first two samples to cut the latency down, but it means i have to do some other tweaks to get the output to behave as expected
even without 3d touch, the app works really nicely with Aalto so far in MPE mode. with it, though, and it’s damn near a linnstrument