BoFire: Bayesian Optimization Framework Intended for Real Experiments
Johannes P. Dürholt, Thomas S. Asche, Johanna Kleinekorte, Gabriel Mancino-Ball, Benjamin Schiller, Simon Sung, Julian Keupp, Aaron Osburg, Toby Boyne, Ruth Misener, Rosona Eldred, Wagner Steuer Costa, Chrysoula Kappatou, Robert M. Lee, Dominik Linzner, David Walz, Niklas Wulkow, Behrang Shafei
TL;DR
BoFire addresses the bottleneck of deploying Bayesian optimization and design-of-experiments in industrial chemistry by delivering an open-source, highly configurable framework that is fully serializable for RESTful integration. It combines flexible domain definitions (Inputs, Outputs, Constraints) with a broad range of DoE and predictive strategies built on BoTorch, supporting constrained, multi-objective optimization and both a priori and a posteriori Pareto methods. The framework emphasizes an experimentalist-first, easily deployable architecture with modular components and json-based problem formulations, enabling plug-and-play use in self-driving laboratories and human-in-the-loop systems. By providing true multi-objective support, comprehensive constraint handling, and seamless serialization, BoFire aims to bridge the gap between research ideas and industrial practice, catalyzing rapid translation of BO/DoE innovations into chemistry workflows.
Abstract
Our open-source Python package BoFire combines Bayesian Optimization (BO) with other design of experiments (DoE) strategies focusing on developing and optimizing new chemistry. Previous BO implementations, for example as they exist in the literature or software, require substantial adaptation for effective real-world deployment in chemical industry. BoFire provides a rich feature-set with extensive configurability and realizes our vision of fast-tracking research contributions into industrial use via maintainable open-source software. Owing to quality-of-life features like JSON-serializability of problem formulations, BoFire enables seamless integration of BO into RESTful APIs, a common architecture component for both self-driving laboratories and human-in-the-loop setups. This paper discusses the differences between BoFire and other BO implementations and outlines ways that BO research needs to be adapted for real-world use in a chemistry setting.
