Simulations of physical systems are often slow and need lots of compute, which makes them unpractical for real-world applications like digital twins, or when they have to run thousands of times for sensitivity analyses. The goal of AutoEmulate is to make it easy to replace simulations with fast, accurate emulators. To do this, AutoEmulate automatically fits and compares various emulators, ranging from simple models like Radial Basis Functions and Second Order Polynomials to more complex models like Support Vector Machines and Gaussian Processes to find the best emulator for a simulation.
You can find the project documentation here, including installation.
Please cite this paper if you use the package in your work:
@article{Jersakova2026,
doi = {10.21105/joss.10087},
url = {https://doi.org/10.21105/joss.10087},
year = {2026},
publisher = {The Open Journal},
volume = {11},
number = {124},
pages = {10087},
author = {Jersakova, Radka and Greenbury, Sam F. and Chalstrey, Ed and Brown, Edwin and Famili, Marjan and Sprague, Chris and Conti, Paolo and Smith, Camila Rangel and Stoffel, Martin A. and Li, Bryan M. and Westerling, Kalle and Arana, Sophie and Balmus, Max and Daub, Eric and Niederer, Steve and Duncan, Andrew B. and McEwen, Jason D.},
title = {AutoEmulate: A PyTorch tool for end-to-end emulation workflows},
journal = {Journal of Open Source Software}
}If you're using AutoEmulate version < 1.0, please cite our previous paper:
@article{Stoffel2025,
doi = {10.21105/joss.07626},
url = {https://doi.org/10.21105/joss.07626},
year = {2025}, publisher = {The Open Journal},
volume = {10},
number = {107},
pages = {7626},
author = {Martin A. Stoffel and Bryan M. Li and Kalle Westerling and Sophie Arana and Max Balmus and Eric Daub and Steve Niederer},
title = {AutoEmulate: A Python package for semi-automated emulation},
journal = {Journal of Open Source Software}
}