in|situ| Lab - Log In

Une version en français du sujet de stage est également disponible.

Event Builder - Creating a tool to ease the design of effective gesture recognizers

Internship proposal at in|situ|

Advisors: Caroline Appert and David Bonnet

Presentation slides

Description

User events, that we define as recognized user activity, are one of the buildings bricks of human-computer interaction. They are produced by recognition algorithms and are used to trigger commands. They can be grouped into vocabulary of events in which they need to be mutually compatible, both for the user (he must be able to consciously perform the actions for each event) and the system (it needs to distinguish the different user actions to produce the adequate event).

As discrete sensors (buttons, keys, switches, etc.) offer little ambiguity regarding the event to produce, this is not the case for continuous sensors which are predominant on mobile devices (touchscreen, accelerometer, gyroscope, microphone, camera, compass, light sensor, pressure sensor, etc.) as their range of values can capture a large amount of user actions and thus make the creation of appropriate recognizers very challenging.

The goal of this internship is to participate in building a tool (code-named Event Builder) that will ease the design of effective recognizers. By effective, we mean that it will not confound the newly introduced user action with existing ones and that it will not need any user training nor calibration.

Among the main features, this tool will allow the visualization of live and recorded sensor data and provide a quick iteration process where the testing and calibration phases are merged and done in real-time. Another interesting aspect of this tool is that it will only be operated by direct manipulation through either mouse or touch input. Therefore, algorithms are not written textually by hand but extracted from the captured data through visual transformations. Finally, to handle the support of different platforms and to provide maximum flexibility, its development will target web browsers and leverage all the expressivity they provide.

Depending on the profile and the duration of the internship, it is possible to focus on one or several of the following aspects:

  • a visualization part consisting in prototyping interesting representations of various data sensors ;
  • a technical part that pushes the constraints of live editing and debugging across different devices ; and
  • a design part in which a visual vocabulary and a user interface will be iteratively built.

Required skills

Motivated, open-minded, general knowledge about human-computer interaction, good programming habits, some experience in web development.

References

  1. Victor, B. Learnable Programming: Designing a programming system for understanding programs. (2012)
  2. Ashbrook, D. and Starner, T. MAGIC: a motion gesture design tool. Proc. CHI '10, ACM (2010), 2159–2168.
  3. Hartmann, B., Abdulla, L., Mittal, M., and Klemmer, S.R. Authoring sensor-based interactions by demonstration with direct manipulation and pattern recognition. Proc. CHI '07, ACM (2007), 145–154.
  4. Kin, K., Hartmann, B., DeRose, T., and Agrawala, M. Proton++: a customizable declarative multitouch framework. Proc. UIST '12, ACM (2012), 477–486.
  5. Long, A.C., Landay, J.A., and Rowe, L.A. Quill: a gesture design tool for pen-based user interfaces. Technical Report, 2001.
  6. Lü, H. and Li, Y. Gesture coder: a tool for programming multi-touch gestures by demonstration. Proc. CHI '12, ACM (2012), 2875–2884.
  7. Williamson, J. and Murray-Smith, R. Rewarding the original: explorations in joint user-sensor motion spaces. Proc. CHI '12, ACM (2012), 1717–1726.

Event Builder - Réalisation d'un outil facilitant la création de reconnaisseurs de gestes efficaces

Proposition de stage à in|situ|

Encadrants: Caroline Appert et David Bonnet

Diapos de présentation

Description

Les événements utilisateur, que nous définissons comme la reconnaissance par le système d'une activité de l'utilisateur, constituent l'une des briques de base de l'interaction homme-machine. Ils sont produits par des algorithmes de reconnaissance et utilisés pour déclencher des commandes. Ils peuvent être regroupés en vocabulaires d'événements au sein desquels ils doivent être compatibles entre eux, à la fois pour l'utilisateur (il doit être capable de réaliser les actions correspondant à chaque événement) et le système (il doit pouvoir distinguer les différentes actions de l'utilisateur afin de produire l'événement correspondant).

Si les capteurs à entrée discrète (bouton, touche de clavier, switch, etc.) offrent que peu d'ambiguïté sur la nature de l'événement à produire, il en va autrement pour les capteurs à entrée continue qui sont prédominants sur les appareils mobiles (écran tactile, accéléromètre, gyroscope, microphone, caméra, boussole, capteur de luminosité, de pression, etc.), où l'espace de contrôle qu'ils proposent permet de capturer un très grand nombre d'actions rendant alors difficile la réalisation de systèmes de reconnaissance appropriés.

Le but de ce stage est de participer à la réalisation d'un outil (nom de code Event Builder) qui permet de faciliter la réalisation de systèmes de reconnaissance efficaces. Par efficace, nous entendons qu'il ne confondra pas l'action utilisateur nouvellement introduite pour lequel il a été construit par ceux existant déjà et qu'il ne nécessitera pas d'apprentissage ou de calibration de la part de l'utilisateur.

Les fonctions phares de cet outil concernent la visualisation de mesures provenant des capteurs, soit en direct ou à partir d'enregistrements, ainsi qu'un processus itératif où les phases de tests et d'ajustements sont fusionnéss et réaliséss en temps réel. Un autre aspect intéressant est que cet outil sera utilisé uniquement par manipulation directe à la souris ou au doigt. De ce fait, les algorithmes ne sont pas écrits textuellement à la main mais extraits depuis les mesures capturées au travers de transformations visuelles. Enfin, pour s'affranchir des contraintes de plateformes et obtenir un maximum de flexibilité, son développement visera les navigateurs web et tirera profit de toute l'expressivité qu'ils proposent.

En fonction du profil et de la durée du stage, il est possible de se focaliser sur un ou plusieurs des aspects suivants:

  • une partie visualisation qui consiste à réaliser d'intéressantes représentations de mesures provenant de capteurs variés,
  • une partie technique repoussant les contraintes de l'édition et du test en temps-réel sur plusieurs appareils, et
  • une partie design où un vocabulaire visuel et une interface utilisateur sont conçues par itérations successives.

Compétences requises

Motivation, ouverture d'esprit, connaissances générales en interaction homme-machine, bonnes habitudes de programmation, quelques notions en développement web.

Références

  1. Victor, B. Learnable Programming: Designing a programming system for understanding programs. (2012)
  2. Ashbrook, D. and Starner, T. MAGIC: a motion gesture design tool. Proc. CHI '10, ACM (2010), 2159–2168.
  3. Hartmann, B., Abdulla, L., Mittal, M., and Klemmer, S.R. Authoring sensor-based interactions by demonstration with direct manipulation and pattern recognition. Proc. CHI '07, ACM (2007), 145–154.
  4. Kin, K., Hartmann, B., DeRose, T., and Agrawala, M. Proton++: a customizable declarative multitouch framework. Proc. UIST '12, ACM (2012), 477–486.
  5. Long, A.C., Landay, J.A., and Rowe, L.A. Quill: a gesture design tool for pen-based user interfaces. Technical Report, 2001.
  6. Lü, H. and Li, Y. Gesture coder: a tool for programming multi-touch gestures by demonstration. Proc. CHI '12, ACM (2012), 2875–2884.
  7. Williamson, J. and Murray-Smith, R. Rewarding the original: explorations in joint user-sensor motion spaces. Proc. CHI '12, ACM (2012), 1717–1726.