My Master's thesis project, Kinematic Templates, focuses on manipulating freehand input when drawing with a mouse or graphics tablet. Kinematic Templates are drawing tools that are overlaid on regions of a drawing canvas. When drawing through these tools, the user's input is altered. For instance, one such region may specify that all strokes should be aligned horizontally. These templates can be applied in layers to create composite effects.
Kinematic Templates are categorized into passive and active templates. Passive templates alter the user's input according to predefined mathematical functions, which result in the cursor moving along a preferred axis, concentrically, slower, or faster. Active templates introduce computer-generated movement while you draw.
Passive templates are somewhat related to Illustrator's cleanup tools. Unlike Illustrator, these tools are applied while drawing a stroke, not as as a post-processing stage. This gives the artist a "feel" for the drawing tool.
Active templates are somewhat related to drawing tools that introduce computer-generated strokes. One such application is Kid Pix. Kid Pix provides drawing tools that can create mirror strokes of the user's stroke and also includes various brush effects. Try it out for yourself by running Kid Pix in Mac OS in your web browser.
To try out Kinematic Templates in a web browser, make sure you have Javascript enabled in your web browser. Scroll down to the drawing canvas and try for yourself. Enjoy!
Kinematic Templates were presented to UIST 2008 (ACM Symposium on User Interface Software and Technology). At the Libre Graphics Meeting, my Master's advisor Dr. Michael Terry demonstrated this drawing tool to an audience of open-source developers.
Hatching template in Processing
Compass template in Processing
Drawing application with Kinematic Templates. Requires Windows and Microsoft .NET Framework 4.
The template functions I wrote for Kinematic Templates are available in an open-source library (see license). They require C#. At the moment, there is no documentation for the source code. I have, however, included an example project that shows you how to use the library. If you use the source code, please let me know what you have created.
Fung, R. 2009.
Kinematic Templates: Guiding Cursor Movement in End-User Drawing Tools.
Master's thesis, University of Waterloo.
Fung, R., Lank, E., Latulipe, C., and Terry, M. 2008.
Kinematic Templates: End-User Tools for Content-Relative Cursor Manipulations.
Proceedings of the 21st Annual ACM Symposium on User interface Software and Technology (UIST 2008) (Monterey, CA), 47-56.