Simulatte
Discrete-event simulation framework for job-shop scheduling and intralogistics, built on SimPy.
- New here? Start with Getting Started.
- Want examples? Go to Tutorials.
Install
Requires Python 3.12+ (tested on Python 3.12–3.14).
pip install simulatte
or with uv:
uv add simulatte
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
- Job-shop basics: multiple servers, multiple jobs, common metrics.
- Release control: pre-shop pool, release policies (LumsCor, SLAR), and triggers.
- ShopFloor extensibility: hooks, WIP strategies, and metrics collectors.
- Experimental: Materials, warehouse, and AGVs: FIFO blocking material delivery.
- Multi-run experiments: repeatable runs across seeds.
- Logging: trace events, debug simulations, analyze history.