Much of this information is internal documentation. Care has not been made to make links work and make the documentation conprehensible for outsiders.

This is the main page for the design of the Interaction Toolkit. The Interaction Toolkit supports the display of graphical objects in windows and the interaction with these objects.

  • - Goals —

The main goals for the toolkit are:

Efficiency: low overhead of the toolkit\\
Simplicity: simple things must be simple to do\\
Power: complex things must be possible

We'll need to elaborate on these goals to evaluate the design as we develop it…

  • - Initial design —

The toolkit is organized around the following concepts:

  1. Graphics: how things are displayed
    1. Surfaces: display windows
    2. Layers: surfaces' contents
    3. Display structure: layers' contents
  2. Interaction: how objects are edited
    1. Events: event-based programming
    2. Instruments: editing paradigm
    3. Dependencies: declarative behaviors
    4. Active variables: linking application and interface
  3. Styles: attribute sets with value inheritance
  4. Tags: property sets

As the design unfolds, we'll update the pages above and probably add new ones. Feel free to do so! A short-term goal is to have high-level Beta patterns for the different concepts above, which we will refine as we go. So get those patterns in!

  • - Current Design —

The design above has evolved into the definition of a Extensions that supports multiple views of the same “scene” in one or more “canvases”.

  • - Related works —

State Machines

Ole [olm] has worked on a state machine BETA library which can, e.g., be used for event managers in user interfaces.

Graph Constraints

See the section ”Constraints”.

Information Visualization

Paul is putting together an overview of some information visualization techniques, such as information and image based distortion, zoomable user interfaces (ZUIs), and demos of Pad++ and MagicLenses.