Simulatte
Discrete-event simulation framework for production planning and control and intralogistics, built on SimPy.
Simulatte models the dynamics of manufacturing systems: jobs flowing through workstations, release and dispatching policies controlling shopfloor congestion, and supporting infrastructure such as warehouses and AGVs (Automated Guided Vehicles). Use it to design and benchmark scheduling policies, evaluate WIP (Work-in-Progress) control strategies, and run repeatable multi-seed experiments.
- New here? Start with Basic Usage.
- Want job-shop tutorials? Go to Tutorials.
- Looking for warehouse and AGV simulation? See Intralogistics.
See Installation for setup.
5-minute example
from simulatte.environment import Environment
from simulatte.job import ProductionJob
from simulatte.server import Server
from simulatte.shopfloor import ShopFloor
env = Environment()
shopfloor = ShopFloor(env=env)
server = Server(env=env, capacity=1, shopfloor=shopfloor)
job = ProductionJob(
env=env,
sku="A",
servers=[server],
processing_times=[5.0],
due_date=100.0,
)
shopfloor.add(job)
env.run()
print(f"Makespan: {job.makespan:.1f}")
print(f"Utilization: {server.utilization_rate:.1%}")
What's next
- Basic Usage: from install to first simulation.
- Tutorials: copy/paste-friendly walkthroughs covering the core building blocks.
- Intralogistics: warehouse layouts, AGV fleets, and material transport.
- Agent Skill: the AI coding agent skill that helps write correct Simulatte simulations.
- Experimental: unstable APIs (Gymnasium RL wrapper).
Citing Simulatte
If you use Simulatte in your research, please cite it via its Zenodo record. The concept DOI 10.5281/zenodo.21027366 always resolves to the latest version; cite the version DOI 10.5281/zenodo.21027367 to pin v0.12.0.
@software{Mezzogori2026Simulatte,
author = {Mezzogori, Davide and Mercogliano, Nicola},
title = {{Simulatte}: A discrete-event simulation framework for production planning and control and intralogistics},
year = {2026},
version = {0.12.0},
doi = {10.5281/zenodo.21027366},
url = {https://doi.org/10.5281/zenodo.21027366}
}