vector field
resulting sliding forces Figure 2.16: Vector field inside tags and the re- sulting sliding forces (from [Tis11]).
The result is that the tags that cover other tags will slide off them and eventually fall into a free space. In order to take the flights into ac- count so that tags do not cover them, all flights should be rendered in the offscreen buffer be- fore running the algorithm above.
The number of operations isO(n)with n the number of tags and flights, and the memory isO(1). Though growing linearly, the number of operations can be large since the algorithm requires a tesselation of each shape and a num- ber of additions and multiplications for each pixel. The memory requirements are constant and depend on the level of the discretization.
This work is another example of algorithm design aiming at improving the usability of the specification and the implementation of interactive code. Compared to classical algorithms, this algorithm trades calculus and memory for conceptual simplicity. This has several advantages:
• it is simple to understand and implement; this should facilitate comprehension by program- mers and thus foster maintainability, dissemination and reuse by third parties;
• it can cope with arbitrary complex shapes together with any transformation on the shapes (translation, scale, rotation);
• it is heavily parallelizable and can benefit from the use of graphic cards and their massive memory and parallel computation power.
Christophe Hurter did implement a first algorithm according to my description, thus partially demonstrating its validity. Benjamin Tissoires managed to implement a version based on geometry, vertex and pixel shaders [Tis11]. His version could display 300 tags on a 1600x1050 screen powered by an NVIDIA 8800MGTX (high-end in 2008) with a refresh rate of 95fps, thus demonstrating its performance.
2.6
Summary
The main research problem of the “Interactive Graphics Development” topic is to invent new ways of programming and specifying interactive graphics that are more usable from a programming and software engineering point of view.
The two principles I followed to achieve this goal were to...:
• simplify the description of the structure and behavior of interactive graphics
• rely on tools to generate executable code, running sufficiently fast for interactive purposes.
I invented the MDPC architecture that relies on Picking views and Inverse transforms. This improves the modularity of programs [CBNP07] and improves the usability of the specification and the implementation of interactive graphics [Con11] thanks to the simplification of description.
In order to improve the performance of rich-graphic software using this architecture, I explored the concepts of graphical compilers and led a PhD thesis on the topic [Tis11]. The thesis explored the approach and contributed both in terms of description simplification [TC08] and of software engineering facilitation [TC11].
Finally, I have applied the simplification of description principles to the problem of shape covering avoidance. Together with my students, we have described and implemented this algorithm by relying on new efficient hardware support for parallelized and memory-based algorithms [Tis11].
Chapter
3
Interactive graphics design
3.1
Research Problems
One of the main topics of research in HCI, is the design and assessment of so-called “interaction techniques”. An interaction technique is the fusion of input and output, consisting of all software and hardware elements, that provides a way for the user to accomplish a task [Tuc04].
From Wikipedia http://en.wikipedia.org/wiki/Interaction_technique:
From the user interface designer’s perspective, an interaction technique is a well-defined solution to a specific user interface design problem. Interaction techniques as conceptual ideas can be refined, extended, modified and combined. For example, contextual menus are a solution to the problem of rapidly selecting commands. Pie menus are a radial variant of contextual menus. Marking menus combine pie menus with gesture recognition.
Research in this area consists in inventing, designing and assessing new interaction techniques. One of the outcomes is to provide User Experience practitioners with new means of interacting that make their end-users more efficient, more effective and more satisfied. The challenges are therefore to:
• invent a new combination of input and output
• design the right combination of input and output that effectively makes the interaction technique usable. Though this seems simple, it is rather difficult: very subtle phenomenas involving human perception and action capabilities can have an important impact on end- user performance and satisfaction. Even if two interaction techniques differ slightly, their usability can differ substantially.
• assess the interaction technique usability, through an experimentation. The difficulty is to devise an appropriate experiment (or plan d’expérimentation in French) that shows that one interaction technique is usable or better than another.
This implies that each interaction technique be clearly focused on well-described concerns. It should be sufficiently described to be replicated and supported by evidence that they fulfill its expectations.
I have explored the design and assessment of multiple interaction techniques, especially those involving graphics:
• assessing whether expanding targets help beat Fitts’ law
• designing and assessing animation and sound to improve situation awareness
• designing interaction techniques with numerous tangled lines to support Air Traffic analysis • designing and assessing multi-user interaction to support Air Traffic Control, a synchronous
muli-user activity
• designing tangible interactions to keep the tangible properties of the current Air Traffic Control environment
• identifying and defining structural interaction, a new interaction paradigm, and designing and assessing interaction techniques for this type of interaction.