Home → TutorialsAdvanced Options
Advanced Options
Zeljko Obrenovic, TU/e Eindoven
Last modified: 31/08/2009
Table of Content
AMICO Sketchify supports more advanced options, such as inherited sketches, the mapping of a sketch to multiple display surfaces, and a history mechanism.
Drag-and-Drop Support
Most of the actions with variables, timers and macros, can be defined by drag and drop of variables (or timers and macros) on approprtiate elements of the interface (Video 1).
Video 1. Drag-and-Drop Support (see also how to open this example in Sketchify).
Sketch Inheritance (master sketch)
In order to support a more generic definition and reuse of existing sketches, we have introduced the concept of sketch inheritance. When one sketch inherits another, it automatically takes over its background image, its active regions, and all its settings. New elements and active regions can subsequently be added. As a special case of sketch inheritance, we also support the concept of a master sketch, which, if it exists, is automatically inherited by all sketches (Figure 1 and Video 2).
Figure 1. A master sketch (a) defines a background image and active regions that are inherited in all other sketches (b, c, d) which add additional graphical elements and active regions.
(a) Master sketch |
(b) Sketch 1 |
(c) Sketch 2 |
(d) Sketch 3 |
Video 2. Defining master sketch (see also how to open this example in Sketchify).
Mouse and Keyboard Simulator
To support working with applications that are not directly connected to AMICO Sketchify through any of the service interfaces, our tool provides a generic way for defining sequences of mouse and keyboard events that can be triggered when predefined variable conditions are met. In this way, it is possible to control any application that has a mouse and/or keyboard interface (Figure 2 and Video 3).
Figure 2. Interface of the form for defining mouse and keyboard actions.
Video 3. Using mouse and keyboard simulator (see also how to open this example in Sketchify).
Mapping Design Space to Display Space
When a sketch is executed, it will, by default, open in the same screen as the one it was created in, with a size that is identical as in the design mode. However, we also offer the possibility for a more complex mappings between the design space and (one or more) display surfaces. More specifically, several display spaces may exist at the same time, and for each of these display spaces we can specify the part of the designed sketch that is shown on it. A transformation that can combine translation, scaling, rotation, and sheering can be applied (Figure 3 and Video 4). In this way a designer can use one sketch to control several displays by mapping different parts of the sketch to each display. This support is, for instance, important when designing augmented reality applications, where several presentation spaces are often combined, such as a tabletop projection and a wall projection.
Figure 3. Mapping design space to display space. (a) A sketch can be presented on one or more screens, where for every screen we can define which part of the sketch will be shown, and how it is to be transformed. (b) The user interface for defining the mapping between the design space and the display space.
Video 4. Defining interaction spaces, screens, shape of the window and window transparency.
Filtering, serialization and aggregation of variables
Filtering, serialization and aggregation of variables are all aspects that serve to control the dynamics of the interaction (Figure 4 and Video 5). One of the problems we were facing, especially with software services, is that we were integrating components with very different timing characteristics. For example, some sensors can update variables more than fifty times per second, while spreadsheets are not able to process data this fast. To circumvent such problems, we introduced the concept of a “count filter”. For example, a “count filter” of 10 means that we will process every tenth update of a variable, ignoring the other nine. AMICO Sketchpad furthermore enables serialization of variables, which means that sequential updates of an variable are mapped to a sequence of new variables. Aggregate variables, in turn, are obtained by applying statistical functions on internally serialized variables. In this way, we can, for example, obtain a running average or standard deviation of a variable.
Figure 4. Serialization and aggregation of variables. With serialization, a different variable is updated in response to the update of another variable. For example, the first update of a variable will create and update variable “v1”, the second update will create and updated variable “v2” and so on. Aggregate variables are derived by applying statistical function on a range of variables.
Video 5. Derived variables (see also how to open this example in Sketchify).
History Mechanism
Our sketching tool automatically saves all changes made in a sketch, and keeps the history of changes. A designer can also explicitly indicate when he wants to save a sketch. A designer can always go back, and restore a sketch from the maintained history (see Figure 5).
Figure 5. A user interface where the history of changes is shown, and were a designer can select the point at which he wants to resume a sketch.
Examples to Import from URL in Sketchify
You can open the examples from this tutorial in Sketchify by using "Import from URL" function (in the File menu), and copy-and-paste there the URL of an example.
- Drag-and-Drop Example, URL:
- Derived Variables Example, URL:
- Master Sketch Example, URL:
- Keyboard-and-Moouse Simulator Example, URL: