Introduction :

This is my Master of Engineering project at Cornell. It is basically a java applet which users can directly download in the web browser. When a user download the applet, it makes a connection with a central server. One can see other people's drawing and also draws his own through this "shared drawing" applet. I choose "WebPainter" as my MEng project for several reasons :
Internet
Internet is so hot today that everything will appear on it in the near future. The navigator is the heart of the internet. Building some useful application embedded in the web browser seems to be the most important thing to do right now. This "shared drawing" application is the best example to demonstrate the power of the internet. One can just open a Netscape on his or her desktop and then communicate with friends far away not only by words, but also all kinds of drawing to unveil ideas.
Application
I think this application can be very easily incorporated into some important applications on the internet. Teleconferencing is the best example. Meeting with people at different places on internet is now feasible and may replace the traditional style of conference. To simulate a real conference, the audience not only want to see a speaker, listen to him, but also want to know, for example, what he or she draws on a whiteboard. The point here is that we need a duplex communication in a conference instead of one-way communication. This "Sharded drawing" application is the best example of this property.
Features
There are so many different features in this application. And Java is the best language for those features. In the library of Java, it supports socket connection for a client-server model. Java also has Abstract Window Toolkit package which can do platform-independent Graphical user interface. As far as language feature is concerned, Object-oriented programming inherited from C++ is good for this kind of medium-sized and extendible application. And the most important of all, java is the language designed for Internet programming, which is the essence of this application.
There are six sections in this documentation. An on-line "live" tutorial which tells users how to use is in the section 2. Section 3 introduces some important features of this application. Section 4 gives some implementation details. And the section 4 and 5 are some suggestions and the related future work.