Software support for making effective pen-based
applications is currently rudimentary. To facilitate the
creation of such applications, we have developed SATIN, a
Java-based toolkit designed to support the creation of
applications that leverage the informal nature of pens. This
support includes a scenegraph for manipulating and
rendering objects; support for zooming and rotating objects,
switching between multiple views of an object, integration
of pen input with interpreters, libraries for manipulating ink
strokes, widgets optimized for pens, and compatibility with
Java’s Swing toolkit. SATIN includes a generalized
architecture for handling pen input, consisting of
recognizers, interpreters, and multi-interpreters. In this
paper, we describe the functionality and architecture of
SATIN, using two applications built with SATIN as
examples.