Optimization and Analytics for Any Python Model

quickly and easily integrates with your Python model providing an intuitive user interface for model optimization and analytics.

Request a Demo

Build your Python model for artificial intelligence / machine learning (AI/ML), financial and portfolio planning, process simulation, agent-based analysis, or other types of studies, and then use SimWrapper to perform optimization, experimental design, sampling, batch runs, and response surface characterization on your model. Use the analytics, data mining, and graphing tools in SimWrapper to explore your results, or easily export them to Tableau, Qlik, Excel, or other data exploration and visualization frameworks.

Multi-objective Efficient Frontier

Analysts invest large amounts of time and money creating a model, populating it with data, and validating it for use. However, analysts rarely, if ever, retrieve all of the knowledge and insights that the model may yield.

Once you have a model, use SimWrapper to answer questions like:

  • What are the best hyperparameter values to achieve the best AI/ML model performance?
  • What are the best portfolio choices to maximize returns and minimize risk?
  • What are the best system parameters to use to make a system run most efficiently and at least cost?
  • For a model output, which model inputs have the greatest impact? Are there model inputs that have no impact on the model outputs?
  • With multiple competing objectives what are the best possible tradeoffs between them?

Answers to these questions are not only important for validating the legitimacy of the model, but they provide key insights for decision makers within the organization, increasing the return on investment of your analyst team and the studies they perform.

SimWrapper can be used to manipulate any combination of binary, integer, discrete, continuous, enumerated, permutation/sequencing, and design inputs to your model. It supports constrained or unconstrained optimization with one or more objectives, and allows linear, nonlinear, or more complex functions. For multiple objectives, SimWrapper does not rely on simple weighting schemes that require subjective weightings and yield only a single best result. SimWrapper directly searches for and displays a true efficient frontier of optimal tradeoffs between your competing objectives.


SimWrapper is a cross-platform, Java application that can be used to wrap virtually any new or legacy model. You can run it on Windows, Linux, or Mac, wherever your model runs. The user interface guides the user through specifying the model inputs to vary and the outputs to collect. SimWrapper interacts with OptQuest (OptTek’s proprietary optimization engine) to perform optimization, design of experiments, sampling, and batch runs. SimWrapper then uses a library of analytical tools to analyze completed model runs and provide information on model sensitivities. SimWrapper also provides two- and three-dimensional plotting of model inputs and outputs to visually explore the executed model runs.

To optimize your Python model simply add some code to your Python model to update input parameters provided by SimWrapper, execute your model, and the pass model outputs back to SimWrapper. Example models are available in Python to get you started. Hooking your model up to SimWrapper can be done in minutes.


  • Automates optimization, design of experiments, batch runs, and post-run analytics eliminating tedious manual scenario manipulation
  • Builds complex tradespaces for multiple objectives with or without constraints
  • Analytics to identify influential variables and good operating regions
  • Supports parallel runs locally or on a computing cluster

What can OptTek do for you?

Solving the world's most complex challenges through optimization and analytics for over 30 years.