Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Inline Whiteboard #9194

Open
pylang opened this issue Oct 21, 2020 · 19 comments
Open

Inline Whiteboard #9194

pylang opened this issue Oct 21, 2020 · 19 comments
Labels
enhancement tag:Extension Idea Ideas for interesting extensions that live outside of JupyterLab core.

Comments

@pylang
Copy link

pylang commented Oct 21, 2020

Problem

I'm pleased with Jupyter notebooks and the new momentum to make JupyterLab more notebook-like.

Based a prior recommendation and reduced activity on the notebook, I link this issue. It is a feature several people seem excited about. It would be nice to add it here to JupyterLab.

Proposed Solution

In short, add a whiteboard to the notebook.

4c12aeb2-c6e1-11e6-9560-61d176a9c2d4

Additional context

See links above.

@jasongrout
Copy link
Contributor

That is an excellent custom extension idea!

@jasongrout jasongrout added the tag:Extension Idea Ideas for interesting extensions that live outside of JupyterLab core. label Oct 21, 2020
@rukie
Copy link

rukie commented Jan 31, 2021

Looks like ipycanvas could achieve this.
Example using a mouse
https://notebooks.gesis.org/binder/jupyter/user/martinrenou-ipycanvas-451myeai/lab/tree/examples/hand_drawing.ipynb

Developer's twitter video
https://twitter.com/martinRenou/status/1354121784539414529

And since his example used a mouse, not a pen:
https://stackoverflow.com/questions/54003194/how-can-i-access-tablet-pen-data-via-python

@telamonian
Copy link
Member

This also seems like an excellent target for the upcoming RTC work (cough, @SylvainCorlay, cough)

@1kastner
Copy link

1kastner commented Mar 6, 2021

Example using a mouse
https://notebooks.gesis.org/binder/jupyter/user/martinrenou-ipycanvas-451myeai/lab/tree/examples/hand_drawing.ipynb

For me that link did not work. I guess everybody needs to start their own binder instance?

I went to https://github.com/martinRenou/ipycanvas/blob/master/examples/hand_drawing.ipynb and yes, the example is awesome!

@1kastner
Copy link

1kastner commented Mar 6, 2021

@pylang would that ipycanvas hand drawing example suffice your expectations? By having it separately packed, I guess the modularity is even nicer (independent updates etc.) than if it was shipped altogether. Or did I miss one of your requirements?

@pylang
Copy link
Author

pylang commented Mar 6, 2021

@1kastner I appreciate your response. :)

I actually don't remember the details of this request. It's an old request from notebook days. I think I just wanted to scribble in the notebook and retain them. I haven't played with ipycanvas enough to see if that will suffice, though I suspect it might. Having a binder example would be helpful to try it out indeed.

@1kastner
Copy link

1kastner commented Mar 7, 2021

Well, if you go to https://github.com/martinRenou/ipycanvas you find the launch button.

@pylang
Copy link
Author

pylang commented Mar 8, 2021

It's a start. I found it to lag a bit. I'd be more inclined to use Paint and attach the image. It might work with other people.

@fcollonval
Copy link
Member

Hey for information - the recent tool Excalidraw is awesome. The user experience is so much better than any thing I have seen for whiteboard; especially because it is based on the simple principle that we almost always have a keyboard and a mouse - so what's the point to reproduce the way pen & paper works (see author video https://www.youtube.com/watch?v=fix2-SynPGE around 12:45).

@1kastner
Copy link

Hey for information - the recent tool Excalidraw is awesome. The user experience is so much better than any thing I have seen for whiteboard; especially because it is based on the simple principle that we almost always have a keyboard and a mouse - so what's the point to reproduce the way pen & paper works (see author video https://www.youtube.com/watch?v=fix2-SynPGE around 12:45).

Can you tell how that solution can be integrated in a Jupyter Notebook? Cool it's under MIT license and can be self-hosted but I guess there is still a way to go create a Jupyter widget that could properly nest it.

@fcollonval
Copy link
Member

fcollonval commented Apr 25, 2021

Hey @1kastner indeed, excalidraw will require some development. As they have an export format, the best approach would to use it to create a mime type renderer and a Jupyter Widget; like ipydrawio

@jasongrout
Copy link
Contributor

This issue is in the 4.0 planning project. In the JupyterLab dev meeting this morning, we did not find anyone who was willing to do this by the end of the year to make the 4.0 release. If there is someone willing to work on this, please comment here (and please come to the JLab dev meeting and let us know). If no one has volunteered by next week (10 Nov), we'll take it out of the 4.0 planning project. If someone volunteers to do it by the end of the year, we can always put it back on the 4.0 roadmap.

@adpatter
Copy link

adpatter commented Nov 4, 2021

@jasongrout We want to implement this. I'm confident that I can implement this, given some guidance on how we want the finished product to look. However, I am still pretty ignorant about the new RTC stuff. Is there anyone who could help me get up to speed on that?

@fcollonval
Copy link
Member

@adpatter which direction would you like to use? If you are willing to use Excalidraw - I can support you a bit.

@adpatter
Copy link

adpatter commented Nov 4, 2021

@fcollonval I think that would be a reasonable approach. One thought we had on this is that the drawing would need to scale to arbitrary screen sizes. Would a canvas based approach work, given that requirement?

@fcollonval
Copy link
Member

Testing with Excalidraw app, you can move the drawing area like it is limitless. So I assume it would handle it properly.

@srkunze
Copy link

srkunze commented Nov 17, 2021

not sure what the main discussion thread is - so reposting here:

+1

recently saw this (react component) https://twitter.com/tldraw/status/1461011977791234051

or this

https://github.com/excalidraw/excalidraw

@srkunze
Copy link

srkunze commented Nov 17, 2021

One main issue I have with all the “non-jupyter” solutions is the fact that I would love to see collaboration when using a whiteboard AND thus shared persistence.

Especially this last aspect usually created headaches when it comes to maintenance. So a properly configured JupyterLab/Hub would solve that one for a lot of people.

@zsunberg
Copy link

zsunberg commented Jan 9, 2022

This seems to provide the desired functionality: https://github.com/nicknytko/notebook-drawing

@aiqc aiqc closed this as completed May 18, 2022
v4 <bit.ly/jupyter4> automation moved this from NotStarted to Merged May 18, 2022
@aiqc aiqc removed this from Merged in v4 <bit.ly/jupyter4> May 18, 2022
@fcollonval fcollonval reopened this May 18, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement tag:Extension Idea Ideas for interesting extensions that live outside of JupyterLab core.
Projects
None yet
Development

No branches or pull requests

10 participants