Research software

I am the main developer of the following Julia packages, directly related to my research:

I co-developed the RAL Python package for stream-based active learning.

Research-support software

In C++, I contribute to several packages:

  • The OR-Tools software suite. My work focuses on graph algorithms, on the routing and the set-covering solvers, and on the Julia interface.
  • MilleMiglia, an instance generator and a generic file format for middle-mile logistics in the domain of supply chain.

List of publications:

  • ORTools.jl: access Google’s solvers through JuMP. Thibaut Cuvelier, Warren Ochibobo. JuliaCon Local Paris 2025, October 2025. Presentation (PDF).

  • ORTools.jl: access Google’s solvers through JuMP. Warren Ochibobo, Thibaut Cuvelier. JuliaCon 2025, July 2025.

  • Tech @ Google : optimiser un algo pour la rapidité. Thibaut Cuvelier, Bruno De Backer. The Product Crew.

  • OR-Tools’ Vehicle Routing Solver: a Generic Constraint-Programming Solver with Heuristic Search for Routing Problems. Thibaut Cuvelier, Frederic Didier, Vincent Furnon, Steven Gay, Sarah Mohajeri, Laurent Perron. Congrès de la Société française de recherche opérationnelle et d’aide à la décision (ROADEF) 2023, February 2023. HAL (PDF).

In Julia, I developed or significantly contributed to the following Julia packages when working on the previous packages:

List of publications:

  • Seleroute.jl, a generic package for network-routing optimisation. Thibaut Cuvelier. Julia and Optimization Days 2023. HAL (PDF).

  • ConstraintProgrammingExtensions.jl: An MOI/JuMP extension for constraint programming. Thibaut Cuvelier. JuliaCon 2021, July 2021. PreTalx. HAL (PDF).

Documentation tools

I developed QtDocTools, a simple CLI tool that was initially written to help manage the translation of Qt’s documentation into French by automating many operations on DocBook documents, and outgrew to handle the whole publication chain (roundtrip to DOCX format for proofreading, generation of whole websites, etc.). When working on this tool, I also made a few contributions to Apache POI and to Qt; the largest contributions were for Qt’s QDoc documentation-generation tool, where I implemented a DocBook output and fixed many documentation issues.

I contributed to LyX, a WYSIWYM LaTeX editor, especially regarding its DocBook 5 support (premiered in LyX 2.4.0). I now also help maintain the support for the XHTML and MathML formats.

Both projects lead me to propose and support until acceptance of several propositions to the DocBook OASIS standard.

Development projects

Car on the Hill (became CovoitULiège, now UGo)

The ULg campuses are not exactly the best in class when it comes to mobility. This is partly due to its highly decentralised organisation: some faculties are localised in the city centre (in different areas of the city), but also remote from the city (the Sart-Tilman campus). Public transportation is a partial answer to this problem, especially in the city centre, where the bus offer is extensive. However, only two bus routes serve the Sart-Tilman campus, and these are over-crowded during rush time.

The goal of the Car on the Hill project is to better exploit the capacity of the cars, i.e. to organise a carsharing activity at the scale of the university, exclusively for university staff and students. As such, drivers propose to drive other persons, and passengers indicate their needs. The platform then proposes to match drivers and passengers based on their respective constraints (origin, destination, precise time of arrival, and delay tolerances).

My part in the project was to develop a prototype for this application as a website that could also be used as a mobile application, during the summer 2015. It was programmed in Python using the Django Web framework. An API has been developed to interact with the application; it was used for a master thesis in 2015-2016 about the development of a native Android application. The actual development of the application started in September 2016.

This project has had also some impact on the teaching activities of the department, as it was also the subject of the integrated software project 2015-2016 (a large software development project for computer science master students). Its algorithmic part was a project for the discrete optimisation course.

The prototype has now developed and has been deployed at the scale of the university and can be licensed by third parties.