Hi! I am a postdoctoral researcher in Human-Computer Interaction (HCI) at the SENS and SELMET research units at INRAE and CIRAD in Montpellier (France) since September 2022.

My current research is on the engineering of graphical user interfaces and visualizations for socio-ecological contexts, and on doing research in interaction with various communities of practice. Its main outcomes have been:

My background is in software engineering, with long-time involvement in HCI and Competitive Programming (CP):

Being very concerned about ecology, I have been a willing member of the Sustainable Development and Societal Responsibility local committee at Centrale Lyon, and am now co-chairing the French working group on HCI and ecology. I work hard to explore unconventional paths, most of my spare time going into compulsively crafting code then sharing it with engineering and academic groups.

Pastofutur (2022-)
Producing an analytical and action framework based on interdisciplinarity, using the concepts of ecosystem services associated with pastoral areas and the concept of multifunctionality of pastoral activity, to strengthen the participation of societies in defining the future of pastoralism [IHM'23, CHI'24].
Interactive collection of metaphors (2022-)
Developing an online interface and visualizations to collect and display a network of metaphors related to the soil during “metaphoring” workshops. This work will be on display in the CIRAD booth at the Paris International Agricultural Show.
DSCATT: Soil carbon sequestration in farming systems (2022-)
Developing sustainable and productive agricultural systems while increasing soil carbon sequestration, and raising awareness on the role of soil management to mitigate greenhouse gas emissions. I work on interfaces for multi-agent models simulating the regrowth of an acacia forest in Senegal.
Visualization of individual competency evaluations (2021-2022)
Website supporting per-student formative evaluations of competencies. It includes a complete pipeline to fetch grades from teachers, and two dashboards for students and teachers.
WEEX éolien (2020-2022)
Server and online interface supporting a week-long teaching activity, in which students compete in groups to optimize the energy production of a wind farm. This activity is very much appreciated by students, and has been presented as a flagship of Centrale Lyon's innovation. The platform is now autonomous and hosts 3 events per year.
Polyphony: building GUIs with ECS (2016-2019)
Proof-of-concept and technical walkthrough on adapting the Entity-Component-System model to the architecture of a Graphical User Interface [IHM'18, EICS'19].
Turning function calls into animations (2016-2017)
Demonstration of a programming language extension to express animations in Graphical User Interfaces, implemented in the Pharo/Smalltalk platform [EICS'17].
edge264 (2013-)
Experimental software decoder for the H.264 video codec, which I keep developing in my spare time to research new programming practices and to make a useful contribution to the open source community [FOSDEM'24].
Exploring the design of compiler feedback (2012)
Three visual prototypes of an IDE interface with a richer communication with compilers, along with an exhaustive list of cases where they could be useful [PPIG'12].

For the most part my research has focused on reducing complexity when programming interactive systems. In the case of graphical interfaces, this complexity is due to the large number of objects and behaviors to manage, and I have proposed models [EICS'19, EICS'17] and principles [EICS'22] to give more concise mental representations. In the case of data structures, this complexity is due to the abstraction effort required to navigate between visual representation and code, and I have initiated a tool allowing to work directly on visual graphs [EIAH'21]. Finally, in the case of compilers, the complexity is due to the numerous transformations that lead from the source code to the executable file, and I explored the idea of a human-compiler communication to improve its understanding [PPIG'12].

International peer-reviewed conferences
T. Raffaillac, N. Boukhelifa, E. Crouzat, F. Stark, J.-P. Müller, J. Lasseur. Supporting Interdisciplinary Research with Cards-based Workshops - A Case Study on Participatory Planning for Mountain Pastoralism. Extended Abstracts of the 2024 CHI Conference on Human Factors in Computing Systems, May 2024. (case study, to appear) DOI
T. Raffaillac & S. Huot. What do researchers need when implementing novel interaction techniques?. Proceedings of the ACM on Human-Computer Interaction, Volume 6, EICS, June 2022, art. 159, pp. 1–30. 🏆 27% DOI PDF slides
T. Raffaillac & S. Huot. Polyphony: Programming Interfaces and Interactions with the Entity-Component-System Model. Proceedings of the ACM on Human-Computer Interaction, Volume 3, EICS, Juin 2019, art. 8, pp. 1–22. 🏆 33% DOI PDF slides
T. Raffaillac, S. Huot & S. Ducasse. Turning Function Calls Into Animations. Proceedings of the 9th Symposium on Engineering Interactive Computing Systems, EICS, Juin 2017, pp. 81–86. 35% DOI PDF slides
T. Raffaillac. Exploring the design of compiler feedback. Proceedings of the 24th Annual Workshop of the Psychology of Programming Interest Group, PPIG, Nov. 2012, pp. 139–150. PDF slides
National peer-reviewed conferences
T. Raffaillac, N. Boukhelifa, E. Crouzat, F. Stark, J.-P. Müller, J. Lasseur. Development of a multi-agent simulation interface for the joint management of mid-mountain pastoral territories. Adjunct proceedings of the 34th Conference on l'Interaction Humain-Machine, April 2023, art. 6, pp. 1–6. (work in progress) DOI PDF poster slide
T. Raffaillac & S. Huot. Application du modèle Entité-Composant-Système à la programmation d'interactions. Proceedings of the 30th Conference on l'Interaction Humain-Machine, IHM, Oct. 2018, pp. 42–51. 33% DOI PDF slides
Theses and dissertations
T. Raffaillac. Améliorer les langages et bibliothèques logicielles pour programmer l'interaction. Doctoral thesis from the University of Lille. PDF slides
T. Raffaillac. Exploring the design of compiler feedback. Master thesis from KTH Royal Institute of Technology. PDF slides
Workshops, demonstrations, posters, etc.
T. Raffaillac. Interacting with numbers. In the 29th journées de Rochebrune 2023, Jan. 2023. (workshop) PDF slides
M. Savary-Leblanc, X. Le Pallec, P. Palanque, C. Martinie, A. Blouin, F. Jouault, M. Clavreul, T. Raffaillac. Mining human factors general trends from+ 100k UML class diagrams. Companion proceedings of the 25th International Conference on Model Driven Engineering Languages and Systems, HuFaMo, Oct. 2022, pp. 913–922. (workshop) DOI
P. Baron, L. Roche & T. Raffaillac. Visualisation automatique de graphes pour l'apprentissage des algorithmes. Proceedings of the 10th Conférence sur les Environnements Informatiques pour l’Apprentissage Humain, EIAH, June 2021, pp. 372–376. (poster) PDF video
T. Raffaillac, F. Chavanon & R. Vuillemot. Utilisation d’un juge en ligne pour l’évaluation automatique des programmes des étudiants. In the 8th colloque Didapro-DidaSTIC, Feb. 2020. (poster) PDF
T. Raffaillac, F. Chavanon & R. Vuillemot.. Mise en place d'une plateforme de programmation compétitive comme support de TDs. In the 8th colloque Didapro-DidaSTIC, Feb. 2020. (course) PDF GitHub
T. Raffaillac. Language and System Support for Interaction. Proceedings of the 9th Symposium on Engineering Interactive Computing Systems, EICS, June 2017, pp. 149–152. (doctoral consortium) DOI PDF slides poster
Invited talks
Innovations in H.264/AVC software decoding. FOSDEM 2024, Brussels, Belgium. 30min video
Comment (ré)concilier les Interfaces Humains-Machines avec les Transitions ?. Monthly seminar of the SENS research unit, Montpellier, France. 45min slides
Le numérique pour mieux produire (agroécologie - protection des cultures - productions animales durables - phénotypage rapide in situ). DigitAgora 2023, Montpellier, France. (round-table) 50min slides
Scientific writing. Yearly PhD seminar from SENS, Valflaunès, France. (course) 2h notes
L'informatique en 2040 (un exercice de design spéculatif). Sustainable Development and Societal Responsibility committee, Centrale Lyon, France. 30 min slides
Animations in Pharo Smalltalk. Pharo Days, Lille, France. (demo) 10min video
Early ECS in Pharo Smalltalk. ESUG 2016, Prague, Czech Republic. (demo) 10min video

I really enjoy teaching and innovative educational activities. In 2019 at Centrale Lyon I volunteered to develop the software for an innovative week-long educational event held several times a year, the WEEX éolienne. Then in 2020 I developed a website to display individual skills assessments as part of the implementation of the Competency-Based Education at Centrale Lyon. I have also organized competitive programming trainings since 2015, in Lille, Lyon and Montpellier, and gave advanced courses on the topic. In 2021 we raised Centrale Lyon to the top rank among the French institutions on the international training platform Kattis, reached the 4th place at CodinGame Fall Challenge 2021, then got the 54th and 64th places at the major European competition SWERC 2021.

Algorithms and data structures (teaching assistant)
complexity, sorting, graphs, dynamic programming, Python
École Centrale de Lyon
Object-oriented design and programming (teaching assistant and guest lecturer)
introduction to Software Engineering, UML, OOP, Graphical User Interfaces (slides, support), Python/tkinter
École Centrale de Lyon
Web application project (teaching assistant)
client-server architecture, HTML, CSS, JavaScript, JSON, Python, SQLite, team working, git
École Centrale de Lyon
WEEX éolienne (co-organizer)
5 editions of a week-long multidisciplinary pedagogical event
Eng. 1/2
École Centrale de Lyon
Students projects and mentoring (supervisor)
6 projects (2 to 9 months), 1 intership (3 months), mentoring of 3 students
Eng. 1/2/3
École Centrale de Lyon
Introduction to human-machine interfaces (teaching assistant)
programming Graphical User Interfaces with JavaFX, event-based programming, user interface mockups, usability evaluation and heuristics
Lille University/IUT A
Advanced algorithms (teaching assistant)
recursive and iterative algorithms, recursive and advanced data structures
Lille University/IUT A
Introduction to computer systems (teaching assistant)
coding numbers and text, computer architecture, operating systems, scripting and the terminal, processes and files
Lille University/IUT A
Web technologies (teaching assistant)
client-side Web technologies HTML/CSS/JavaScript
Lille University
Algorithms and complexity (teaching assistant)
divide and conquer, dynamic programming, greedy algorithms, complexity analysis, P/NP and reduction
Lille University
Academic service Signs of life

This section contains stuff that doesn't fit anywhere else. I believe technical mastery is essential to tackle impossible societal challenges, so I dedicate a good amount of time to organizing local training sessions for contests and challenges. These events are a lot of fun and a good way to test the skills of prospective students. My main platform for contests training is Kattis, where I hold the 2nd place in France.

2023 Advent of Code 2023
Going through all the puzzles of this Christmas-themed challenge (two puzzles each morning of December).
ComMod research school
Followed during 1 week on participatory modeling and role-playing games. Certificate of completion
MISS-ABMS summer school
Followed during 2 weeks on agent-based modeling and simulation. Certificate of completion
Training on Kattis
Climbing up 500 points on Kattis during the summer to get back in good shape for programming (about 100 small programming problems)
2022 Tips en Informatique (French)
Slides created to help students from Centrale Lyon make better use of their computers. I keep them updated for my colleagues at CIRAD.
Coyote Time Lord
Minimalist 2D game with time-altering mechanisms, created with Clément Pillias for the 50th Ludum Dare Jam. I did the eerie music, the sounds and the sprites.
SWERC 2021
Second participation as a coach, with teams ECL 2 (54th/97) and CentraleMegaStomp (64th/97). A remarkable result for Engineering students as well as first-timers!
Hash Code 2022 contest
703th/10177, 52th/529 in France, team #import mercy on my own.
2021 Creative and competitive programming club
Running a club for students from February to April, partly during a Covid lockdown, with sessions alternating between competitive programming and live music coding with FoxDot.
Lost Souls Found The Gold You Lost To Save Your Soul
Pacman-like game created with Clément Pillias and Nicole Pong for the Global Game Jam 2021. I did the UI, level design and incremental music (although due to a bug you cannot hear the full version).
2020 Advent of Code 2020
Going through all the puzzles of this Christmas-themed challenge (two puzzles each morning of December).
Code Jam 2020 contest
Reaching round 3 of this challenging competition.
Hash Code 2020 contest
2826th/10724, 2nd in our hub, team XoXot with Damien Masson, Nicolas Crosetti and Paul Gallot.
Online IDE with supervision
Online IDE including a Python interpreter, coded at the start of the Covid outbreak to allow students to ask for help and show their code remotely (viewed as a mosaic on my side). It lacked modules so students would only use it to show code, but it was super helpful to let them feel supported throughout this event.
Competitive programming course
Slides for a custom course created for 6 students, based on the excellent Competitive Programming 3 book.
MOOC on university teaching (French)
Followed during 10 weeks for ~2h/week. Certificate of completion
SWERC 2019
First participation, as a coach, with teams ECL 1 (82th/98) and ECL 2 (84th/98). I scored well at the coaches contest.
2019 Raid Centrale Lyon
Running, cycling and canoeing. We registered for the discovery level with Thierry Gonon and finished 3rd.
Hash Code 2019 contest
91th/6671, 6th in France, team Lokidoki on my own.
2018 Catalysts Coding Contest
Team //#include <mercy> with Lucien Mousin, 2nd in Lille, with participation in organizing the hub.
Hash Code 2018 contest
1122th/3012, team //#include <mercy> with Lucien Mousin.
2017 Catalysts Coding Contest
Team ThiYo with Yoann Dufresne, 3rd in Lille, with help in organizing the hub (printing T-shirts and communicating to students).
Hash Code 2017 contest
186th/2815, 1st in our hub, team ThiYo with Yoann Dufresne.
Meilleur jeu du monde
Nerds + Beers = Game dev party... (during FOSDEM 2017)
2016 Bamboo that bends
A 3D Twister game made with five people during the ZooMachines Interactive Arts festival, which was way funnier than on video!
A case about parsing errors
A blog article about the handling of errors in edge264.
Hash Code 2016 contest
153rd/1054, 1st in our hub, team Brony Express with Izzatbek Mukhanov and Sébastien Poulmane.
The Maze Nightmare
Short game created with Yoann Dufresne and Matthieu Falce for the Ludum Dare Jam 35. As usual I did the artwork and music. Beware the game is meant to be oppressing...
2012 Little Sheep
Short story-telling game created with Alexandre Kohen during 3 days for the Ludum Dare Jam 23. I did the artwork and music :)
2011 Assisting interface for easy administration of a CMS
Study of a novel interface for online Content Management Systems, for the Interaction Design course. PDF
Assassination Game Application
Video prototype for a Group Project of the Interaction Design course.
WHILE compiler
Optimizing compiler backend written in Java for a subset of the WHILE language to UNIX x64 assembly, for the Program Semantics and Analysis course. sample output
Diffusion en direct avec VLC (French)
Interactive tutorial to easily set up a high-quality real-time video broadcast using VLC.
2010 Mise en place de VOD (French)
Step-by-step documentation to install and fine-tune a Video-on-Demand server on Linux.
2009 Club programmation
Support material for an OpenGL course I created at Centrale Marseille.
Film de Rentrée du GInfo (French)
Short movie promoting the Computer Science student association at the annual associations fair of Ecole Centrale Marseille. A must-watch if you've scrolled down this far :)
Compression avec StaxRip (French)
Tutorial to compress a video exported by Premiere Pro, using the software StaxRip. The parameters would correct the flaws introduced by Premiere (its disastrous deinterlacing filter) and output in a format ready for integration in a Web player.
Compression avec MeGUI (French)
Tutorial to compress a video exported by Premiere Pro, using MeGUI. It was soon superseeded by the tutorial on StaxRip.
2008 La lentille électrostatique (French comments)
Simultation of an electrostatic lens by shooting electrons in a simple finite element mesh, created for the TIPE exam at the end of the Classes Préparatoires.
Modèle EXE (French comments)
Source code for nasm based on the PE/COFF reference, to create an executable file from scratch without linking.
2007 Oscillations d'un Fil (French comments)
Real-time simulation of a flexible wire using Lagrangian Mechanics and RK4 integration, created for the TIPE exam.
Casse-briques (French comments)
Breakout-clone where the paddle can tilt.
2005 Visionneuse 3D (French)
Interactive viewer for 3D objects stored in files. This program ended a 3-year obsession to create a 3D engine, and was my last BASIC program before playing with more modern languages.