How do whiteboards with real time collaboration work?

242 views

I’m wondering how whiteboards on zoom or Microsoft teams allow more than one user to write in real time!

In: Technology

Similar to multiplayer games: a dedicated server has the master copy, and all the clients submit their changes to the server as they happen. The changes are then made at the master copy, then all clients get that update. It can only be real time if everyone’s internet speed is fast.

As each letter is typed, deleted, the cursor is moved, something is drawn, or posted that update is sent to every single person with the board open and their client adds that content to their view of the board. This stream of data is being sent from everyone to everyone. It’s basically the same concept as an online game. Instead of content on a board you are editing your characters location, appearance, abilities active, health, and more. This is all sent to everyone in view distance so they all accurately can see what you’re doing.

* Imagine each connected user has it’s own pane of glass
* Everyone can draw anything on their own pane of glass with some sharpies.
* When your computer sends the data from your webcam, it’ll now send copy of your glass as well
* The zoom server will take all the panes it receives from all participants a redraws it onto a new pane of glass
* The zoom server will send out this new pane of glass to everyone and now everyone can see what everyone draw

In reality, it’ll probably use something a bit more complicated but smaller. It’s not really efficient to use pictures. They are probably using [vector graphics](https://en.wikipedia.org/wiki/Vector_graphics) instead of raster graphics.

They’ll simplify all the drawings into simple shapes on your computer (this will remove some small details, but it will also make it smooth) and then send it to the server. That way, they could even send only what changed while you were editing it instead of the whole thing. It will also enable hovering over some shape to show who made it.

I don’t know how they do it, but this is how I would do it.