Fun pandemic project: online whiteboard?

I'm wondering if there is anyone here who might be interested in building a web based collaborative whiteboard? I've been looking into whiteboards for my work (teaching physics), and haven't been satisfied with any of the commercial or open source offerings. I'd love to build one myself using rust for probably the server and client (via wasm, but if needed in JavaScript), but don't have the time, what with extra daycare duties plus extra teaching duties. So I'm wondering if there's a rustacean or two out there who might enjoy the project.

The biggest issue with existing whiteboards is that they over-simplify the path of writing, which when using a stylus and writing quickly an "n" or a "u" both tend to get turned into something like an "s" rotated by π/2. This can easily turn terrible student (or professor) handwriting into something far worse. Obviously this issue alone isn't worth a full rewrite... none of this is worth it to me, because I don't have time.

The other major feature I'd love would be to support LaTeX math through typing, for students who don't have a stylus device. I've not found a whiteboard that supports this, but it shouldn't be too hard with mathjax.

Let me know if you think this sounds like an interesting project, and I can share ideas. I expect this Fall that many people could really benefit from a decent whiteboard.

1 Like

What whiteboards have you looked at already? I'm currently in "fun side projects" mode. Not saying I can make an online whiteboard (let alone a better one) but I'm interested in trying :stuck_out_tongue:

Right now my leading contender is wbo, and I'm hoping to find time today to install it locally and see if I can reduce the path simplification. But the process of installing and running a nodejs server on my research computer is not pleasant either from a sysadmin perspective or from a security perspective.

I also tried out the first half dozen or so leading Google hits on commerical offerings with free trials. Several had slightly better path simplification, but none really felt satisfactory.

I just looked at the source and reducing the 70ms at reduces smoothing. I tested this by setting a logpoint at that line containing lastTime = - 100, thus pretending that the last point was 100ms ago. This completely disabled smoothing.

Yeah, I also saw that. Sadly, it seems that if you set that delay too low, then another client that is also logged in misses some of the pen strokes entirely. :frowning:

if you are using online whiteboards you’ll be writing a lot every day – I would recommend getting a proper graphics tablet for that purpose.
Pen tablets are not essential but they do make writing online much easier and faster than with your mouse or trackpad.
I know a very busy online math tutor who uses BitPaper and a XP-Pen Star G640 graphic tablet every day.

I wrote (and will continue later) grafeia, which is aimed at replacing LaTeX at some point in the future (or prepare the path towards it).

Right now it supports:

  • Directed Acyclic Graph to represent the document
  • Collaborative editing
  • TeX
  • SVG
  • primitive editing

What it lacks is a proper GUI to enable more complex editing.

Adding a collaborative canvas is definitly possible, but I might prefer some vector based representation and using TeX for Mathematics.

My high school uses Blackboard Collaborate, which is awful. I would appreciate these features:

  • embedded WYSIWYG TeX editor (with maths, graph and hyperlink handling)
  • drawn objects can always be edited (not directly converted to an image)
  • convenient user permission system
  • multiple boards
  • protected areas on a board or protected boards
  • drag and drop all types of documents
  • save/load/import/export boards online/offline
  • compatibility with fediverse (especially NextCloud)
  • accessibility with screen readers and full keyboard control

Other similar projects for inspiration: CodiMD, EtherPad, LibreOffice Collabora, CryptPad

Grafeia looks cool, but as you say pretty incomplete. It also doesn't currently build. :frowning:

yes, yes. I need to fix that.

Just found this. :slight_smile:

It already has streamed synchronization across the network it looks like.