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

CRDTs - Canvas

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

Features - Canvas

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

Users - Canvas

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

Networking - Canvas

*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.