Surrogate Modeling Toolbox
Clone or download
Latest commit a5129c0 Sep 30, 2018

Build Status (Linux, OS X)

Build status (Windows)

Surrogate Modeling Toolbox

The surrogate modeling toolbox (SMT) is a Python package that contains a collection of surrogate modeling methods, sampling techniques, and benchmarking functions. This package provides a library of surrogate models that is simple to use and facilitates the implementation of additional methods. SMT is different from existing surrogate modeling libraries because of its emphasis on derivatives, including training derivatives used for gradient-enhanced modeling, prediction derivatives, and derivatives with respect to the training data. It also includes new surrogate models that are not available elsewhere: kriging by partial-least squares reduction and energy-minimizing spline interpolation. SMT is documented using custom tools for embedding automatically-tested code and dynamically-generated plots to produce high-quality user guides with minimal effort from contributors. SMT is distributed under the New BSD license.


Version 0.2

Required packages

SMT depends on the following modules: numpy, scipy, sk-learn, pyDOE2 and Cython.


Clone the repository from github then run:

pip install -e name_folder


To run tests, first install the python testing framework using:

pip install git+

and run



For examples demonstrating how to use SMT, go to the 'smt/examples' folder.



This repository was created by Mohamed Amine Bouhlel and is maintained by the MDOlab.