A GRaphical Universal Modeler (


aGrUM is a C++ library for graphical models. It is designed for easily building applications using graphical models such as Bayesian networks, influence diagrams, decision trees, GAI networks or Markov decision processes.

aGrUM is written to provide the basic building blocks to perform the following tasks :

designing graphical models,
learning graphical models,
elicitation of graphical models,
inference within graphical models,


pyAgrum is a Python wrapper for the C++ aGrUM library. It provides a high-level interface to the part of aGrUM allowing to create, handle and make computations into Bayesian Networks.

The module mainly is a application of the SWIG interface generator. Custom-written code is added to simplify and extend the aGrUM API.


aGrUM/pyAgrum is released under the Gnu Public License, which means it can be freely copied and distributed, and costs nothing to use in open-source applications. Especially, aGrUM can be used freely for research project.

If you wish to use aGrUM in a closed-source product, please contact C.Gonzales or P-H.Wuillemin in order to get appropriate licenses.