GSOC (new idea by Ritesh) : An interactive drawing tool to assist real time teaching

GSOC (new idea by Ritesh) : An interactive drawing tool to assist real time teaching

by Ritesh Mehta -
Number of replies: 14

I suggest a new feature in moodle to augment real time interaction between students and instructor in the form of diagrams, figures, etc.

The aim is to create a drawing applet that could be integrated with the chat feature to convert chat room to work room.

It will be a shared board among many users that can simultaneously draw and view the image on screen and discuss the problem with text.

I did some similar work for my project this semester and I think I can do a full app during the GSOC timeline.

If it seems an appropriate idea, i'd further like to discuss what all features should be present in it.

As of now, I see it as a limited online version of paint-brush.

Ritesh Mehta,

Third Year Undergraduate Student,

India

Average of ratings: -
In reply to Ritesh Mehta

Re: GSOC (new idea by Ritesh) : An interactive drawing tool to assist real time teaching

by John White -
Ritesh,

This idea has a strong resonance with...
http://moodle.org/mod/forum/discuss.php?d=118702
...which would be very nice to see implemented!

Regards,
John
Average of ratings: Useful (1)
In reply to John White

Re: GSOC (new idea by Ritesh) : An interactive drawing tool to assist real time teaching

by Hubert Chathi -
It looks like Ritesh's proposed project is, in some aspects, harder, and in some aspects, easier than Balsamiq (which is discussed in the above-mentioned thread). On the one hand, if it is just a simple paint-brush application (which, by the way, is definitely the way to go as a first step), this would make some things much easier.
On the other hand, a huge difficulty is making the drawing area shareable in real-time, as this requires that multiple users can draw on the board at the same time, but that everyone gets the same view at all times, while making sure that the server doesn't get overloaded. This will require careful design of a synchronization mechanism.
Average of ratings: Useful (1)
In reply to Ritesh Mehta

Re: GSOC (new idea by Ritesh) : An interactive drawing tool to assist real time teaching

by Mauno Korpelainen -

Do you mean something like

http://moodle.org/mod/forum/discuss.php?d=110902

Average of ratings: Useful (1)
In reply to Mauno Korpelainen

Re: GSOC (new idea by Ritesh) : An interactive drawing tool to assist real time teaching

by Ritesh Mehta -
I think Mr. Mauno hit the bulls eye and the following link that i got from the forum he listed has a fantastic list of related tools:

http://www.allgraphicdesign.com/graphicsblog/2008/05/16/online-drawing-tools-free-online-painting-sketching-tools/

Most of these tools have focussed on different aspects though centrally being on the same concept of real-time drawing.

I am fairly good with java and applets and I think I can implement basic features required for drawing diagrams to assist in certain courses single handedly. Features like basic shapes (circle, rectangle, lines), colors, text and also saving (I encountered some open codes in java for png encoding). This would keep the appet light and useful.

I think extra features like image uploading, cropping, loads of extra shapes would not only make it bigger initially but also divert from the real objective, unless we'r talking about assistance in a painting course itself smile

And i suppose we can always put a restriction on the no. of people working(for ex. 30) on a single drawing and also allocate different access levels to teacher and students.







In reply to Ritesh Mehta

Re: GSOC (new idea by Ritesh) : An interactive drawing tool to assist real time teaching

by Hubert Chathi -
Yes, they all deal with drawing, but I don't think that any of them deal with the problem of having multiple people access/edit the same drawing at the same time, which seems to be what you are aiming at, if I understand you correctly. IMHO, the problem of multiple simultaneous editing is a much harder problem to deal with properly than the problem of drawing shapes on the screen. If you underestimate this problem, you will have a hard time making something that works successfully.
In reply to Hubert Chathi

Re: GSOC (new idea by Ritesh) : An interactive drawing tool to assist real time teaching

by Mauno Korpelainen -

Hubert, you are right - but many of those introduced applications can share whiteboard, do have chat options, do allow you to load and save presentations etc - for example http://www.twiddla.com/1 , http://www.dabbleboard.com/draw and http://www.queeky.com/draw/php/ allow limited free use and are pretty functional.

Anyway all such tools are useful if you manage to integrate them to moodle - no matter if they are made with java, flash, ajax, flex or simple javascripts and php...

Martín Langhoff created even a new feature request to tracker http://tracker.moodle.org/browse/MDL-18651 ( Extend TinyMCE to support in-place drawing )

In reply to Ritesh Mehta

Re: GSOC (new idea by Ritesh) : An interactive drawing tool to assist real time teaching

by Mauno Korpelainen -

Ritesh,

there are probably lots of those partly functional but ready to use java applets that are published under the terms of the GNU and you even get source code for them - I only tested/mentioned one in http://moodle.org/mod/forum/discuss.php?d=110902 because Martin was searching some FOSS/Gnash tools for kids XO laptop project. The one -  Chibipaint -  http://chibipaint.com/downloads.html was easy to embed using the guide given in readme.txt http://moodle.org/file.php/5/moddata/forum/33/487280/readme.txt

For example

http://webtools4u2use.wikispaces.com/Drawing,+Charting+&+Mapping+Tools

has a lot more tools for drawing but they are not all open source. On the other hand google finds many more tools if you just find the correct words for your search.

And that makes projects like this interesting - you never know before trying and testing what all those applets can do - or can't. wink

Average of ratings: Useful (1)
In reply to Mauno Korpelainen

Re: GSOC (new idea by Ritesh) : An interactive drawing tool to assist real time teaching

by Ritesh Mehta -
Mr. Hubert, thank you for highlighting an important technical issue.
I did take notice of the synchronization issue in your first post itself. But I suppose the real problems faced would surface only when the application is under test with different no. of users simultaneously trying to work on it.

This is how I thought i should proceed to it initially:
Design a simple applet that can be used to draw lines and share it among users using Serialization transfer. But that would hardly tell me how much overload will be there with more features and many more users, plus we have to consider the bandwidths to determine if it will be overloaded or not.

But i guess significant work has been done in this area as Mr. Mauno's has mentioned.
Therefore I think rather than coding from scratch, it will be better if I study some already available tools like that and recognize the important features that can be lifted or derived from them.
Then focus on the main issue of byte stream transfers between the users.
An amalgamation of the features from various openly available tools in such a manner should be the focus then.

In reply to Ritesh Mehta

Re: GSOC (new idea by Ritesh) : An interactive drawing tool to assist real time teaching

by Hubert Chathi -
(Replying on this thread instead of http://moodle.org/mod/forum/discuss.php?d=119670, since that thread is going in a different direction.)

Hi Ritesh,

Yes, I do have some advice on transfers for your proposed project wink

You should be trying to send drawing instructions (e.g. something along the lines of "paint pixel at (5,20) with colour #f29e4a", or "bezier curve with control points at ... with colour ...", but of course less verbose, and more machine friendly). It's much more bandwidth-friendly than sending the entire picture.

It also works much better with simultaneous editing. If you send the entire picture, then if two people are editing the picture, then they will clobber each others' changes.

However, even with this basic protocol, there are still a lot of issues that you need to handle. e.g. you can make it more efficient by sending the drawing instructions in chunks, but there's a tradeoff -- sending more drawing instructions at a time is more efficient, but makes things more jerky. You also still need to worry about simultaneous editing -- if two people want to edit the exact same pixel at the same time, how do you make sure that everyone gets a consistent view?
In reply to Hubert Chathi

Re: GSOC (new idea by Ritesh) : An interactive drawing tool to assist real time teaching

by Ritesh Mehta -
I think we can solve the last problem i.e. the simultaneous editing of a single pixel by synchronized methods (the monitor mechanism) that would allow only one thread to send editing instructions over the HTTP at a time.
And i also remember doing some calculations around my 3rd semester maybe (actually me and my friend did it on the go while discussing something else) that gave the probability of such an event to be very minimal (which of course would rise as we try to make more people edit simultaneously). I can't recall all that as of now (already into end sem exams smile) but it takes a lot of things into consideration like data transfer rates of clients, processor speeds etc. (I suppose I'm going on the right track, do comment if otherwise).
And I think I can implement the proposed solution for sending parts that were edited rather than the entire image, that would simply require me to maintain a temp array of pixels(edited) apart from the main array and temp is sent and plotted over the main array at the client side.
And if I make the transfers at every mouse release (supposing user draws a line dragging mouse pointer with a key pressed), using synchronized methods, I think it will be workable for atleast a few users if not a very large group.
I'd like further suggestions, thankyou very much.
In reply to Ritesh Mehta

Re: GSOC (new idea by Ritesh) : An interactive drawing tool to assist real time teaching

by Olli Savolainen -
This would be great. I worked during a couple of years in a project that used Moodle Quiz for exams done in a camera-surveilled classroom. The biggest gripe with the system was that unlike in traditional pen&paper exams, you can't draw in computer based exams.

I am not sure if this would be easiest to implement in Flash, and if the following techniques are technically solid (... and they are not YUI, but dojo).

http://blog.xdraw.org/articles/2006/06/01/cross-browser-drawing
http://thinkvitamin.com/features/create-cross-browser-vector-graphics/

Average of ratings: Useful (1)
In reply to Olli Savolainen

Re: GSOC (new idea by Ritesh) : An interactive drawing tool to assist real time teaching

by Ritesh Mehta -
Hi,
Sorry for being late with this.

Here is my project proposal:

http://docs.moodle.org/en/Development:Interactive_paint_tool

Suggestions for improvement are most welcome.

Thanks.
In reply to Ritesh Mehta

Re: GSOC (new idea by Ritesh) : An interactive drawing tool to assist real time teaching

by Edward Swann -

Hi, one that just one person - e.g. the teacher - could edit would be a useful addition - I'm tired of having to send links to students when they aren;t exactly what i'm after...

In reply to Edward Swann

Re: GSOC (new idea by Ritesh) : An interactive drawing tool to assist real time teaching

by Davo Smith -
Picture of Core developers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers

Edward - given that this is a 5 year old post (and I'm not aware of the plugin being produced), it's probably a bit late to be giving feedback.