TeChat: A Handwritten Chat/Instant Message System
Peter Na - firstname.lastname@example.org
Faculty Advisor: Professor Zachary Ives
Instant messaging has been established as an essential method of communication over the internet. However, many aspects of person-to-person communication are lost through plain text messaging. Plain text removes many of the subtleties involved in a conversation such as emotion, and body language. Often times, even in face-to-face conversations, concepts cannot be conveyed through words alone, and the speakers may want to better “illustrate” their points. Drawings can be immensely more effective at communication than plain text (given a rudimentary amount of artistic ability), and can give interactions a “personal” touch.
This project is meant to expand upon the concept of “draw chatting” and bring it into a real-time environment, without sacrificing the features of an instant messaging client.
This application will be similar to all chat software available, such as AIM (America On-line, 2008), GTalk (Google, 2008), and Windows Live Messenger (Microsoft, 2008), in that it is a chat program, and can send and receive messages. The inspiration for this project was initially derived from Windows Live Messenger, which has a very basic handwriting feature that can be used to send simple handwritten messages in addition to normal text messages. Browser-based web applications such as Paintchat (ShiChan, 2003) and Iscribble (Tyb, 2008) enable groups of users to draw on a shared canvas. Pictochat, a Nintendo DS application, allows users to send each other pictures they drew on the game system’s touch screen over an ad hoc wireless connection (IGN, 2004). The handwritten blog site Tegaki, where users draw blog entries and chat with drawings in the comments sections, is also an inspiration for this project. On Tegaki, users often use the handwritten commenting system to “chat” with friends and other users. Often times, they adopt original characters they created to represent themselves, and draw their characters performing certain actions or displaying a certain emotion to help emphasize what they are trying to say. The site is greatly popular among online artist communities, as well as roleplaying groups, and creatively inclined individuals who enjoy art and drawing (Pipa, 2008). However, since the sites were not specifically designed for chatting, it lacks many of the features characteristic of a chat application, and most importantly, one must constantly refresh the site to see if anyone has responded to their post.
Of the applications specifically designed for messaging, none explore the potential of handwriting as a medium for communication. Windows Live Messenger does include a simple implementation of a handwriting feature, with a pencil tool, eraser tool, and 16 colors. While drawing, one cannot send any text messages, and handwritten messages are not saved in the chat history. So, the application lacks many of the features that users who chat through images would desire. Group canvas applications like Paintchat and Iscribble are based more on collaboration than chatting, and thus it is difficult to tell who drew what picture, and there is no sense of when each drawing on the canvas was created. Tegaki is a site designed as a blog hosting system, so it focuses more on blog features than features characteristic of chat clients.
This project will focus on the concept of chatting through art, instead of text. So, the feature set will include better tools for artists, as well as provide easy ways of saving and sharing chat logs, along with other features to make draw-chatting a more satisfying experience.
The project relies heavily on the Extensible Messaging and Presence Protocol (XMPP) for sending and receiving messages to remote clients. Developed by the XMPP Standards Foundation (XSF), XMPP is a real time open-source XML-based protocol used for sending data between peers. Work has been done to make it a standardized and generalized framework for exchanging XML data, and make it more extensible and secure than its predecessor, Jabber (P. Saint-Andre, 2004). As it is quite simple, it is flexible as well, and so can be extended for more than plain text chatting, which is why the protocol is being used for this project.
The appeal of XMPP lies in its extensions, which allow it to accomplish more than simple presence and chatting. Since XMPP is a text based protocol, it cannot handle binary data on its own. Thus, file transfer extensions are available, such as SOCKS5 Bytestreams (XEP-0065) or In-Band Bytestreams (IBB) (XEP-0047). Based to the specification documents, IBB is a good match for this project, since it is reliable and robust, and because the image files that are produced by the application are not tremendously large. Also making things simpler is that fact that IBB file transfers are not affected by firewalls (Karneges, 2006).
The other half of this project is the user interface and drawing application. The Windows Presentation Foundation subsystem has fairly recently been added to .NET framework for version 3.0, to create a unified platform for GUI programming. Particularly useful is the InkCanvas class, which simplifies the process of producing an application for creating and saving images. WPF integrates the design aspect of GUIs with development through the eXtensible Application Markup Language (XAML), streamlining GUI development, and thus makes creating images and creating a GUI around logs of images somewhat simpler (Chappell, 2006).
The chat system will be based on XMPP, known previously as Jabber, a real time open-source XML-based protocol used for sending data between peers. Images are drawn on a canvas through mouse or pen tablet input, which is encoded by the client into a form transportable through XMPP servers to the destination client. The destination client will display the image in a log along with a chat history.
Fig 1. Transportation of data using application and XMPP Protocol
Jabber XML streams consist of
, and (info/query). A basic connection would be as follows (From the XMPP core specifications):
... encryption, authentication, and resource binding ...
C: Art thou not Romeo, and a Montague?