Wednesday, October 1, 2014

Design Principles of a Sketch Recognition System


A Sketch Recognition should :
  1. be Pretty Intuitive and incorporate Simple design
  2. be a Well-organized system (Optimum space for everything and fitting to different resolutions) 
  3. Gives user the natural feeling of drawing sketches on paper or boards
  4. incorporate a Demo or a Help Section with well laid-out instructions on How to use the system
  5. be Fast and responsive
  6. automatically Improve with time with more Training data and adapt itself to user
  7. have a Context-Aware Feedback/Assistive Mechanism to guide users (Error and Help Messages or on a completion of a phase)
  8. have a Good Disambiguation method to recognize closely matched sketches (shapes, gestures etc)
  9. collect Statistics related to user's drawn sketch and improve itself
  10. Multi-stroke recognition system should be able to make out the end of a stroke  
Although obvious, but a Sketch Rec system should also:
  1. recognize Primitive, trivial shapes like Lines, Polylines, triangles
  2. incorporate basic functions like Cut, Copy, Paste, Redo, Undo etc
  3. display the name of the Function upon Hovering (if images without text are being used)
  4. have a Color pallet with extensive range of colors as it lends user the ability to add creativity to their sketches

What a Sketch Recognition System shouldn't :
  1. be Slow and Unresponsive
  2. display unclear and ambiguous Error messages
  3. aggressively pop-up Help or Error messages interfering with user's sketching
  4. over-fit or under-fit the templates
  5. be Complex to work with
  6. generally depend upon the Order of the strokes
  7. be overloaded with Functionality
  8. make the process of switching between a drawn stroke and related controls very complex and time-consuming. Controls/Commands pertaining to a stroke should be in close proximity and can be laid-out right next to the stroke (upon right-click of mouse)
  9. be agnostic of factors like Pen Tilt vs Finger Tilt even for the same user. It should clearly lay instructions if such a case exists (may be a very specific point). In such cases, it can't be Input-Mode Agnostic.
Improvements in Mechanix (Not listing the bugs)
  1. Progress should be saved on the server as well:
    1. It can be accessed by user from any machine
    2. User would no longer have to find out the latest copy amongst the different versions of the saved copies
    3. Also, he need not worry even if he looses the local copy of the homework 
  2. Should collect Statistics (Point 1 assumes significance in light of this):
    1.  It will help Instructor find out in real time if many students are stuck on same problem and can modify the feedback to help students
    2. It will also help students figure out how much time they spent on a certain problem and the areas they need to improve into
    3. It can also lead to Adaptive (User-specific) Feedback Mechanism.
  3. A Mechanism for Students to post his doubt regarding a problem directly to the Instructor 
  4. A Demo or a Help section can be included
  5. Navigation through problems can be simplified as well
  6. A Customizable Sound mechanism (that cannot only be turned on or off, but can be updated) can be added as soon as a student accomplishes a stage. This adds to the better user experience.
  7. For different platforms like tablets
  8. Last, but not the least, a Credits Page Section :)

No comments:

Post a Comment