The future of Keanu


The aim of this project is to develop a probabilistic programming environment that enables modellers to perform inference and make probabilistic predictions about large, complex and multifaceted problems.

We believe an approach based on Bayesian networks is the most effective way to incorporate domain expertise and assimilate data to produce powerful and validatable probabilistic models. We also believe in making probabilistic modelling more accessible by providing intuitive tooling for the development of models across a range of paradigms, from fluid dynamics to agent based modelling, using familiar programming syntax.

Our overarching goal is to increase the scale and speed at which Bayesian inference can be run, and the size of the datasets that can be assimilated to the point where these limitations rarely, if ever, affect modellers. We also strive to achieve this without increasing the complexity of model logic.

We already have a wide variety of probabilistic programming operators, multiple inference algorithms, fast performance on the CPU, early-stage documentation and examples, and basic tooling to support some modelling paradigms. However, the project is at a pre-alpha stage. There is still much work to do and we are only able to offer early adopters limited ad-hoc support.

Our development efforts are currently focused on:

  • API improvements
  • Improving documentation
  • Implementation of existing inference algorithms
  • Development of new inference techniques
  • Parallelisation
  • GPU compatibility
  • Data assimilation
  • Probabilistic loops
  • Tooling to support agent-based modelling

We hope that you are as excited as we are about the possibilities that this new field of modelling offers and welcome your feedback on the project.