carolina
Python wrapper around Dakota
What it is and what it does
Carolina provides a Python interface to Dakota, a Sandia National Laboratories toolkit for design optimization, parameter studies, and uncertainty quantification. It is a maintained fork of pyDAKOTA by Equinor, designed to simplify wrapping Dakota in Python without requiring MPI support. The package depends on numpy and requires Dakota and Boost libraries to be pre-installed on your system.
You use Carolina when you need to run Dakota-based workflows—such as design space exploration, sensitivity analysis, or surrogate model construction—from within Python code. The installation requires careful setup of system dependencies (Boost, Dakota, CMake, C/C++ compiler), but once configured, it allows direct Python access to Dakota's optimization and UQ algorithms. It supports Python 3.12, 3.13, and 3.14.
Use it for:
- Run design optimization studies where Dakota explores parameter spaces to find optimal designs
- Perform uncertainty quantification and sensitivity analysis on computational models
- Build surrogate models or metamodels from expensive simulation runs
- Conduct parameter studies to understand how model outputs vary across input ranges
- Integrate Dakota-based workflows into larger Python data science or engineering pipelines
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Carolina is a Python wrapper around Dakota, a design optimization and uncertainty quantification toolkit, enabling Python developers to use Dakota's capabilities without MPI support.
Yes, if you already use Dakota and want a Python interface without MPI overhead, and you are willing to manage system dependencies (Boost, Dakota, compilers). No, if you need a lightweight, pure-Python optimization library or lack the system-level build infrastructure. The package is actively maintained and has no known vulnerabilities, but installation complexity is the primary barrier.
Install
carolina on PyPI
pip
pip install carolinauv
uv add carolinapoetry
poetry add carolinaInstalling carolina
Before you install
Medium install friction: requires pre-installed Boost (with Boost.Python) and Dakota libraries, plus CMake and a C/C++ compiler. Pre-built wheels are available for Python 3.12, 3.13, and 3.14 on Linux and macOS, but building from source involves complex multi-step compilation. Package is actively maintained.
License in practice
Apache-2.0 is permissive, allowing commercial and private use with minimal restrictions; you must retain license notices in distributions.
Quickstart
pip install carolina
import carolina
# Use carolina to interface with Dakota for optimization or UQ tasks
Requires Dakota 6.18+ and Boost libraries to be installed and discoverable; dakota binary must be on system PATH; environment variables BOOST_ROOT and BOOST_PYTHON may need to be set depending on your system.
Verify before relying
- Whether pre-built wheels work out-of-the-box or require additional system libraries beyond pip install
- Specific Dakota versions tested and guaranteed to work beyond the stated 6.18 minimum
- Performance characteristics or scalability limits for large parameter studies
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.12) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 1 — numpy |
| Maintenance | actively maintained — 50 days since the last release |
| First released | |
| Downloads | 95,353/month — #13,267 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: carolina-2.0.5-cp312-cp312-macosx_15_0_arm64.whl; carolina-2.0.5-cp312-cp312-manylinux_2_28_x86_64.whl; carolina-2.0.5-cp313-cp313-macosx_15_0_arm64.whl; carolina-2.0.5-cp313-cp313-manylinux_2_28_x86_64.whl; carolina-2.0.5-cp314-cp314-macosx_15_0_arm64.whl; carolina-2.0.5-cp314-cp314-manylinux_2_28_x86_64.whl
Tags
More Scientific/Engineering packages
NumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
scikit-learnscikit-learn provides a comprehensive Python…
permissive · top 1,000 on PyPI
dilldill extends Python's pickle module to…
permissive · top 1,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
ropt-dakotaProvides Dakota optimization algorithms as a…
copyleft · top 15,000 on PyPI
MAPIEMAPIE computes prediction intervals and…
permissive · top 15,000 on PyPI
botorchBoTorch provides a modular, PyTorch-based…
permissive · top 5,000 on PyPI
fckitlibProvides Fortran modules and a unit testing…
unclear · top 15,000 on PyPI
mpichProvides a high-performance Message Passing…
unclear · top 15,000 on PyPI
mpi4pympi4py provides Python bindings for the Message…
permissive · top 5,000 on PyPI
whylogs-sketchingProvides Python bindings to Apache…
permissive · top 15,000 on PyPI
casadiCasADi is a framework for algorithmic…
copyleft · top 5,000 on PyPI
AeroSandboxAeroSandbox is an optimization toolkit for…
permissive · top 15,000 on PyPI
impi-rtProvides Intel's standards-based MPI…
unclear · top 15,000 on PyPI