CHALK

CHALK is a distributed peer-to-peer interactive whiteboard. It runs on Windows, Mac and Linux. It lets participants join in the middle of a session, and it brings everyone up to date. In theory, it supports hundreds of simultaneous users. It is still in development, but you are welcome to try it out. The first prototype of CHALK was written by a students of the MSc in Networked Computer Systems at UCL: Gulzar Ahmad, Sanjay Bhatt, Jannik Sundø and Morteza Kheirkhah Sabetghadam. The current version is by Damon Wischik.
The same content is being shared in real time between a Windows tablet PC, a Nokia N900, and a Linux terminal.

Download and install

General instructions, and detailed instructions for Windows, Mac, Maemo.

Version history:

Writing and editing

To start writing, click one of the pens on the toolbar. To scroll, select the hand. To erase, click the eraser (rightmost button). You cannot (yet) move or resize writing. The toolbar buttons, in order, are Undo, Full Screen, Zoom in, Zoom out, Move, Write (in different colours), Erase. You can only undo your own writing, not your collaborator's.
CHALK presents you with an infinite two-dimensional writing surface, with infinite zoom in and out (subject to rounding error!) CHALK divides the infinite surface into a grid of numbered pages, which you may helpful when explaining to your collaborator which part of the surface you're looking at. You can tell it to highlight the parts of the surface that contain writing, with View | Show Extent.

Collaborating

To share with someone else, click on File | Share With, and type in their IP address and port number. You can share with as many people as you like, and your machine will automatically introduce its friends to each other. To find out your own IP address and port number, look at the green text box at the bottom, and scroll to the very top. You will see lines like Starting to listen on 2->('192.168.1.2', 31415); this gives your IP address and port number.

If you are behind a NAT (quite common at home and businesses) then it is more complicated for people to reach you. It is probably easier for you to run CHALK on a machine which isn't behind a NAT, and for you and your collaborator to connect to that machine. It is fine if all this machine offers you is a command line; simply run server.py for a text-only peer. For example, on Linux with tcsh shell,

nohup python server.py >& log.txt &; tail -f log.txt
will run the server in the background, sending all its output to log.txt, and show you the log. If neither you nor your collaborator has a non-NAT machines available, then you can try this: (1) each of you click on View | Who am I? to find your NAT's IP address, (2) each of you do File | Share With the other, at the same time. This may succeed in `punching a hole' through the NAT.

If you want to work on multiple documents at the same time, simply run multiple copies of CHALK. Each will listen on a different port number, so the communications will not get muddled up. CHALK has no mechanisms to prevent others from joining your session or from editing your documents. It will not protect you from inadvertently joining two documents which were meant to be separate.

Saving and printing

You cannot save the document. If you want to keep editing the document, then leave an instance of CHALK running. (I anticipate making further changes to the data structure, and I do not want you to tell me that my changes have made your saved documents useless.) You can save the document as PDF by clicking on File | Print. A useful option is Pages per sheet which specifies how many CHALK pages, from its infinite numbered grid, should be printed onto each sheet of paper.

The future

This is a working prototype, not a finished product. I welcome comments and requests for features. (Except the request to be able to convert handwritten equations into LaTeX, which is daft.) Planned features are
  • Pasting images
  • Faster refresh of content
  • Moving and resizing
  • Password-protected documents
  • A public server for rendezvous