fmeringdal / nettu-meet

Open source video conferencing system for tutors.
GNU Affero General Public License v3.0
2.28k stars 286 forks source link

Pointer pressure support in drawing #11

Open Krastanov opened 3 years ago

Krastanov commented 3 years ago

I am prompted to make this issue (feature request) as a follow up on a comment made on the HN annoucement

I currently use a wacom tablet when teaching. Whiteboards that support pressure sensitivity (xournal++) provide much better experience and quality of handwriting than those that support only pressed/not pressed state (zoom, google jamboard).

It seems that if browser/hardware support is not a consideration then pressure.js is all one needs for this functionality. However, both in firefox and chrome there are missing implementations that make this useless for standard desktop drawing tablets like wacom (but it works great with less standard hardware like the apple pen). Here for instance is the firefox bug report describing how pressure is generally fixed to 0.5 instead of the actual value reported by the tablet. Here is the meta bug listing all pen input issues. Lastly, here is a test page where you can double check what pressure is reported in your browser.

So, I guess my question after all of this is: is there a timeline for when I will be able to use a wacom tablet with firefox (or chrome) in a pressure-sensitive nettu-meet?

Krastanov commented 3 years ago

P.S. Either way, this is a fantastic piece of software and I am thankful you have created it and open-sourced it.

fmeringdal commented 3 years ago

Thanks for the detailed description on existing libraries / issues. This is without a doubt the most important feature request for Nettu Meet. I will have to do some research on this and get back to your within 1-2 days for a more detailed roadmap. But if I were to guess this should be implemented within 1 or 2 weeks if some of the existing pressure libraries out there actually works (which I am sure some of them do).

miroslavpejic85 commented 3 years ago

Interesting! 👀

fmeringdal commented 3 years ago

Hi @Krastanov ,

Initially I was thinking that it was not possible to use the Nettu Meet whiteboard with a wacom tablet, but it seems like this is working and that the only problem is that it does not support pressure? Can you confirm that you are able to make drawings with the tablet?

Also regarding the pressure sensitivity support, I would really like to hear more about your the use cases for having a pressure enabled whiteboard as I am not a tablet user yet (going to buy one very soon). Like is it just the thickness of the line when drawing, or are there other use cases as well?

Thanks!

Krastanov commented 3 years ago

Yes, you are right! Sorry for the confusion. Later today I will attach pictures of what I meant when I said handwriting without pressure sensitivity is worse.

basically "mouse << tablet < tablet with pressure sensitivity"

Krastanov commented 3 years ago

It was not later today, but here are the examples:

This is xournal++ which has very basic pressure sensitivity:

The ends of strokes when writing letters are thinner, and by varying the pressure you can make a shape with a thick border and shade it with lighter hachure. image image

Google jamboard and Zoom try to fake some of this with smoothing and to be fair their are pretty ok, but any variation in thickness here is from some RNG that has little to do with actual pressure. Varying thickness of writing is just not a thing here. image image

For a single line of text this does not matter much. For a one-hour long lecture with a lot of circling and underlining and shading of graphs, it becomes very noticeable

Krastanov commented 3 years ago

I understand that initially there was a misunderstanding of what this feature request was about. Feel free to close this as a low priority, especially given the amount of browser bugs reported above.

fmeringdal commented 3 years ago

Thanks for taking the time to explain this. This is not going to have such a high priority because of the lack of browser support, but I will leave it open so that hopefully it can be solved in the not too distant future :)