2018-01171 - Ingénieur développement (H/F) - Plateforme de test pour interagir avec des historiques de commandes avancés

Type de contrat : CDD de la fonction publique

Contrat renouvelable : Oui

Niveau de diplôme exigé : Bac + 5 ou équivalent

Fonction : Ingénieur scientifique contractuel

Niveau d'expérience souhaité : De 3 à 5 ans

A propos du centre ou de la direction fonctionnelle

Le centre de recherche Inria Lille – Nord Europe, créé en 2008, compte 360 personnes dont 305 scientifiques répartis dans 16 équipes de recherche. Reconnu pour son implication forte dans le développement socio-économique sur le territoire du Nord – Pas-de-Calais, le centre de recherche Inria Lille – Nord Europe poursuit une démarche de proximité avec les grandes entreprises et les PME. En favorisant ainsi les synergies entre chercheurs et industriels, Inria participe au transfert de compétences et d’expertises dans les technologies numériques et donne accès aux meilleures recherches européennes et internationales au bénéfice de l’innovation et des entreprises notamment en région.

Contexte et atouts du poste

Ce poste s'inscrit dans le projet ANR "Causality" porté par Mathieu Nancel.

La mission s'effectuera au sein de l'équipe Loki du centre Inria Lille – Nord Europe.

Mission confiée

La mission consiste à implémenter une application de dessin en ligne avec des fonctions avancées de contrôle et de manipulation de l'historique des commandes effectuées par l'utilisateur, sur la base de travaux de recherche précédents [1]. Cette application servira de plateforme de tests pour des chercheurs en Interaction Homme-Machine (IHM). L'ingénieur(e) sera impliqué(e) dans la conception et l'implémentation de la structure sous-jacente d'historique de commandes, et des fonctions de dessin et de contrôle avancé de l'historique.

Background

Les historiques de commandes sont un aspect incontournable de la plupart des logiciels d'édition depuis plus de 30 ans, mais les fonctionnalités qu'ils offrent n'ont quasiment pas évolué depuis Annuler et Refaire, c-à-d avancer ou reculer d'une étape dans l'historique récent. Le domaine de l'IHM a exploré diverses améliorations de ces fonctions, par exemple annuler des commandes à partir de leur localisation dans le document, annuler des commandes qui ne sont pas les plus récentes, ou créer des branchements dans l'historique afin d'explorer plusieurs alternatives. Mais ces améliorations sont le plus souvent des "point designs" qui sont rarement implémentés dans des applications réelles. Nous pensons que cela est dû au fait que ces travaux ne portent que sur une fonctionnalité à la fois, et aucun effort n'est fait pour les faire cohabiter dans un même système : chaque article de recherche implémente sa propre structure de données pour enregistrer les commandes de l'utilisateur, correspondant uniquement à la fonctionnalité étudiée, et qui souvent empêche d'autres fonctionnalités d'être implémentées – parfois ces structures empêchent même les classiques Annuler et Refaire.

En 2014 nous avons proposé "Causality" [1], un modèle conceptuel d'historiques de commandes qui permet à l'ensemble des techniques de gestion et de manipulation d'historiques dans la littérature de coexister. La structure de données proposée garde la trace de toutes les informations impliquées dans le calcul des résultats d'une commande (input de l'utilisateur, contexte de l'application au moment de la commande, cible, résultat et timing de la commande), ainsi que des connexions entre elles. Nous avons aussi proposé de nouvelles fonctionnalités permises par cette structure de données, comme l'altération de l'input d'une commande précédente (p. ex. le tracé d'un coup de pinceau virtuel) ou de ses paramètres (p. ex. la couleur active lors d'une période de temps), et la résolution des paradoxes qui peuvent survenir lorsque qu'une chaine d'événements est altérée (p. ex. si j'annule la commande qui a servi à créer un certain objet, qu'arrive-t-il aux commandes qui ont plus tard affecté cet objet ?).

Mission

Ce projet va consister à concevoir et implémenter une application de dessin fonctionnelle pour servir de plateforme de tests à des chercheurs en IHM, avec à sa base une structure d'historique telle que décrite dans [1], afin d'explorer :

  1. La faisabilité technique du modèle sous-jacent, incluant des questions de complexité et de compromis temps-mémoire,
  2. Les meilleures visualisations pour présenter les possibilités offertes par ces historiques de commandes enrichis à des utilisateurs novices ou experts,
  3. Les meilleures façons d'interagir avec ces historiques de commandes et ses diverses fonctionnalités.

L'application de dessin devra être aussi réactive que possible et proposer un sous-ensemble réaliste de fonctions de dessin numérique classiques : sélection de pixels, calques, formes et tailles de pinceaux, opacité, modes de fusion, etc.
La structure d'historique doit permettre de rejouer chaque commande à l'identique, et offrir une API permettant l'accès, la navigation, la sélection et le filtrage de chaque commande et paramètre utilisés, afin que les chercheurs impliqués dans le projet puissent explorer de nouvelles possibilités de manipulation d'historiques et les présenter aux utilisateurs. L'ingénieur(e) proposera et explorera des solutions pour optimiser le compromis temps-mémoire.

Pour faciliter l'expérimentation avec des utilisateurs réels, et pour des raisons de compatibilité entre environnements, le système doit être utilisable en ligne dans un navigateur web. Nous avons envisagé l'utilisation de WebGL pour le front-end, pour permettre des fonctions graphiques avancées sans introduire trop de latence, mais les choix technologiques finaux seront décidés avec l'ingénieur(e). L'un des besoins principaux de ce projet est que la structure en back-end et les fonctions de dessin en front-end soient facilement extensibles plus tard, par les chercheurs ou les étudiants de Loki.

L'ingénieur(e) participera à la conception de la structure de données – passer d'un modèle conceptuel à un framework applicatif fonctionnel – et sera chargé de son implémentation et de son intégration dans un sous-ensemble de commandes de dessin et de manipulation d'images. Si le temps le permet, il/elle sera invité(e) à participer à la conception des techniques d'interaction permettant aux utilisateurs de naviguer et de manipuler l'historique des commandes.

L'ingénieur(e) travaillera avec les chercheurs impliqués dans le projet, Mathieu Nancel et Stéphane Huot, et potentiellement avec un(e) doctorant(e) durant le projet.

Références

[1] Mathieu Nancel, Andy Cockburn (2014). Causality – A Conceptual Model of Interaction History. ACM CHI.

Principales activités

Activités principales:

  • Analyse des besoins
  • Conception de solutions
  • Implémentation et tests
  • Déploiement
  • Maintenance et évolution du logiciel

Avantages

  • Restauration subventionnée
  • Transports publics remboursés partiellement
  • Installations sportives