Many times a picture can describe ideas that are impossible over simple text based communication (chat). With many work teams having physically diverse locations sometimes sharing and working on pictures can be very difficult. This project is to create a real-time online whiteboarding application using instant messaging protocols. The problems with previous projects of this type is that they use very simplified drawing models that restrict the user or they use a specially designed protocol that requires special set up. This project aims to remove both of those restrictions by using standards, and an existing vector drawing application.
This project involves extending a current vector drawing program (Inkscape) using the standard XMPP messaging protocol (Jabber). Inkscape is based on the W3C's XML based vector graphics format SVG. Internally, Inkscape maintains the structure of this document, and has events occur when this model is changed by the user. When this occurs, a message can be sent to another instance of Inkscape monitoring an XMPP stream on another host, perhaps in another country.
This project would involve learning the Inkscape architecture, SVG and XMPP standard and then extending them to achieve the required functionality. Depending on the team size, group chat should also be supported.
Hi, Ted! My name is LionKimbro. Good to meet you! :)
We've made a primitive, but already useful, text whiteboarding app over at IntComm. We use it regularly in our IRC, now, particularly while development.
(You can see our cheezy ASCII drawings, made during our IRC meetings.)
Obviously, we need an SVG whiteboard editor. We've had our eyes on Inkscape for a while now, because the project devs appear to be sympathetic to the idea of whiteboarding.
I would think though, that the easiest thing to do, immediately, is to do exactly what we did in our text communications system: Just throw the entire SVG file over the network, once every 3 seconds.
Have an XML-RPC doc server. It can even be the exact same document server we are using right now, with IntComm:SubPathetaEdit.
Then make periodic 3 second "GET" requests to the document server.
In the event that you did something, perform a POST.
Yes, I know: It's gross. But: It works! Even with large documents.
Then, after you get this very simple and cheezy system done, you can get more elaborate. And you have the help of a whiteboard as you develop your new system!
You're invited to talk with us over in irc.freenode.net #onebigsoup -
I would be surprised if we couldn't get this working within 3 days, after we are able to build Inkscape, and an XML-RPC library.
Basically, we just need to make it Load or a Save automatically every three seconds.