Freedom251 › Statistical Analysis Software
Black-it

What Black-it is
Black-it is a free, open-source Python package for calibrating agent-based models and simulations. It samples parameter sets, runs the model for each set, and compares results with real data through a loss function until convergence or an iteration limit. Documented losses include MinkowskiLoss, MethodOfMomentsLoss, GslDivLoss, and FourierLoss. Search methods cover random uniform, Halton, R sequence, best batch, Gaussian process, XGBoost, random forest, and particle swarm sampling. Interfaces let users provide custom models, loss functions, and samplers. A Python wrapper connects external simulators through a language-agnostic interface, including low-level-language models and Mesa. Simulations run in parallel across CPU cores by default, with process counts set through n_jobs. Configured saving folders store checkpoints after each batch and can restore interrupted calibration. Black-it requires Python 3.9 or later and lists Poetry as a requirement. Installation is available through PyPI or GitHub. The project is released under AGPLv3+.
Who it suits
It suits developers and science or research users working with agent-based models, including economics, epidemiology, biology, and logistics. Users needing custom simulators or search methods can extend its interfaces.
What it does well
- Free and open source
- Many documented sampling algorithms
- Supports custom models and loss functions
- Parallel CPU execution by default
- Restorable batch checkpoints
What to know first
- Requires Python 3.9 or later
- Poetry is also listed as a requirement
- AGPLv3+ licensing applies
- Linux is the listed platform
Verdict
Black-it provides calibration and optimization tools for agent-based simulations, with extensible interfaces and parallel execution. Its Python and licensing requirements should be checked before adoption.
Facts from Black-it's own pages
- Built-in losses
- Documented loss functions include MinkowskiLoss, MethodOfMomentsLoss, GslDivLoss, and FourierLoss. · bancaditalia.github.io, 12 Oct 2026
- Calibration process
- Calibration iteratively samples parameters, simulates data for each sample, and evaluates a loss against real data until the loss is close to zero or the iteration limit is reached. · bancaditalia.github.io, 12 Oct 2026
- Checkpointing
- When a saving folder is configured, calibration checkpoints are saved after each batch and can be restored to resume an interrupted run. · bancaditalia.github.io, 4 Oct 2026
- Checkpoints
- Calibration checkpoints can be saved automatically per batch and restored to resume an interrupted calibration. · bancaditalia.github.io, 12 Oct 2026
- Customization
- Users can implement custom models, loss functions, and samplers by extending the package’s interfaces. · bancaditalia.github.io, 4 Oct 2026
- Custom models
- Users can provide a custom model function or wrap an external simulator for use with the calibrator. · bancaditalia.github.io, 12 Oct 2026
- Distribution
- The package can be installed from PyPI with pip install black-it or directly from its GitHub repository. · github.com, 4 Oct 2026
- External simulators
- A Python wrapper can connect an external simulator, including models written in low-level languages or using Mesa, through a language-agnostic interface. · bancaditalia.github.io, 4 Oct 2026
- General use
- The package can also optimize built-in or custom models when several search techniques need to be combined. · bancaditalia.github.io, 4 Oct 2026
- Installation
- The documentation says the package requires Python 3.9 or later and can be installed with pip install black-it. · bancaditalia.github.io, 12 Oct 2026
- Intended audience
- PyPI classifies the package for developers and science or research users. · pypi.org, 12 Oct 2026
- Intended use
- The package was created with agent-based models in mind and can also be used as a general optimizer for built-in or custom models. · bancaditalia.github.io, 12 Oct 2026
- Intended users
- The project describes use across economics, epidemiology, biology, logistics, and other agent-based modeling or simulation research. · github.com, 4 Oct 2026
- License
- Black-it is released under the GNU Affero General Public License v3 or later (AGPLv3+). · bancaditalia.github.io, 12 Oct 2026
- Maker
- The project documentation credits Banca d'Italia and identifies original author Gennaro Catapano and co-authors or maintainers. · bancaditalia.github.io, 12 Oct 2026
- Parallel execution
- Model simulation is parallelized by default across the computer’s CPU cores, and the process count can be set with n_jobs. · bancaditalia.github.io, 4 Oct 2026
- Parallelization
- Model simulations are parallelized by default across the computer's cores, and the number of processes can be set with n_jobs. · bancaditalia.github.io, 12 Oct 2026
- Purpose
- Black-it is a black-box calibrator that estimates model parameters using a loss function and selected search algorithms. · bancaditalia.github.io, 12 Oct 2026
- Requirements
- The project requires Python 3.9 or later; the documentation also lists Poetry as a requirement. · bancaditalia.github.io, 4 Oct 2026
- Search algorithms
- Documented samplers include random uniform, Halton, R sequence, best batch, Gaussian process, XGBoost, random forest, and particle swarm samplers. · bancaditalia.github.io, 12 Oct 2026
- Search methods
- Documented samplers include uniform and low-discrepancy methods, plus methods based on prior results such as Gaussian process, XGBoost, random forest, and particle swarm samplers. · bancaditalia.github.io, 4 Oct 2026
- Simulator compatibility
- The simulator wrapper interface is language agnostic and the documentation describes using Python ABM frameworks such as Mesa or custom low-level models. · bancaditalia.github.io, 12 Oct 2026
- Support
- The project documentation directs users to GitHub Issues for support, bug reports, and feature requests, and lists author email as another feedback route. · bancaditalia.github.io, 12 Oct 2026
Where Black-it stands on Freedom251
- Statistical Analysis Software#85 of 106