Skip to content
Simulatte
GitHub · PyPI

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.

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}
}