Engineer: Development of a Software Architecture for Automated discovery of self-organising patterns in complex systems

Le descriptif de l’offre ci-dessous est en Anglais

Type de contrat : CDD

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

Fonction : Ingénieur scientifique contractuel

Niveau d'expérience souhaité : Jeune diplômé

A propos du centre ou de la direction fonctionnelle

The Inria Bordeaux Sud-Ouest centre is one of Inria's eight centres and has around twenty research teams. The Inria centre is a major and recognized player in the field of digital sciences. It is at the heart of a rich R&D and innovation ecosystem: highly innovative SMEs, large industrial groups, competitiveness clusters, research and higher education players, laboratories of excellence, technological research institute...

Contexte et atouts du poste


In many complex dynamical systems, artificial or natural, one can observe self-organization of patterns emerging from local rules. For example, cellular automata abstract models like Conway’s Game of Life (GoL), despite their apparent simplicity, generate a wide range of complex patterns and behaviors reminiscent of various life-like phenomena. Similarly many chemical and biological systems in nature display fascinating self-organizing dynamics: molecular and cellular self-assembly are observed in snowflake crystallization, protocell formation and morphogenesis of living organisms among many others. However, findings of self-organized patterns in such systems have so far relied on manual tuning of parameters and initial states, and on the human eye to identify interesting patterns. For this aim, we are designing a fully open-source interactive software for assisting human users to search for interesting patterns in such complex systems (see below for technical details on the software architecture).

In this project, we formulate the problem of automated scientific discovery of diverse self-organized patterns in high-dimensional complex dynamical systems. We study how intrinsically-motivated machine learning algorithms, initially developed for learning of inverse models in robotics, can be transposed and used in this novel application area. First steps were made in (Reinke, Etcheverry and Oudeyer, 2020), where we studied the behaviour of these algorithms in a continuous game of life (e.g. Lenia (Chan, 2019)). Further steps will involve experimenting with dynamical patterns in similar numerical models, but also exploring novel patterns in real bio-chemistry systems, through collaborations with scientists from diverse backgrounds interested in exploring different types of self-organizing behaviors (ranging from the the formation of protocells from inorganic matter to the design of functional products in bio-engineering applications). 

In general, we believe that modern tools from machine learning (including the one developed in the team) hold great promises to assist scientists in mapping and navigating the space of possible outcomes toward novel or hard-to-reach morphological/functional targets in a variety of complex systems. For instance in a recent work (Hamon, Etcheverry, Chan, Moulin-Frier and Oudeyer 2022) we showed how ML tools can efficiently assist us when studying challenging questions such as the origins of sensorimotor agency in self-organising systems or the design of novel forms of collective intelligence. 

However, in spite of the exciting future for automated scientific discovery opened up by these recent works, their deployment remains largely limited considering how difficult to grasp they are for scientists lacking prior expertise in machine learning and programming. Additionally, (Etcheverry, Moulin-Frier and Oudeyer 2020) also showed that adding human in the exploration loop can be a key to obtain interesting mappings, enabling scientists to interactively drive curiosity-driven exploration of novel patterns. 

To encourage and facilitate the re-use of these tools by a broader audience of chemists, biologists, artists and others, we are designing a fully open-source interactive software that aims to provide tools to easily use exploration algorithms (e.g. the developed curiosity-driven ones) for assisting discovery in various complex systems. In this context, we are seeking a research engineer that will be in charge of developing the proposed software, in collaboration with researchers from the FLOWERS team.


Reinke, C., Etcheverry, M., & Oudeyer, P. Y. (2020). Intrinsically Motivated Discovery of Diverse Patterns in Self-Organizing Systems. ICLR 2020. Blogpost:

Chan, Bert Wang-Chak (2019). Lenia: Biology of Artificial Life. Complex Systems, 28(3). Web page:

Etcheverry, M., Moulin-Frier, C., & Oudeyer, P. Y. (2020, December). Hierarchically Organized Latent Modules for Exploratory Search in Morphogenetic Systems. In NeurIPS 2020-34th Conference on Neural Information Processing Systems.

Gautier Hamon, Mayalen Etcheverry, Bert Wang-Chak Chan, Clément Moulin-Frier, Pierre-Yves Oudeyer. Learning Sensorimotor Agency in Cellular Automata. 2022. Blogpost:  


Mission confiée

This research engineer position will imply improving the implemention, design and deployment of a software framework enabling to study both the behaviour of interactive automated discovery algorithms, and to contribute to new discoveries of self-organizing patterns in various target complex systems. The current version of the software framework is available at:

In particular, it will include:

  • Working on a modular Python library allowing to define and study various combinations of exploration and visualization algorithms with several target systems. This will involve implementing advanced machine learning algorithms, collaborating with other members of the team to develop novel versions of these algorithms and testing them in various scientific studies about target dynamical systems with end-users (collaborations with other labs).
  • Participating in building a user-friendly web application to control the Python library enabling scientists to perform, guide and visualize experiments. This will involve working on a microservice-based architecture made of multiple databases, REST APIs and an Angular application.
  • Leading the packaging, open-source release and maintenance of the overall framework. This will involve disseminating and interacting with scientist end-users (internal or external of the lab).


How to apply: send an email to AND AND AND with a CV and letter of motivation (with [APPLICATION] included in subject of email), in addition to applying on the Inria web site. We recommend that interested candidates contact us as soon as possible.


Principales activités

  • Implementation of a modular Python library for connecting exploration algorithms, visualization algorithms and the dynamical systems
  • Implementation of a microservice-based software connecting the Python library to an interface for users
  • Implementation of exploration and representation learning algorithms
  • Participation in the design and study of novel interactive algorithms and their scientific study in experimentations
  • Participation in experiments studying novel patterns through the use of the framework in various target systems
  • Dissemination of the work through documentation, blog post and article writing


Technical competences: 

  • Software engineering:
    • Python (Flask)
    • SQL and NoSQL databases (PostgreSQL, MongoDB)
    • Front-End development (Angular, Bootstrap)
    • Docker
  •  Scientific programming:
    • Python
    • Machine learning algorithms and frameworks (PyTorch)

Other competencies appreciated:

  • Machine Learning and Deep Learning
  • Computer visualization of data
  • User-centered design, design of interfaces
  • Interest in the study of self-organizing complex systems

Language: English



  • Subsidized meals
  • Partial reimbursement of public transport costs
  • Possibility of teleworking and flexible organization of working hours
  • Professional equipment available (videoconferencing, loan of computer equipment, etc.)
  • Social, cultural and sports events and activities
  • Access to vocational training
  • Social security coverage


2652€ per month (before taxs)