Skip to content



kalasim is licensed under MIT License.



kalasim started off as a blunt rewrite of salabim. We are deeply thankful for its permissive licence that enabled setting up kalasim. A great starting point was in particular the wonderful article salabim: discrete event simulation and animation in Python.

salabims excellent documentation and wonderful examples made this project possible after all. kalasim reimplements all core APIs of salabim in a more typesafe API while also providing better test coverage, real-time capabilities and (arguably) more modern built-in support for visualization.


simmer is a process-oriented and trajectory-based Discrete-Event Simulation (DES) package for R.

It centres around the concept of a trajectory that defines a component lifecycle. To enable scale it is built on top of Rcpp (C++ backend for R).

We have adopted several examples and documentation bits from simmer, and are deeply grateful to the simmer developers for providing such a great and well maintained tool. simmer has also been a great source of inspiration to implement in particular the monitoring and visualization API of kalasim.


SimJulia is a combined continuous time / discrete event process oriented simulation framework written in Julia inspired by the Simula library DISCO and the Python library SimPy.

We have adopted several examples and documentation bits from SimJulia, and are deeply grateful its developers for providing such a great and well maintained tool.


SimPy is a process-based discrete-event simulation framework based on standard Python. Processes in SimPy are defined by Python generator functions. SimPy also provides various types of shared resources to model limited capacity congestion points (like servers, checkout counters and tunnels).

We have adopted several examples and documentation bits from SimPy, and are deeply grateful its developers for providing such a great and well maintained tool.


DSOL3 which is an open source, Java based suite of Java classes for continuous and discrete event simulation

Libraries used to build kalasim

kalasim is built on top of some great libraries. It was derived as merger of ideas, implementation and documentation from the following projects:

  • Kotlin - Not really a library, but for obvious reasons the foundation of this project
  • koin which is a pragmatic lightweight dependency injection framework for Kotlin developers
  • Apache Commons Math is a library of lightweight, self-contained mathematics and statistics components
  • jsonbuilder is a small artifact that serves a single purpose: It allows creating json using an idiomatic kotlin DSL. Its main purpose it to make sure kalasim provides a machine-readable log-format for all basics in a simulation.
  • is a flexible and elegant multiplatform test framework, assertions library, and property test library for Kotlin. We use it to make sure kalasim fulfils its component contract.



YouKit Profiler

With kalasim, we strive to enable large-scale time-discrete simulation models. To optimize the API and the engine for perormance, we rely on YourKit profiler. With its wonderful interface into JDK performace metrics, YourKit profiler allows us to signifantly improve the overall speed while reducing the memory footprint of kalasim.

YourKit supports open source projects with innovative and intelligent tools for monitoring and profiling Java and .NET applications. YourKit is the creator of YourKit Java Profiler.

Repo Maintainer

Holger Brandl holds a Ph.D. degree in machine learning and has developed new concepts in the field of computational linguistics. More recently he has co-authored publications in high-ranking journals such as Nature and Science.

To stay in sync with what's happening in tech, he's developing open-source tools, methods and algorithms for bioinformatics, high-performance computing and data science. He's passionate about machine learning, AI, analytics, elegant APIs and data visualisation. His professional scope mainly centers around systems biology and industrial manufacturing.