Speed sensor in brush settings doesn't seem to work correctly?

I’m currently drawing with my finger on a tablet, and I need a basic brush whose brush size depends on the speed at which you move your brush: slow movements means small size, and moving the brush faster makes the brush bigger.

So I go to brush settings > size > speed, and have the checkboxes enabled, and curves look fine.

The problem is that half the time, some of my strokes start off big (at 100% brush size) at the beginning and some milliseconds later it goes to small where it should start out as. The other half of the time it works correctly, starting small as indicated by my curve.

Here is a pic of my test strokes (stroke direction is downward), all made at the same speed.

As you can see, they are inconsistent, despite the fact that my speed has remained consistent. No matter how I manipulate my curve, for some reason it has a tendency to randomly start a stroke at 100% size before correcting itself milliseconds later.

Krita is the only app that treats my size-by-speed brush strokes this way, and I have no idea why. Help?

Edit: Recorded video to better illustrate my point. Included another app’s speed sensor for comparison:

https://youtu.be/NuftXt1ibEU

https://youtu.be/NuftXt1ibEU

Here are some more strokes in a downward direction. Note how some of them start super big before going small.

Rightward direction:

It’s difficult to precisely control the speed of a stroke, especially at the beginning of the stroke. Having said that, you do have previous experience of size by speed control of brush stokes.

Something I’ve noticed, but I haven’t fully checked, is that the speed seems to be in pixels per second. This means that you can’t get high speeds unless you have a large image size. The consequence that I’ve seen is that an A4 300ppi image needs a very fast movement across the canvas to reach the ‘fast’ end of the graph.

You may want to experiment with that and try a bigger image size than you’re already using.

I dont think the canvas size really matters. Whether 2k, 4k, 8k. It’s not about the size, it’s about the INCONSISTENCY of each stroke and how strokes begin so big. I recorded a video to better illustrate my point in the below link. Added a demonstration of Infinite painter at the beginning for comparison, followed by Krita and the inconsistent sizes I get:

https://youtu.be/NuftXt1ibEU
https://youtu.be/NuftXt1ibEU

I’ve gone back to this to have another look.

I was opposite-wrong about the canvas size. The internal speed calculation seems to be some kind of inverse pixels per second so that I can get higher speed values on a smaller canvas. This is a definite effect and I think it’s wrong and I’ll put a formal bug report in about it, eventually.

The startup blob that you’re seeing is very strange and should not happen of course.

Here is a 512 x512 canvas with a size controlled by speed brush preset with the straight line transfer curve from botton left to top right.
Red lines are using the stylus on the drawing tablet and blue lines are using my finger on the drawing tablet (which I’m not at all good at):


I’ve done quite a few tests with various canvas sizes and I never had a startup blob with the stylus.
As you can see from the image, the first finger drawn line had some kind of startup blob and that did happen in other tests but rarely.

All krita can do is work with the sequence of position coordinates that it gets from the screen/tablet and if the finger sensing is affected by which part of a fairly fat finger (much fatter that a stylus) is actually touching the screen/tablet then that could lead to a startup transient.

It may be that the other application you use doesn’t have this problem because it performs intial transient filtering or even continuous transient filtering internally.

However, it does look like your screen tends to give startup transients whereas my drawing tablet does not except for the occasional one.

Is that an iPad?

That’s an Android build on a Galaxy Tab S6, but the same thing happens on Windows on my Surface Pro.

I also noticed that using the same brush settings, this issue only occurs when using your finger. It works as I want it to with a mouse.

It is probably tied to the rate of events then… like, a mouse has a very little amount of events sending.

Here’s a video of the same speed brush being used, both by mouse and finger. Mouse is bottom row, finger is top two rows. Drawing with finger definitely generates different results. Finger drawing starts out much thicker than by mouse. I feel tempted to call this a bug…