Write a Blog >>
Sun 22 - Fri 27 October 2017 Vancouver, Canada
Sun 22 Oct 2017 13:30 - 14:15 at Prince of Wales - Session 3

This paper demonstrates an implementation strategy for a general real-time remote collaboration framework called Kanto. Kanto is a web-based library that provides screen sharing, voice chat and bi-directional user interaction among participants over the Internet. The generality of Kanto’s design makes it straightforward to add its facilities to the programming systems Etoys, Snap! and GP with little modi cation to those systems. Because Kanto is web-based, no additional software installation is required on the computers that use it.

Kanto takes advantage of the WebRTC framework, which supports peer-to-peer video, voice and other data transmission. One insight is that if an application uses a single HTML canvas to render all graphics, we can simply stream the contents of the canvas to other hosts to do screen sharing. Luckily, the above-mentioned blocks-based programming languages follow this single-canvas implementation strategy, which is in uenced by Smalltalk.

Kanto embodies a particular set of choices within the vast design space of collaboration systems. For example, Kanto maintains its application state by designating one node as the state holder, and streaming just that node’s display contents to the other nodes. This simpli es the implementation, but for a remote user introduces a delay between an action and its corresponding display update. In our experience the speed of response is acceptable even at intercontinental distances, but below we discuss alternative designs that would avoid this issue.

The system can be tested by visiting https://tinlizzie.org:8080/ snap/learner.html in one Google Chrome tab, then https://tinlizzie.org:8080/snap/teacher.html in another.