Skrui Draw is a drawing program with a sketch recognition-based user interface. My goal in making all of this is to explore what is possible with pen-centric widgets and interaction techniques.
NOTE: I haven't implemented pen widgets for everything. In order to save and print you have to use the keyboard until I have implemented pen-centric widgets for that stuff.
Commands include:
Here is the Skrui Draw UI:
Here's some neat stuff you can do with it.
Thickness chooser: This is based on the CrossY widget by Georg Apitz and François Guimbretière. To use, just press the pen down inside the widget and slide it over the red line. The pen thickness depends on how far up the red line you cross.
Color chooser: Colors are 'mixed' together by stirring the pen in a color square. Unlike normal swatches that let you click, these widgets let you nudge the pen color in a direction by dragging the pen through the color area. The resulting color is left on the color square so you can see what you've mixed (but fades over time).
Alpha chooser: You can also make the ink more or less transparent by stirring your pen in this widget. While color chosers do not pay attention to what direction you are stirring, the alpha chooser makes the ink more clear if you move up, and more opaque if you move it down.
Undo/redo: Stir the pen to the left to undo, stir to the right to redo. This widget lets users trigger discrete events (e.g. undo/redo), rather than continuous events (e.g. color change).
Flow selection: After you've drawn something, you might want to correct errors. You could do this by undoing and trying over, or you could modify what you've drawn. You can select portions of a stroke by setting the pen down and holding it still. A selection will begin to grow outward. If you move the pen while selecting, you will modify the selected region. If you lift up and then draw near the selection, the selected region will try to move towards the new line you've drawn. You can make multiple selections by tapping twice (or more) before beginning a selection.
Scribble fill: If you want to fill a region, just pick a color and start scribbling back and forth. The system recognizes this as a fill gesture and automatically switches input mode to fill. It will revert back to line drawing mode afterwards.
Questions, comments should be redirected to Gabe Johnson: johnsogg@cmu.edu