Start here
A Python library for research and teaching in Bayesian optimization, built so you can see how each method works, compare methods fairly, and use them in user studies. It goes from a Gaussian process written in plain NumPy to transfer, continual, multi-objective and meta-learned BO.
- Readable from scratch: a NumPy Gaussian process with RBF and Matérn-5/2 kernels and expected improvement, benchmarked against a BoTorch version of the same loop.
- Transfer, continual and meta-learned BO: reuse what earlier tasks or users taught you, with TAF, TAF+, continual BO (ConBO) with a population model, and neural acquisition functions meta-trained with reinforcement learning (NAF).
- Several objectives: correlated multi-output GPs and expected hypervolume improvement, plus TAF-EHVI, OpenBO’s own transfer method for multi-objective BO.
- Humans in the loop: almost every optimizer has a WebSocket server, so a user study, game or device evaluates the designs and OpenBO decides what to try next.
- Reproducible benchmarks: test functions, task families and archived benchmark campaigns, each with the script that reproduces it. Every optimizer shares one ask/tell interface.
git clone https://github.com/yichiliao/openbo
cd openbo
uv sync
uv run python scripts/run_benchmark.py --help
Bayesian optimizationTransfer & meta-BOMulti-objectiveHuman-in-the-loopTeaching
▶ Visit the OpenBO website
Library
Multi-objective Bayesian optimization for designing interaction techniques, for one user or a whole group. It models two or three objectives with a multi-task or semiparametric latent factor Gaussian process, and connects to your own application over WebSocket.
From Practical approaches to group-level multi-objective Bayesian optimization in interaction technique design (Collective Intelligence, 2024).
Multi-objective BOInteraction design
View on GitHub ↗
Library
Preferential Bayesian optimization with transfer learning. It learns from pairwise comparisons instead of scores, and warm-starts a new user from the preference models of earlier users (TAF-M and TAF-R).
From Efficient Visual Appearance Optimization by Learning from Prior Preferences (UIST 2025).
Preferential BOTransfer learning
View on GitHub ↗
App
Human-in-the-loop prompt optimization for text-to-image generation. A user enters a prompt and picks the images they prefer. The app then refines the prompt from those choices and generates new variants, round after round. It runs Stable Diffusion XL and needs a GPU.
From Preference-Guided Prompt Optimization for Image Generation (CHI 2026).
Prompt optimizationGenerative AI
View on GitHub ↗
Tool
A research project tool for academic labs, built on living Markdown documents. Each project is a handful of plain Markdown files shown as one readable page. An AI collaborator answers questions with line-level citations and proposes edits that you review as diffs before anything changes.
Research managementHuman-AI collaboration
View on GitHub ↗