Canvas
A CRDT-powered collaborative drawing app
September 2019 - January 2020
We've noticed a trend: over the last few years, everything is becoming more collaborative
But one thing is lagging behind... drawing tools
That is, until now
Introducing... Canvas
What is canvas?
We have created a resilient collaborative drawing app for iPadOS, using Conflict-free Replicated Data Types, or CRDTs
Features
Canvas has everything you'd expect from a drawing app, such as various design tools and sharing options, plus more advanced features, such as extremely accurate* shape and line recognition
Users
Canvas allows up to 1000 users* to connect and draw at the same time
But what makes it different to every other online whiteboard?
It's de-centralised
Networking
Our app uses a dual connection mechanism, making use of an XMPP server, for long-distance drawing, and a Bluetooth mesh topology, for optimised close-range drawing
This creates a resilient, de-centralised** network
*CRDTs are currently an open research area, so this project started as a proof of concept to see if they could be used in this context. We wrote a report which analyses referenced statistics in much more depth.
**CRDTs are a class of abstract data types that allow their state to be distributed across devices, modified locally and then merged in a straight-forward manner, meaning that they guarantee eventual consistency. Therefore, Canvas is completely de-centralised, and as such does not rely on one of the nodes to always be connected to the XMPP server.