ADOpy logo

Project Status: WIP – Initial development is in progress, but there has not yet been a stable, usable release suitable for the public. Travis CI CodeCov

ADOpy is a Python implementation of Adaptive Design Optimization (ADO; Myung, Cavagnaro, & Pitt, 2013), which computes optimal designs dynamically in an experiment. Its modular structure permit easy integration into existing experimentation code.

ADOpy supports Python 3.5 or above and relies on NumPy, SciPy, and Pandas.


  • Grid-based computation of optimal designs using only three classes: adopy.Task, adopy.Model, and adopy.Engine.

  • Easily customizable for your own tasks and models

  • Pre-implemented Task and Model classes including:

    • Psychometric function estimation for 2AFC tasks (adopy.tasks.psi)

    • Delay discounting task (adopy.tasks.ddt)

    • Choice under risk and ambiguity task (adopy.tasks.cra)

  • Example code for experiments using PsychoPy (link)


If you use ADOpy, please cite this package along with the specific version. It greatly encourages contributors to continue supporting ADOpy.

Yang, J., Pitt, M. A., Ahn, W., & Myung, J. I. (2019). ADOpy: A Python Package for Adaptive Design Optimization. https://doi.org/10.31234/osf.io/mdu23


Myung, J. I., Cavagnaro, D. R., and Pitt, M. A. (2013). A tutorial on adaptive design optimization. Journal of Mathematical Psychology, 57, 53–67.

Indices and tables