Pressure levels, pressure curves, and human performance

Discussion in 'Hardware' started by ATIVQ, May 7, 2018.

Thread Status:
Not open for further replies.
  1. ATIVQ

    ATIVQ V⅁O⅄ Senior Member

    Messages:
    1,036
    Likes Received:
    586
    Trophy Points:
    131
    Hi, we've been talking about pens' pressure levels and pressure curves and how many levels are enough, and a while ago I decided to test this stuff empirically, though with a sample size of one, myself.

    What the pen suppliers say:
    • Decades-old Wacom pens advertised having 10 gram-force minimum and 300 gf maximum. Later pens advertised 3 gf and eventually 1 gf. Pressure levels started off at 256, hovered many years at 1024, and in recent years ballooned up to 8192.
    • N-trig, and subsequently Microsoft, advertised 10 gf minimum and 300 gf maximum. Advertised 256 then 512 levels of pressure, and recently 4096.
    My methodology:
    • I used a 500 gram scale that's supposedly accurate to 10 milligram. It's a cheap Chinese scale with no certification and I do not own any certified 10 milligram (or even 100 mg or 1 g) weights, so I cannot verify this. However, testing various non-certified weights from 10 to 500 g, they were all accurate to within 20 mg, which should be good enough for my purposes (see results).
    • I rested my arm on a desk, held the pen in my hand naturally (dynamic tripod), and placed the tip of the pen as lightly as possible on the scale, then attempted to increment the force as carefully as I could. I did this with two Wacom EMR pens (Bamboo Feel and Fujitsu toothpick pen) and a Wacom AES pen (Bamboo Smart), but results were largely the same across all pens.
    Results:
    • Attempting the lightest touch without moving, the reading fluctuated from 1 to 4 grams
    • When moving the pen tip along the scale with the lightest touch, the reading fluctuated from 2 to 11 grams
    • Lightly writing my name on the scale, the reading fluctuated between 20 and 60 gf, with 30 gf being the most frequent reading
    • Writing normally was about 60 gf
    • Pushing 400+ gf was uncomfortable.
    • LEVELS: I could, barely, control the reading in 5 gf increments, but even though I managed to "center" around a desired reading (15, 20, 25... 195, 200, 205... 295, 300) there was a lot of fluctuation of about ±10 gf. When moving the pen, there was even more fluctuation. There was no range where I could discernibly exert more accurate control, so my personal pressure curve is completely linear in this range.
    Conclusion:
    • 256 pressure levels (actually force levels) between 1 and 300 gram-force is fine, as long as you put most of the levels on the lower range of the pressure curve for those who are able to control their hand in 1 gf increments.
    • I don't think it's humanly possible to control 1-300 gf in 8192 increments (~35 mgf increments!) as I had trouble even attempting 5 gf increments. Current pressure level numbers are overkill of two orders of magnitude.
    TL;DR: having over 1000 levels spread between 1 and 300 gram-force is overkill, having 8000 pressure levels is overkill by orders of magnitude. It's all marketing hype.
     
    thatcomicsguy, stoneseeker and Marty like this.
  2. YVerloc

    YVerloc Scribbler - Standard Member

    Messages:
    328
    Likes Received:
    278
    Trophy Points:
    76
    Thanks!

    It occurs to me that although 8k pressure levels is overkill, it might be useful in the low end. If 10gf is read by your software as the 'zero' for brush width or brush opacity, then the number of pressure samples and pressure levels above that will determine how smoothly the brush stroke tapers or fades, yes?

    If the pressure range varies from 10 to 410 gf, and if we wanted 10 pressure increments in the 10-20gf range that would mean at least 4k pressure levels if the load sensor has a 'linear' response. 10 pressure increments between 'the smallest force I can apply' and 'zero' wouldn't seem like heinous overkill, I don't think.

    Of course the rate at which you poll the sensor data is important too. Siddarth is always banging on about 120hz pressure sampling, and it seems to me he's right about it potentially making a big impact. I don't know how to quantify how 'fast' I lift the pen. But if we say for the sake of argument that it's about .1 sec to lift the pen, and if it seems reasonable that we want the pressure to step down through ten pressure levels on the way to zero, it also seems reasonable that we'd also want to poll the sensor data at least ten times during that interval. 120hz would be twelve pressure samples, and that seems reasonable to me.

    Of course, this all assumes that we want the brush dynamics to be 'smooth' WRT the /raw/ input of my hand, which as you note above has about a +/- 10gf error. We could obviate the need for high resolution pressure intervals and high frequency pressure sampling if we could do a good job of filtering out pressure noise in the 10gf range, and smoothing out the pressure sampling data in a carefully chosen time range. This time range would be the minimal time interval necessary to distinguish between 'lifting the pen' and a tapered stroke end with the shortest possible taper.
     
  3. ATIVQ

    ATIVQ V⅁O⅄ Senior Member

    Messages:
    1,036
    Likes Received:
    586
    Trophy Points:
    131
    The range is from 10-300 gram-force on Microsoft pens, 1-300 on Wacom Pro pens, 3-300 on Wacom Bamboo pens. Even if we're being generous and say a person can control their pen at 1 gram force increments, 512 levels is more than enough.

    The difference between 240 Hz and 120 Hz and 60 Hz is enormous. Think how many letters you can write in a second - let's say four. Let's say you write the word "four" in one second. That's at least six curves. At 60 Hz, each curve will have at most ten points (less because of the space between each curve), and the letter "o" will look like a polygon instead of a circle. Smoothing can fix this, but that means the stroke is less accurate and less faithful to the actual motion of the pen.

    Nobody uses 60Hz for polling because it's just not enough. Even decades ago, Wacom used 200Hz for their high-end digitizers and 100Hz for their low-end digitizers. The point beyond human performance is probably in that order of magnitude, so it still makes sense to increase the polling to 240 Hz or even 480 Hz. On the other hand, it makes no sense to increase the pressure levels beyond 1024, unless people have sub-gram control of their hand muscles.
     
    thatcomicsguy likes this.
  4. YVerloc

    YVerloc Scribbler - Standard Member

    Messages:
    328
    Likes Received:
    278
    Trophy Points:
    76
    Let me try to restate my point more concisely: agreed, you can’t control the force your hand exerts more precisely than +/- 10 gf. Granted, but it’s beside the point. As you change the pressure of your brushstroke from pressure A to pressure B, you still want the load sensor to output a bunch of pressure increments on the way to pressure B. It’s not about how fine the control of your hand is. An analogy: since we can’t hear audio frequencies higher than, say, 6kHz, does that mean that we should encode digital audio at 6kHz? Of course not. We want the encoded waveform to capture the shape of the wave between peak and trough. Likewise, we (well I, anyhow) want the pen to capture the shape of the pressure transition between my own 10gf-increment inputs.
     
    Marty, WillAdams and Azzart like this.
  5. ATIVQ

    ATIVQ V⅁O⅄ Senior Member

    Messages:
    1,036
    Likes Received:
    586
    Trophy Points:
    131
    Coordinates are much more sensitive to sampling rate. Let's say a person draws a curve from one side of a 4K display to the other in one second. That's over 3840 pixels in length, much more if the line is very curved! To get a pixel-accurate sampling of a curve drawn across 4000 pixels in one second you'd need at least 4000 Hz sampling assuming a constant speed! And with subpixel aliasing, that rate can multiply by 4, 16, or more! Of course people don't usually draw that fast, and when they do they don't need one-sixteenth-pixel-accurate coordinates. So it's overkill to set the sampling rate in the order of magnitude of 64 kHz, even if that's what it takes for a subpixel-accurate representation of a 1-second stroke across an entire 4K display. Of course, usually, when you want subpixel accuracy, you draw very slowly. Gaming mice, which are meant for very fast response, usually poll at 1 kHz. That would allow for an accurate curve at a thousand pixels per second, which is not unreasonable.

    Pressure changes much slower than coordinates. Across that hypothetical 4000-pixel stroke, it could change very little. The fastest I can do, wildly flailing my hand to get the pressure from lightest to heaviest to lightest, is six per second (VVVVVV). In 1 gram increments, that's roughly six times two times 300, or 3600. Less changes in pressure than in coordinates, even without subpixel accuracy.

    Now, we can go crazy and do sub-gram accuracy, but let's not... Manipulating the pressure very fast is not a reasonable use-case for writing, drawing, painting, or anything I can think of except stabbing the computer in anger.
     
    thatcomicsguy and Marty like this.
  6. Marty

    Marty Pen Pro - Senior Member Senior Member

    Messages:
    3,382
    Likes Received:
    3,274
    Trophy Points:
    231
    To expand on this point, lets use the term "dynamic" vs "static" pressure.

    Hand control of dynamic pressure is much finer and more nuanced than static pressure which is probably only accurate to +/- 5g. That is because the our muscles tuned to make strokes, swishes, and curves. (Many of the best artists might even have a slight jitter, if you tell them to hold their pen absolutely still!)

    The other factor is the pressure "transfer function" introduced by the tool itself. The hairs of a paintbrush have a unique dampening pressure response curve f(dP/dt), that can only be modeled accurately by a high resolution in both pressure levels (dP) and sampling (dt).

    Currently, a lot of this modeling is done in drivers/software based on interpolation, which is why 256 pressure levels is all "you need", depending on your software setup.

    But in the future, I believe an on-board chip for pressure modeling will be key to providing a realistic brush experience. And at that point, I could see pressure sensors precision above 8096 levels and 1KHz sampling frequency yielding improvements to the experience.
     
    ATIVQ, YVerloc and WillAdams like this.
Thread Status:
Not open for further replies.

Share This Page