Main Projects

You will find a more thorough presentation of the different projects by clicking each project name.

Olena: a generic image processing library


Olena is a platform dedicated to image processing and pattern recognition. Its core component is a generic and efficient C++ library called Milena. Milena provides a framework to implement simple, fast, safe, reusable and extensible image processing tool chains. The library provides many ready-to-use image data structures (regular 1D, 2D, 3D images, graph-based images, etc.) and algorithms. Milena's algorithms are built upon classical entities from the image processing field (images, points/sites, domains, neighborhoods, etc.). This design allows image processing developers and practitioners to easily understand, modify, develop and extend new algorithms while retaining the core traits of Milena: genericity and efficiency.

  • Software design
    • Generic programming
    • Design patterns
  • Image processing

Vaucanson: a finite state machine manipulation platform


Vaucanson is a finite state machine manipulation platform, consisting of a library and tools implemented on top of it. It benefits from the expertise we gained from our intensive work on high performance generic programming for Olena. On the other hand, its theoretical well-foundedness in the area of automata is ensured thanks to a collaboration with Jacques Sakarovitch, at Télécom ParisTech, and with Sylvain Lombardy at the Laboratoire Bordelais de Recherche en Informatique. About ten years after its first inception, the project is taking a new start with the Vaucanson 2 effort. This complete redesign aims at keeping the successful parts of its predecessor (especially genericity and large feature set) while addressing its shortcomings (compile-time and runtime efficiency, the flexibility).

  • Software design
    • Generic programming
    • Design patterns
  • Automata theory

Spot: a model checking library


Spot is an object-oriented model checking library written in C++. It offers a set of bricks to experiment with and develop your own model checker based on transition-based generalized Büchi automata. Spot was born in the MoVe team at LIP6 and is now co-maintained by the LRDE.

  • Automata theory
  • Model Checking

Speaker ID: Speaker's Voice Print

Speaker Recognition team are working on Machine Learning solutions applied to Speaker Recognition task. They propose statistical representations of speech signal which are more robust to the problem of session and channel variabilities.


  • Speaker Recognition
  • Total Variability Space (TV, I-Vectors)
  • Joint Factor Analysis (JFA)
  • Cosine Distance Scoring (CDS)
  • SVM and Kernel Tricks (GSV, NAP, ...)

Climb: a generic Image Processing Library written in Lisp

Another team of the laboratory has chosen to focus on the persistent question of performance and genericity with a transversal approach. The purpose of this research is to examine the solutions offered by languages other than C + +, especially dynamic languages, and we chose the Lisp Image Processing Library Climb.

Other Projects


Tiger Compiler: a Tiger compiler written in C++ 2011

HAVM: An interpreter for Andrew Appel's Tiger "Tree" Intermediate Language

Nolimips: A MIPS-based simulator with "infinitely many registers"

MonoBURG: A code-generator generator based on a tree-rewriting system

Old Projects