Conference PaperPDF Available

Multiple Input Support in a Model-Based Interaction Framework

Authors:
  • ingenuity io

Abstract and Figures

Developing for tabletops puts special requirements on interface programming frameworks: managing parallel input, device discovery, device equivalence, and describing combined interactions. We analyse these issues and describe the solutions that were used in IntuiKit, a model- based framework aimed at making the design and development of post-WIMP user interfaces more accessible. Some solutions are simple consequences of the support of multi- modality, while others are more specific to multiple touch. We illustrate these features through examples developed in several tabletop projects, including one application aimed at improving collaboration between air traffic controllers.
Content may be subject to copyright.
HAL Id: hal-01022134
https://hal-enac.archives-ouvertes.fr/hal-01022134
Submitted on 23 Jul 2014
HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entic research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diusion de documents
scientiques de niveau recherche, publiés ou non,
émanant des établissements d’enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.
Multiple input support in a model-based interaction
framework
Stéphane Chatty, Alexandre Lemort, Stéphane Valès
To cite this version:
Stéphane Chatty, Alexandre Lemort, Stéphane Valès. Multiple input support in a model-based inter-
action framework. TABLETOP 2007, 2nd Annual IEEE International Workshop on Horizontal Inter-
active Human-Computed Systems, Oct 2007, Newport, United States. pp 179-186, �10.1109/TABLE-
TOP.2007.27�. �hal-01022134�
Multiple input support in the IntuiKit framework
Stéphane Chatty1,2Alexandre Lemort2Stéphane Valès2
1ENAC 2IntuiLab
7 avenue Edouard Belin Les Triades A, rue Galilée
31055 Toulouse Cedex, France 31672 Labège Cedex, France
{surname}@intuilab.com
Abstract
IntuiKit is a programming framework aimed at making
the design and development of post-WIMP user interfaces
more accessible. Developing for tabletops puts special re-
quirements on such a framework: managing parallel in-
put, device discovery, device equivalence, and the descrip-
tion of combined interactions. We describe how the model-
based architecture of IntuiKit supports these, either through
features that are native to IntuiKit, or through extensions
for managing multiple input. We illustrate these features
through examples developed in several tabletop projects, in-
cluding one application aimed at improving collaboration
between air traffic controllers.
Keywords: interaction framework, tabletop, multiple in-
put, model-driven architecture, event model, data-flow
1 Introduction
Developing user interfaces for tabletops is both very sim-
ilar to desktop or touchscreen user interface development,
and very different from it. The similarities are obvious:
apart from orientation issues the graphics are the same, and
there is no reason that interacting with a single finger on
a tabletop should be different from interacting on a touch-
screen. Therefore, reusing interactive components devel-
oped for single input (mouse, touch screen) is a legitimate
wish. But there are differences, and the most obvious are
not always the most important. The most obvious is the
ability to handle multiple flows of input, though it is not
much different from handling animation in parallel with in-
teraction. More unusual is the ability to handle a variable
number of contact points, or the implied hierarchical struc-
ture of devices that have both multi-touch and multi-user de-
tection. Then the connection between the graphics system
and the input system (often called “picking”) must be made
extensible. The differences between devices must also be
accounted for: some do user identification but lack correla-
tion between X and Y coordinates of touch points, others are
limited to two pointers, etc. Furthermore, devices are still
costly and developers often need to simulate them with mice
because they cannot get easy access for unit tests. There-
fore, a framework for adapting, filtering and simulating de-
vices must be provided. Finally, support must be provided
for programmers to design interaction styles that combine
several input flows.
IntuiKit is a framework for prototyping and developing
post-WIMP user interfaces (that is user interfaces that do
not rely on the Windows-Icon-Mouse-Pointing paradigm)
as well as multimodal user interfaces. The purpose of In-
tuiKit is not only to make the programming of such inter-
faces feasible, but to make their design, development and
deployment cost-effective enough for non specialised in-
dustries to afford it. In particular, in order to allow the
reuse of design elements when switching from prototyp-
ing to final development, IntuiKit relies on a model-driven
architecture: as much as possible of the user interface is
made of data obtained by instantiating models [6]. The re-
sulting interface models can be “rendered” by different im-
plementations of the framework: one aimed at prototyping
(which currently offers a Perl programming interface), and
the other aimed at industrial deployment (which currently
offers a C++ interface). The modelling concerns graph-
ical objects, but also elements of architecture, behaviour
and control, animation trajectories, speech grammars, etc.
Adding multiple input support to IntuiKit therefore consists
in enriching the core models used in the framework, and
adding new models that represent new concepts if neces-
sary. This article describes these models. We first describe
the basic concepts of IntuiKit. We then describe how In-
tuiKit supports device addressing, input configuration and
parallel interaction. We finally describe a full application
implemented using those mechanisms, before reviewing re-
lated works.
1
2 IntuiKit basics
Figure 1. A set of tabs for a car display
2.1 The IntuiKit tree
IntuiKit considers an interactive application as a tree of
elements. The management of the tree, its traversals and
the communication between elements are managed by the
IntuiKit core. Terminal elements are provided by IntuiKit
modules, that are in charge of rendering them or updating
their rendering upon modifications. For instance, the GUI
module manages graphical elements from the SVG stan-
dard; the Speech module manages elements that represent
grammar rules; the Animation module manages trajectories
and collision detection; the Base module manages elements
that help describe the behaviour of the interface, such as
clocks and finite state machines. More complex elements
named components can be built by assembling other ele-
ments. For instance, a simple button component can be ob-
tained by combining a finite state machine (FSM), a special
element that only renders one of its subtrees depending on
the state of the FSM, and a series of rectangles and texts that
represent the different states of the button. Programmers
can also build their own components in code, for instance
to create functional core objects that can communicate with
the rest of the application using the architecture patterns
supported by the IntuiKit core. Parts of a tree that constitute
an application can be loaded at run time from XML files,
thus allowing for skinning or customisation. For instance,
the tabs from an in-car comfort and navigation system in
Figure 1 are obtained by loading a given SVG file into the
tree presented in Figure 2, and Figure 3 is obtained by load-
ing another SVG file. The same type of customisation based
on element loading can be used to adapt to touchscreens an
application made for desktops: for a given button, one can
choose to load either a FSM that implements a “take-off” or
one that implements a “land-on” strategy [16].
2.2 Event model
Because user interface programmers deal with interac-
tion and behaviour, and not only rendering, a very central
Figure 2. The tree corresponding to the tabs
Figure 3. The same tree with another SVG file
feature of IntuiKit is its communication between elements.
It has since long been established that event-based commu-
nication and control is well adapted to managing user in-
put. Event communication is a pattern of control flow al-
ternative to function call, that can be implemented on top
of classical function calls. This is used by most interaction
frameworks to juxtapose event communication and function
calls in applications. However, a characteristic of user in-
teraction, and especially post-WIMP interaction, is that the
same actions can be triggered from very different contexts:
user input, animation, or computations from the functional
core. Being able to reuse components thus requires that one
provide a unique model of communication for all these con-
texts: fragments of code that use different communication
mechanisms cannot be connected easily. Furthermore, be-
cause a user interface has a parallel execution semantics [5],
the overall semantics may become unclear if several control
transfer mechanisms are used. That is why IntuiKit uses
event communication as the only mechanism for transfer-
ring control from components to others: in the same way as
functional programming splits all code into functions that
communicate through function calls, IntuiKit splits all code
into elements that communicate through events.
IntuiKit uses the concept of event source. Each event
source has two features: its event specification format, and
its event contents. For instance, the ’clock’ source has
a specification format that distinguishes between one-shot
2
timeouts and periodic timers, and accepts one argument in
the first case and two in the second case. The event contents
is a timestamp, with an additional repetition number in the
second case. Some event sources like the clock are global to
the application and brought by IntuiKit modules. Elements
are also sources; this includes graphical objects or FSMs,
but also any component built by programmers. In the latter
case, the event specification format and the event contents
depend on the structure of the component, and can be cus-
tomised by the programmer. For instance, one can build
a dialog box and make it emit empty “OK” and “Cancel”
events, or a wallclock component that emits “SECOND”,
“MINUTE” and “HOUR” events that contain the time of
the day. Finally, element properties, such as the width of a
rectangle, are also event sources. This serves as the basis for
data-flow communication which is therefore a special case
of event communication.
Event subscription is obtained by adding special ele-
ments to the IntuiKit tree, which all use the same pattern: a
reference to an event source, an event specification, and an
action. The simplest element is the Binding, which links an
event specification to an action. FSMs add state to this: their
transitions are Bindings that are only active in given states.
A Connector has an implicit event specification and action:
its event source is an element property,whose value is used
to update another element property when it changes. A
Watcher is used inside components; it accepts several prop-
erties as event sources, and triggers an action when one or
more of them changes. Watchers are used to implement ren-
dering; Watchers and Connectors are used to produce data-
flow communication: data-flow filters modify their output
properties in the actions triggered by their watchers. Fig-
ure 4 shows a FSM used to control a stick-button.
Figure 4. Behaviour of a 3-state button
3 Managing multiple devices
In most user interfaces, input devices can remain implicit
in the code. In WIMP user interfaces, for instance, pro-
grammers usually subscribe to event types that are related
to the mouse or others that are related to the keyboard: no
need to introduce any further reference to the keyboard or
the mouse. If one is missing, the programs does not run ; if
there are other devices, either they can safely be ignored or
the operating system manages to mix them so as to emulate
one mouse and one keyboard. On a tabletop, multiplicity
is the rule and one wants to distinguish among devices: “I
want to subscribe to touches from this user”, or “I want to
subscribe to touches from any user, then to moves from the
user that has just touched the table”, etc. The event model
of IntuiKit offers a framework for this: one just needs to
have different event sources representing the different input
among which one wants to select, or a source with an appro-
priate event specification format. By adapting the sources
and event specification used in a given component, one can
easily adapt it from single-touch to multi-touch interaction.
However, some questions still remain: how to reference
a given input source? how to check if a given device is
present? how to handle the fact that the number of input
flows, for instance the number of users or the number of
fingers, is not known in advance? how to manage complex
sources such as a multi-user multi-pointer table?
3.1 Devices as external elements
The model chosen as the basis for answering the above
questions is partially an extension of the semantics of the
IntuiKit tree. It consists of stating that input devices are In-
tuiKit elements, but elements that are located outside of the
application tree. By stating that devices are elements, we
go a long way towards allowing the programmer to refer-
ence them and towards handling new input flows. By stat-
ing that they are outside of the application tree, we give
account of the fact that the programmer does not control
their existence: they are context elements that may or may
not be there, and it is up to the programmer to query them.
This model actually applies to many resources that are ex-
ternal to applications: operating system resources, other ap-
plications, context capture, etc. Users interact with a sys-
tem represented by a large tree, part of which represents the
application being developed. This is consistent with, for
instance, the way the Unix file system is extended in the
Linux kernel to make various information about the kernel
or programs accessible to other programs.
3.2 Referencing and finding devices
Since devices are elements, they are event sources and
can be used in event subscriptions. This can be done by
using an extension to the reference system previously avail-
able in the IntuiKit tree. The reference system, in a simi-
lar way to the source/specification couples used for events,
uses namespaces and names. Precedently, all namespaces
referenced elements in the application tree. The ’input’
namespace is used to reference devices. For instance, one
can use
new Binding(-source => ’input:diamondtouch’, ...);
in Perl or
<binding source="input:diamondtouch" ... />
3
in XML to subscribe to a DiamondTouch device plugged
on the computer. Device names are dependent on the con-
figuration of the computer. Therefore one may wish to use
an IntuiKit property instead of a literal for the device name
so as to set the device name in a configuration file, in CSS
format for instance.
The above referencing scheme leads to an error if the
device requested is not present. If a programmer wishes to
handle this situation, it is possible to use references from
the programming language as an intermediate. In Perl, for
instance:
$d = get Element(-uri => ’input:diamondtouch’, ...);
if (defined $d) {
new Binding(-source => $d, ...);
} else {
...
}
It is possible to express typing constraints on the device:
$d = get DiamondTouch(-uri => ’input:diamondtouch’, ...);
To express richer constraints, such as “any pointing device”,
it is planned to add new namespaces that handle more com-
plex queries than a name: XPath-like or SQL-like requests
for instance.
3.3 Dynamicity
A feature of multi-touch or multi-user systems is the dy-
namicity of input. The number of touch points or pointers
usually starts at zero when starting the system. It then in-
creases as soon as a new user starts interacting, a new finger
lands on the surface or a new pointer is used. When this hap-
pens, the programmer usually wishes a new feedback and
possibly new behaviours to be added to the user interface.
This situation is very similar to the addition of a new device,
for instance a new mouse, to the computer. Actually, plug-
ging mice successively onto the computer is a simple way
of simulating a tabletop during unit tests. The dynamicity
of users and touch points is very similar to hot-plugging.
{ Input }
Application
{ Mice }
DiamondTouch
Wacom
...
...
...
...
...
Figure 5. The set of input devices in the tree
In conformance with the choice to make event commu-
nication the core mechanism of control in IntuiKit, the dy-
namicity of input devices is handled through events. In-
tuiKit has Set elements, that contain other elements; adding
or removing an element from a set triggers an event. By
subscribing to a Set as an event source, one can associate
an action to the addition or the removal. The set of all input
devices is accessible through the global name ’input’;
subscribing to it allows to be notified of all new devices
connected to the computer:
new Binding(-source => ’input’, -spec => ’add’, ...);
3.4 Hierarchical devices
So far we have been indiscriminate about the exact na-
ture of input devices, referring to multiple mice in the same
way as multiple pointers on a tabletop. However, there are
differences. When using mice, every of them is an input de-
vice of its own. When using a Wacom Intuos 2 tablet, which
is able to handle two styluses, the tablet itself is the device:
plugging it on the computer is a legitimate hot-plugging
event, and one may wish to subscribe to all events from the
tablet. Nevertheless, one would still be interested in being
notified when a new stylus is used on the tablet, and to sub-
scribe to events from this stylus. The same holds for a Di-
amondTouch and its four users; it gets even more complex
when one uses a tracking algorithm to distinguish among
multiple pointer from a same user on the DiamondTouch.
The IntuiKit tree provides the appropriate framework for
describing this. By considering devices as IntuiKit elements
that can contain other elements, one can build a model of
devices that takes into account all of the above situations:
devices are either atomic or made of subdevices, like in-
teraction components can be made of subcomponents. For
instance, a mouse is made of a locator and several buttons.
A Wacom Intuos 2 contains a set of pointers. A Diamond-
Touch contains a set of users, which each possibly contain
a set of pointers. One can subscribe to the apparition of a
new pointer by subscribing to the set of all devices in the
first case, or the set of pointers contained in the device in
the two other cases.
WACOM
RightSlider
LeftSlider
LeftButton1
RightButton4
{Pointer}
...
...
...
Pointer1
Pointer2
Figure 6. Internal structure of a Wacom device
This hierarchical view of devices not only matches the
underlying model of IntuiKit where all interactive compo-
nents can be made of sub-components. It also matches
theoretical models of input devices [3] and provides a use-
ful basis for dealing with device equivalence and combina-
tion when detecting and adapting the input configuration for
reusing components or applications.
4
4 Input configuration
The gist of software reuse is the ability to reuse a piece
of code or a component in contexts that did not need to be
explicit at the time of writing it. For instance, a sorting
function can be used to sort all types of lists. This usu-
ally requires a way to impose constraints on the context of
reuse. A type system is often used for that purpose in pro-
gramming languages. This also requires that the reusing
programmer be be proposed a way to adapt the original code
to a context that is not exactly compatible. Functional lan-
guages make it easy to create wrapper functions or to pass
functions as arguments to the original code, for instance.
With tabletops, the central reuse issue is currently that
of device structure and specification. There is no standard
for devices as there has been, explicitely or not, for mice
and keyboards. Whatever its actual protocol, a basic mouse
always consists of a locator and one or more two-state but-
tons. A tabletop device can distinguish users or not, de-
tect proximity or not, provide X and Y histograms of the
contact surface or contours of all contact points, etc. Fur-
thermore, these devices are still expensive and programmers
often have to simulate them with mice when developing ap-
plications. And finally, there is no reason why an interac-
tive component developed for a touch screen or a desktop
computer could not be reused on a tabletop. For all these
reasons, the ability to detect and adapt the input configu-
ration is important for reusing applications or components.
Concepts such as equivalence, adaptation, and complemen-
tarity [15] play important roles in this.
4.1 Device inspection and encapsulation
Detecting the input configuration available to an applica-
tion on a computer starts with being able to locate the de-
vices plugged onto the computer. We have seen earlier how
this can be done and how typing constraints can be applied.
But we have seen that there is no standard on how tabletops
are structured. In addition, several devices from the same
brand may have different features. For instance, a Wacom
Intuos 2 tablet accepts two styluses at a time, whereas a Wa-
com Cintiq has a similar protocol and can be managed with
the same driver but can only handle one stylus. Therefore,
in order to use a given device to an application, one needs
to access its structure to inspect it or to connect to it.
The component encapsulation mechanism in IntuiKit
provides support for this. The programmer of a component
can choose what properties and children of the component
are visible to the outside, and under what name. Program-
mers who use an element can list its exported properties,
children and events. It is also possible to directly access
them: events by directly subscribing, and properties and
children as follows:
$set = $dev->get (-child => ’pointers’);
$x = $pointer->get (-property => ’x’);
This allows application programmers to check that the ele-
ment they are using is as expected, and to access its parts
so as to subscribe from them or connect to them. It is also
planned for the future to check that the sequence of events
that an element may emit (and declared as a regular lan-
guage for instance) is compatible with the input language
of a component that subscribes to it, as in [1]. This would
provide an equivalent of type checking for the event-driven
architecture of IntuiKit, and would help detect if a given
device can be used with a given application.
Accessing the internal structure of a device, when it ex-
ports it, also allows to perform source selection. On a Wa-
com Intuos 2 or a DiamondTouch, if one is interested in
a given stylus or user one can directly subscribe to events
from this stylus or user rather than using a complex event
specification or subscribing to all events and performing a
test afterward. Finally, one can use component encapsula-
tion to masquerade a device as another type of device. For
instance, given a DiamondTouch device, one can create a
component that contains it as the only child, and that ex-
ports only the events and properties from the child of the
DiamondTouchthat represent one user. The result is a com-
ponent that emulates a touch screen.
4.2 Source filtering
Encapsulation works when the equivalence between de-
vices can be obtained by simple renamings and information
hiding. However, most often the situation is more complex:
to make a given device compatible with another, one often
needs to combine event attributes, to memorise information
from one event to the next, or to perform computations. For
instance, the locator in a mouse is a relative device. To make
the mouse compatible with a component that expects events
from a touch screen, one needs to apply an acceleration law
to translations of the mouse, to store an absolute position
that is incremented at each move, to apply a scaling func-
tion, and to crop the result so as to stay within the bounding
box of the screen. To simulate a multi-user touchscreen with
a DiamondTouch, one needs to compute the barycentres of
the X and Y histograms it provides for each user. One even
sometimes needs to combine several devices to simulate an-
other, for instance four mice to simulate a DiamondTouch.
The architecture proposed for this in IntuiKit is source
filtering. It uses the fact that all IntuiKit elements can be
event sources to have an organisation similar to data-flow
connections: an element stands as a front end for another
element and acts as a relay for event subscriptions. Filter-
ing can be combined with encapsulation: a filter can be a
component that encapsulates the original source, thus hid-
ing it from the rest of the application. In all cases, the filter
element has its own event specification format, which al-
lows it to give its own version of what types of events are
5
available. For instance, a filter for a DiamondTouch may
provide the subscription language of a mouse if it applies
the barycentre computation mentioned above. Some filters
just relay event subscriptions and do not perform any opera-
tion on events: they just provide another way of subscribing.
But most filters apply transformation to events: renaming
of event attributes, or computations to create new attributes.
Those transformations are performed in an action similar to
the Watcher’s action in a data-flow element.
Filtering is the mechanism used in IntuiKit to account
for gesture recognition: the positions provided in events by
pointer devices are memorised in the filter, then a classi-
fication algorithm is applied when the button or pressure
is released. Filtering also accounts for picking, the opera-
tion in which each pointer event is associated to a graphi-
cal object based on geometrical considerations, and which
allows to subscribe to pointer events by addressing graph-
ical objects themselves. Having this mechanism explicit is
important in multi-touch systems: it allows all pointers to
be associated with the graphical scene, by connecting them
to the picking filter as soon as they are detected. Filter-
ing is also used to perform input configuration. As already
mentioned, a DiamondTouch can be filtered by applying a
barycentre computation to its events so as to simulate the
behaviour of a mouse or touch screen. It can also be filtered
by using a tracking algorithm that extracts multiple contact
points from the data provided by the DiamondTouch, thus
providing into a multi-user multi-touch source.
4.3 Remote devices
Interaction designers sometimes wish to access input de-
vices through inter-process communications. This may be
because the device is actually remote, for instance when ex-
perimenting with two remote tables coupled with a video-
conferencing system [7]. This may be because there is no
driver available yet for a given device on the target plat-
form. Or this may be because a given application has been
built without support for changing the configuration, and
the configuration needs to be adapted from the outside. For
these situations, IntuiKit’s ability to transport events over
message buses such as the Ivy software bus [2] or Open
Sound Control [18] is appropriate. One can build, with
IntuiKit or with their tool of choice, a software agent that
implements IntuiKit’s text protocol for input devices. The
software agent can represent the actual device or use source
filtering to simulate the device expected by the application.
5 Interacting in parallel
The device addressing and input configuration mecha-
nisms in IntuiKit provide programmers with a flexible way
of accessing and managing multiple input devices. How-
ever, the programmer’s main goal is to implement interac-
tion styles and not only access devices. What makes multi-
ple input special regarding interaction is obviously the abil-
ity to have several interactions in parallel, and sometimes to
combine several input flows to produced synergistic interac-
tion. As IntuiKit is aimed at multimodal interaction, we will
see how these possibilities are built in its core mechanisms.
The first requirement for interacting in parallel is that the
programming framework provide a way of adding new in-
put sources that can emit events asynchronously. Most mod-
ern frameworks or toolkits have this feature, either through
a multi-threading system or through an extensible “main
loop”. IntuiKit has an extensible main loop that can han-
dle in an asynchronous way any input source managed by
the underlying operating system.
Then the software architecture promoted by the frame-
work must allow programmers to build interactors that
can be manipulated in parallel. The event communication
model is intrisically parallel, but any incitation to store in-
teraction state globally, for instance in global variables, is
fatal. It is even worse if the framework itself proposes inter-
actors that do store state globally. The architecture proposed
by IntuiKit, based on a tree of components that contain
properties and communicate through events, is a strong in-
citation to building programs as a collection of components
that store their state locally and behave as parallel agents.
When dialogue control requires that some state is shared
by several components, such as the state of a dialogue box,
the hierarchical organisation of the IntuiKit tree incites to
manage this by storing the state in a parent common to all
components concerned; here, for instance, the dialogue box
would managed the “global” state and its children (buttons
for instance) would manage their local states and commu-
nicate with it through events that change its “global” state.
Elements such as IntuiKit’s FSMs provide help for creat-
ing such locally managed behaviours, at different levels in
the tree if need be. By cloning a component one clones all
its subcomponents and properties, and thus several identical
components will be able to work in parallel.
Finally, one sometimes needs to merge input flows:
zooming with two fingers, button that is only triggered
when two users press it together, etc. The two main ways
of describing interactive behaviours in IntuiKit provide for
such combined behaviours. On the one hand, data flowscan
come from two origins and end up connected to different
properties of the same element, like in the Whizz or ICon
toolkits [4, 9]. This allows for instance to control one angle
of a rectangle with one finger and the opposed angle with
another finger. On the other hand, the transitions of finite
state machines can be labelled with any event specification
from any event source. This allows to build FSMs that rely
on events from different pointers, for instance a three-state
button that is fully pressed only when two fingers have been
pressed on it.
6
6 Example application
IntuiKit is used in several research or commercial
projects using tabletops. We describe here the Multi-Actor
Man Machine Interface (MAMMI) project carried out for
Eurocontrol in the domain of air traffic control. The project
aims at designing a large horizontal surface where two or
more controllers could share tools and data, exchange in-
formation (figure 7). The sought benefit is for them to be
able to adjust their repartition of tasks in real-time so as to
adapt to situations and improve their overall performance.
Figure 7. A tabletop for air traffic control
Two hardware devices have been investigated: the Dia-
mondTouch and a prototype built by a European company.
Both have input resolutions that enable to test realistic so-
lutions, and can be plugged to display devices that support
rich graphics. Each has advantages and drawbacks regard-
ing interaction. The DiamondTouch distinguishes between
up to four users. The other device detects an indefinite num-
ber of inputs represented by sets of points.
The project team was composed of a graphic designer,
UI designers and hardware experts. The model-based archi-
tecture of IntuiKit allowed us to applied iterative and con-
current design. First, participatory design led to producing
paper prototypes that explored design variations based on
the features of each device: with and without user identi-
fication, with and without multi-touch for each user. The
paper prototypes then served as a reference to split the in-
terface into a tree of components that represent the software
architecture of the application as well as its graphical struc-
ture. The tree then served as a contract between all project
actors, especially between UI designers and the graphic de-
signer. From then on, team members started to work inde-
pendently. The hardware expert exploited IntuiKit’s ability
to handle devices as remote sources: he produced a software
agent for handling the prototype device remotely, because
no driver was available on the target platform. The graphic
designer produced graphical elements using a professional
drawing tool (Figure 8).
Figure 8. The designer’s work
Meanwhile, the UI designers programmed the interac-
tion. For each component, they defined the behaviours and
connection to the functional core. Because they used mice
for testing, they used IntuiKit’s device encapsulation mech-
anism to emulate the target devices with multiple mice. Us-
ing device inspection, their were able to test the two de-
sign variants: the application checks if user identification
is available and adapts the way it handles conflicts. If the
device does not identify users, the application solely relies
on existing social protocols to prevent and resolve conflicts.
With user identification, the application activates software
Figure 9. Different feedback for each user
coordination policies, such as access permission or explicit
sharing, and provides different feedback for each user (Fig-
ure 9) to improve mutual awareness. They also used a ges-
ture recognition filter to implement gestures in the interface.
Finally, after a period of graphic design, test and inte-
gration, the final application was operational and able to
run with multiple mice, a DiamondTouch, and the proto-
type device. Switching devices is just a matter of changing
a reference in a configuration file.
7 Related work
Interaction libraries such as DiamondSpin [17], or the
Grouplab DiamondTouch Toolkit [8] have been developed
7
for tabletop interaction, but they are focused on one partic-
ular hardware or on graphical features such as rotation.
The Input Extension to the X Window Server proto-
col [10] provides inspection of devices, but no support for
dynamicity, input configuration and interaction description.
More recently, the TUIO protocol [13] addressed tabletops
and tangible user interfaces, with a low level of asbtrac-
tion. Multiple input has been addressed in the Whizz [4]
and ICon [9] toolkits, using the data-flow paradigm to sup-
port interaction description. ICon addresses the issues of
input configuration, by allowing users to edit the data-flow
graph. However, these toolkits do not address the dynamic-
ity of devices and the data-flow paradigm alone sometimes
makes state-based interaction complex to handle.
Concurrency in user interaction tools has been studied
as early as in Sassafras [11]. The architecture model in
IntuiKit also has some similarities with interactors in Gar-
net [14] or with VRED [12]. Its originality lies in the
model-driven architecture, the unifying tree structure, and
the unification of events and data-flow.
8 Conclusion
In this article, we have described how the IntuiKit en-
vironment supports device adressing and detection, input
configuration and the description of parallel interaction in
tabletop systems. Beyond the mere ability to produce a
given type of interaction, what makes an interaction style
available to the large public of users is the ability to man-
age this style according to basic software engineering crite-
ria: reusability, encapsulation, orthogonality. The IntuiKit
model was extended to support tabletops without having to
introduce additional concepts. This strongly suggests that
the properties already demonstrated by IntuiKit in terms of
reusability, customisation and concurrent engineering are
transferred to application development for tabletops.
Acknowlegements
This work was supported by the French Agence Nationale de la
Recherche through project DigiTable, and by Eurocontrol through
project Mammi. The event source model was designed with Pierre
Dragicevic and David Thevenin. The tracking algorithm men-
tioned in section 4 was designed by François Bérard at LGI/IIHM
and has not yet been published. Carole Dupré and Sébastien Meu-
nier have helped with examples.
References
[1] J. Accot, S. Chatty, S. Maury, and P. Palanque. Formal trans-
ducers: models of devices and building bricks for the design
of highly interactive systems. In Proc. of the 4th Eurograph-
ics DSVIS workshop (DSVIS’97). Springer-Verlag, 1997.
[2] M. Buisson, A. Bustico, S. Chatty, F.-R. Colin, Y. Jestin,
S. Maury, C. Mertz, and P. Truillet. Ivy: un bus logiciel au
service du développement de prototypes de systèmes inter-
actifs. In Proc. of IHM’02, pp. 223–226. ACM Press, 2002.
[3] S. Card, J. Mackinlay, and G. Robertson. A morphological
analysis of the design space of input devices. ACM Trans.
on Office Information Systems, 9(2):99–122, 1991.
[4] S. Chatty. Extending a graphical toolkit for two-handed in-
teraction. In Proceedings of the ACM UIST, pages 195–204.
Addison-Wesley, Nov. 1994.
[5] S. Chatty. Programs = data + algorithms + architecture. Con-
sequences for interactive software. In Proceedings of the
2007 joint conference on Engineering Interactive Software.
Springer-Verlag, Mar. 2007.
[6] S. Chatty, S. Sire, J. Vinot, P. Lecoanet, C. Mertz, and
A. Lemort. Revisiting visual interface programming: Creat-
ing GUI tools for designers and programmers. In Proceed-
ings of the ACM UIST. Addison-Wesley, Oct. 2004.
[7] F. Coldefy and S. Louis-dit-Picard. Digitable: an interactive
multiuser table for collocated and remote collaboration en-
abling remote gesture visualization. In Proceedings of the
4th IEEE workshop on projector-camera systems, 2007.
[8] R. Diaz-Marino, E. Tse, and S. Greenberg. The grouplab
diamondtouch toolkit. In Video Proceedings of the ACM
CSCW 2004 conference, 2004.
[9] P. Dragicevic and J.-D. Fekete. Support for input adaptabil-
ity in the icon toolkit. In Proceedings of the Sixth Inter-
national Conference on Multimodal Interfaces (ICMI’04),
pages 212–219. ACM Press, 2004.
[10] P. Ferguson. The X11 Input extension: Reference pages.
The X Resource, 4(1):195–270, 1992.
[11] R. Hill. Supporting concurrency, communication and syn-
chronization in human-computer interaction - the Sassafras
UIMS. ACM Trans. on Graphics, 5(2):179–210, 1986.
[12] R. Jacob, L. Deligiannidis, and S. Morrison. A software
model and specification language for non-WIMP user in-
terfaces. ACM Trans. on Computer-Human Interaction,
6(1):1–46, 1999.
[13] M. Kaltenbrunner, T. Bovermann, R. Bencina, and
E. Costanza. TUIO: A protocol for table-top tangible user
interfaces. In Proceedings of Gesture Workshop 2005.
[14] B. A. Myers. A new model for handling input. ACM Trans.
on Office Information Systems, pages 289–320, July 1990.
[15] L. Nigay and J. Coutaz. Multifeature systems: The CARE
properties and their impact on software design intelligence
and multimodality. In J. Lee, editor, Multimedia Interfaces:
Research and Applications, chapter 9. AAAI Press, 1997.
[16] X. Ren and S. Moriya. Efficient strategies for selecting small
targets on pen-based systems: an evaluation experiment for
selection strategies and strategy classifications. In Proceed-
ings of the EHCI conference, IFIP Transactions series, pages
19–37. Kluwer Academic Publishers, 1998.
[17] C. Shen, F. D. Vernier, C. Forlines, and M. Ringel. Dia-
mondspin: an extensible toolkit for around-the-table interac-
tion. In Proceedings of the CHI’04 conference, pages 167–
174. ACM Press, 2004.
[18] M. Wright, A. Freed, and A. Momeni. OpenSound Con-
trol: State of the art 2003. In Proceedings of the NIME-03
conference, 2003.
8
... There are examples of tabletops [22,23] where collective work is carried out on the tabletop itself, even when work teams are geographically distant through network communication using other IMT and/or computers [24,25,26], thus, IMT are not restricted to small groups nor isolated environments. The use of natural interaction methods allows complex operations to be carried out by means of actions which are easy to learn and execute for common people, because they nd them alike to other gestures of their everyday life, though the meaning of these actions could be very complex and dicult to specify in other ways. ...
... Ginn proposed a solution to adapt old applications to new ways of interaction, but it still needs to have the application in focus, and the old interface in which events are injected. From this case, we felt the importance of including pieces allowing applications to evolve in the future to support new means of interaction as referred by Chatty [4] than keyboard and mouse events. Ginn could do a better job if it were able to trigger, by a certain rule or wish, an internal function of the application. ...
Conference Paper
Full-text available
Although UNIX commands are simple, they can be combined to accomplish complex tasks by piping the output of one command, into another input. With the invasion of GUI applications, we have lost this ability to chain many small tools in order to accomplish a composite task or the possibility to script applications. As such we have become imprisoned into the interface as designed by the developer. Most applications are also designed to be used through a keyboard and a mouse even if the user has newer input devices. In this paper, we demonstrate how we can remove most of these limits and provide the possibility to script, adapt and automate GUI applications using a software bus in Linux operating system. We provide implemented proof-of-concept cases in addition to conceptual scenarios showing the possibilities arising from the approach.
... Some parts of direct manipulation, and more generally low level perception-action coupling, are best described as connections between properties of objects. This has led researchers to propose data-flow as a control mechanism [16, 19, 31, 58]. Some also saw a link with data iteration and proposed to combine this with functional programming. ...
Conference Paper
Full-text available
Building interactive software is a notoriously complex task, for which many programming tools have been proposed over the years. Although the research community has sporadically identified usability requirements for such tools, tool proponents rarely document their design processes and there is no established reference for comparing tools with requirements. Furthermore, the design of most tools is strongly influenced by the design of their underlying general purpose programming languages. These in turn were designed from their own set of little-documented requirements, which adds to the confusion. In this paper, we provide a review and classification of the requirements and properties expected of interactive development tools. We review how designers of APIs and toolkits for interaction-oriented systems set the usability requirements for the programming interface of their systems. We relate our analysis to other studies in related domains such as end-user programming, natural programming, and teaching. 1
... The DiamondTouch [3] is a tabletop device that offers ease of setup, robustness, fine spatial and temporal resolution, limited pressure required for touch detection, excellent touch threshold (i.e. the contact is generally detected as expected by users), and the unique ability to associate touch locations to identified users. This makes this device a frequently used research tool [2,5,7,9,10,12,16]. However, we believe that its use is bounded by a strong limitation: the Diamond-Touch is designed for a single contact point per user. ...
Conference Paper
Full-text available
The DiamondTouch is a widely used multi-touch surface that offers high quality touch detection and user identification. But its underlying detection mechanism relies on two 1D projections (x and y) of the 2D surface. This creates ambiguous responses when a single user exercises multiple contacts on the surface and limits the ability of the DiamondTouch to provide full support of common multi-touch interactions such as the unconstrained translation, rotation and scaling of objects with two fingers. This paper presents our solution to reduce this limitation. Our approach is based on a precise modeling, using mixtures of Gaussians, of the touch responses on each array of antennas. This greatly reduces the shadowing of the touch locations when two or more fingers align with each other. We use these accurate touch detections to implement two 1D touch trackers and a global 2D tracker. The evaluation of our system shows that, in many situations, it can provide the complete 2D locations of at least two contacts points from the same user.
... A tabletop allows users to interact face to face, acting as a mediator for communication and sharing data items, promoting a cooperative working environment for the completion of a common task. There are examples of tabletops [6,21] where collective work is carried out on the tabletop itself, even when work teams are geographically distant through network communication using other tabletops and/or computers [26,16,20]. ...
Conference Paper
Full-text available
An efficient and stable skeletonization consisting of a Voronoi skeletonization following by a two step pruning is presented. The first pruning step removes Voronoi edges crossing the shape boundary. The second follows a Discrete Curve Evolution approach. Both pruning steps can be done very efficiently because entire Voronoi segments are pruned based on tests on points. The algorithm works in realtime and could be used in a gesture recognition interface for tabletop interfaces.
Thesis
Full-text available
Dans le domaine de la reconnaissance gestuelle, les mouvements humains sont observés, reconnus et transformés en primitives fonctionnelles pour contrôler un système ou manipuler un objet. Les chercheurs en Interaction Homme-Machine ont plus particulièrement étudié le suivi des gestes réalisés après le contact avec l'objet à manipuler (geste apparent). Nous montrons dans cette thèse qu'intéragir et manipuler un objet 3D est un processus plus large qui commence par la vision, qui inclut le rapprochement, la saisie, la manipulation et qui se termine avec la "consommation des évènements" dans les applications cibles. Dans cette thèse, nous avons collecté et organisé un état de l'art sur l'interaction Homma-Machine provenant de différents points de vue (visions, neuropsychologie, de saisie et techniques). Nous avons créé un système qui suit les mouvements des utilisateurs sur une table mais également au dessus de la surface à partir d'un nuage de points 3D. Nous avons spécifié des cas d'activités gestuelles et nous les avons utilisés dans deux applications. Nous avons aussi proposé une nouvelle façon de créer des applications adaptables aux nouvelles formes d'interactions en se basant sur un bus logiciel.
Conference Paper
In this paper we describe how an executable model of interactive software can be exploited to allow programmers or specifiers to express properties that will be automatically checked on the components they create or reuse. The djnn Framework relies on a theoretical model of interactive software in which applications are described in their totality as hierarchies of interactive components, with no additional code. This includes high level components, but also the graphics, behaviors, computations and data manipulations that constitute them. Because of this, the structure of the application tree provides significant insights in the nature and behavior of components. Pattern recognition systems can then be used to express and check simple properties, such as the external signature of a component, its internal flows of control, or even the continued visibility of a component on a display. This provides programmers with solutions for checking their components, ensuring non-regression, or working in a contract-oriented fashion with other UI development stakeholders.
Conference Paper
Full-text available
Les tablettes tactiles représentent une première étape dans l'évolution de la forme des ordinateurs depuis le poste de travail graphique vers une plus grande variété. Il faut adapter les systèmes d'exploitation à une plus grande variabilité des moyens d'entrée, et à la remise en cause d'hypothèses de base telles que la présence d'un clavier ou d'un unique pointeur de désignation. Cela demande donc de multiples évolutions dans Linux, qui doit continuer à faire fonctionner les applications existantes. La gestion des entrées, dans le noyau et le serveur X, est modifiée pour tenir compte de flux d'information plus complexes. La reconnaissance de gestes est introduite, tant pour simuler le clavier ou la souris que pour proposer de nouveaux styles d'interaction. De nouvelles conventions d'interaction adaptées aux tablettes sont en cours de définition dans la distribution Ubuntu. Des modifications plus profondes de la gestion des entrées pour préparer les prochaines évolutions sont à l'étude.
Article
The present work is intended for showing the architectural impact in the use of the WIMP components present in the graphic user interface (GUI) using the SVG technology. We have made several experiments in a client server environment and we measured the CPU utilization, memory usage and response time when SVG-based graphical component are used in WEB applications. We use three navigators (Internet Explorer, Firefox and Opera), and we analyzed as those metrics changes when single and complex images are used, and we note a good behavior of the SVG format since our test obtained a confidence level superior to 95%.
Conference Paper
Multi-touch and tabletop input paradigms open novel doors for post-WIMP (Windows, Icons, Menus, Pointer) user interfaces. Developing these novel interfaces and applications poses unique challenges for designers and programmers alike. We present PyMT (Python Multi-Touch), a toolkit aimed at addressing these challenges. We discuss PyMT's architecture and sample applications to demonstrate how it enables rapid development of prototypes and interaction techniques while being accessible to novice programmers and providing great flexibility and creative freedom to advanced users. We share experiences gathered in the open source development of PyMT to explore design and programming challenges posed by multi-touch tabletop and post-WIMP interfaces. Specifically, we discuss changes to the event model and the implementation of development and debugging tools that we found useful along the way.
Conference Paper
Full-text available
In this article we present Tuio, a simple yet versatile protocol designed specifically to meet the requirements of table-top tangible user interfaces. Inspired by the idea of interconnecting various existing table interfaces such as the reacTable*, being developed in Barcelona and the tDesk from Bielefeld, this protocol defines common properties of controller objects on the table surface as well as of finger and hand gestures performed by the user. Currently this protocol has been implemented within a fiducial marker-based computer vision engine developed for the reacTable* project. This fast and robust computer vision engine is based on the original d-touch concept, which is also included as an alternative to the newer fiducial tracking engine. The computer vision framework has been implemented on various standard platforms and can be extended with additional sensor components. We are currently working on the tracking of finger-tips for gestural control within the table interface. The Tuio protocol has been implemented using OpenSound Control and is therefore usable on any platform supporting this protocol. At the moment we have working implementations for Java, C++, PureData, Max/MSP, SuperCollider and Flash.
Conference Paper
Full-text available
Producing formal descriptions of low level interaction is necessary to completely capture the behaviour of user interfaces and avoid unexpected behaviour of higher level software layers. We propose a structured approach to formalising low level interaction and scaling up to higher layers, based on the composition of transducers. Every transducer encapsulates the behaviour of a device or software component, consumes and produces events. We describe transducers using a formalism based on Petri nets, and show how this transducer-based model can be used to describe simple but realistic applications and analyse unexpected defects in their design. We also identify properties that are meaningful to the application designer and users, and show how they can be formally checked on a transducer-based model of the application.
Conference Paper
Full-text available
DiamondSpin is a toolkit for the efficient prototyping of and experimentation with multi-person, concurrent interfaces for interactive shared displays. In this paper, we identify the fundamental functionality that tabletop user interfaces should embody, then present the toolkit's architecture and API. DiamondSpin provides a novel real-time polar to Cartesian transformation engine that has enabled new, around-the-table interaction metaphors to be implemented. DiamondSpin allows arbitrary document positioning and orientation on a tabletop surface. Polygonal tabletop layouts such as rectangular, octagonal, and circular tabletops can easily be constructed. DiamondSpin also supports multiple work areas within the same digital tabletop. Multi-user operations are offered through multi-threaded input event streams, multiple active objects, and multiple concurrent menus. We also discuss insights on tabletop interaction issues we have observed from a set of applications built with DiamondSpin.
Conference Paper
Full-text available
We present DIGITABLE, an experimental platform we hope lessen the gap between co-present and distant inter- action. DIGITABLE is combining a multiuser tactile in- teractive tabletop, a video-communication system enabling eye-contact with real size distant user visualization and a spatialized sound system for speech transmission. Based on a robust computer vision module, it provides a fluid gesture visualization of each distant participant whether he/she is moving virtual digital objects or is intending to do so. Re- mote gesture visualization contributes to the efficiency of distant collaboration tasks because it enables the coordina- tion among participant's actions and talk. Our main contri- bution addresses the development and the integration of ro- bust and real time projector-camera processing techniques in Computer Supported Cooperative Work.
Conference Paper
Full-text available
In this paper, we introduce input adaptability as the ability of an application to exploit alternative sets of input devices effectively and offer users a way of adapting input interaction to suit their needs. We explain why input adaptability must be seriously considered today and show how it is poorly supported by current systems, applications and tools. We then describe ICon (Input Configurator), an input toolkit that allows interactive applications to achieve a high level of input adaptability. We present the software architecture behind ICon then the toolkit itself, and give several examples of non-standard interaction techniques that are easy to build and modify using ICon's graphical editor while being hard or impossible to support using regular GUI toolkits.
Conference Paper
Full-text available
Involving graphic designers in the large-scale development of user interfaces requires tools that provide more graphical flexibility and support efficient software processes. These requirements were analysed and used in the design of the TkZ-inc graphical library and the IntuiKit interface design environment. More flexibility is obtained through a wider palette of visual techniques and support for iterative construction of images, composition and parametric displays. More efficient processes are obtained with the use of the SVG standard to import graphics, support for linking graphics and behaviour, and a unifying model-driven architecture. We describe the corresponding features of our tools, and show their use in the development of an application for airports. Benefits include a wider access to high quality visual interfaces for specialised applications, and shorter prototyping and development cycles for multidisciplinary teams.
Conference Paper
Full-text available
Ce document présente l'expérience acquise au cours du développement et de l'utilisation du bus logiciel Ivy, dans un cadre de prototypage de systèmes interactifs pour le contrôle du trafic aérien. Après une description du principe de fonctionnement de ce système, nous verrons comment cet outil a pu influer sur notre approche de problématiques IHM spécifiques comme la multimodalité, l'interaction répartie ou la mobilité. L'accent est porté sur les services rendus par ce bus pour le développement rapide de systèmes interactifs " légers ", facilement intégrables dans un banc de démonstration et basés sur la logique des langages de script. En présentant cet outil que nous utilisons depuis maintenant cinq ans, nous espérons partager ici une expérience utile pour la conception de futures architectures de systèmes interactifs à des fins de recherche prospective.
Chapter
This chapter is concerned with the usability and implementation of multifeature systems such as multimodal and multimedia user interfaces. We show how the usability of such systems can be characterized in terms of the relations they are able to maintain between the interaction languages and the I/O devices they support. Interaction language and devices are the resources and knowledge that the system and the user need to share to accomplish a task successfully. Equivalence, assignment, redundancy, and complementarity of interaction languages and devices form an important set of relations relevant to usability assessment and software design. We then depart from the HCI perspective to consider the implications of such properties on software design and technical solutions: we present PAC-Amodeus, a software architecture model, in conjunction with a generic fusion mechanism for developing multifeature systems. We highlight how PAC-Amodeus and the fusion mechanism support the above four properties.
Conference Paper
This paper describes six strategies for selecting small targets on pen-based systems. We have classified the strategies into strategy groups according to their characteristics. An experiment was conducted comparing selection time, error rate and user preference ratings for the six selection strategies. We focused our attention on the three variables associated with pen-based selection: size, direction and distance to target. Three target sizes, eight pen-movement-directions and three pen-movement-distances were applied to all six strategies. Experimental results show that the best strategy was the “Landon2” strategy when the strategies were evaluated individually, and the best strategy group was the “In-Out” strategy group when evaluated in groups. Analyses also showed that differences between strategies were influenced by variations in target size, however, they were not influenced by pen-movement-distance and pen-movement-direction. Analyses of grouped strategies produced the same results. Ideas for future research are also presented.
Conference Paper
This article analyses the relationships between software architecture, programming languages and interactive systems. It proposes to consider that languages, like user interface tools, implement architecture styles or patterns aimed at particular stakeholders and scenarios. It lists architecture issues in interactive software that would be best resolved at the language level, in that conflicting patterns are currently proposed by languages and user interface tools, because of differences in target scenarios. Among these issues are the contra-variance of reuse and control, new scenarios of software reuse, the architecture-induced concurrency, and the multiplicity of hierarchies. The article then proposes a research agenda to address that problem, including a requirement-and scenario-oriented deconstruction of programming languages to understand which of the original requirements still hold and which are not fully adapted to interactive systems.