Sunday, January 31, 2010

ShowAndTell

I had an idea for an app recently, that helped one to learn complex software. I remember a few years back, trying to understand 3ds Max. Anyone who has ever used Max will remember getting bewildered at the enormous amount of options that Max throws in your face. Although Max is very powerful and gives a lot of control in the hands of the experienced user, it can be very tedious to learn.
The idea I had was to record the mouse movements of an expert who is proficient in the software's uses. We can assume that a user trying to learn a software will most probably have it installed on his machine. So if we can capture the mouse movements of an expert and play it out on the learner's computer, it would be like a video tutorial without all the hassles of recording one. Audio recordings can also be played as and when required.
The hitch?
In order to record mouse movements, we need to set up a global mouse hook. I know how to do it in Windows, but that requires using kernel APIs like SetWindowsHookEx, which I think is crap. I have not figured out how to do this in linux however.
On the other hand, taking control of the mouse is trivially simple. In Java, there exists a class called Robot, which can be used to control the mouse. Similar APIs must exist for other languages as well I am sure.
I will post more ideas for apps that make learning intuitive.

No comments: