Prototypes where I am a core developer


ThingML is a modeling language and code generation framework for heterogeneous embedded and distributed systems taking part in the Internet of Things (IoT). It consists of a metamodel supported by editors, a set of compilers (targeting C/Arduino, Java, JavaScript), and a set of network API generators targeting MQTT, WebSocket, Serial ,etc.

Franck Fleurey and myself are the core developers of ThingML. ThingML is hosted on GitHub and available as open-source (Apache 2.0)


DiVA is a modeling language for the design, simulation and validation of adaptive systems. This language is inspired by the one developped during the DiVA EU project, with a completly new implementation for better scalability.

I am the core developer of DiVA (based on the work by Franck Fleurey and others in the DiVA consortium). DiVA is hosted on GitHub and available as open-source (L-GPL)


ArduPi is a set of projects combining the Arduino and Raspberry Pi platforms.

I am the main contributor on this project, whose source code (in C) is fully generated from ThingML models (also included on the repository). The purpose of ArduPi is to demonstrate how Arduino and Raspberry Pi can communicate together, and how a Model-Driven approach like ThingML can help.

ArduPi is hosted on GitHub and available as open-source (L-GPL)


JArduino is a Java API to program Arduino boards.

I am a core contributor on this project together with Franck Fleurey. This project is composed of a Java API, a C firmware for the Arduino code, and all the code for the communication between Arduino nodes and Java nodes, as described in our MODELS 2011 paper. Most of the code is generated from ThingML models. Jan Ole Skotterud also contributed to JArduino, in particular with an advanced Java GUI to control the Arduino board. Francois Fouquet provided support for Ethernet communication in addition to the default serial communication.

JArduino is hosted on GitHub and available as open-source (L-GPL)