skip to navigation
skip to content

mosaik 2.0a2

Mosaik is a flexible Smart-Grid co-simulation framework.

Latest Version: 2.1.3


Mosaik is a simulation compositor for Smart Grid simulations.

It lets you re-use existing simulators and couple them to simulate large-scale Smart Grid scenarios. Mosaik offers powerful mechanisms to specify and compose these scenarios.


A simple demo scenario with mosaik:

>>> import mosaik
>>> sim_config = {
...     'ExampleSim': {'python': 'example_sim.mosaik:ExampleSim'},
... }
>>> def create_scenario(world):
...     exsim1 = world.start('ExampleSim')
...     exsim2 = world.start('ExampleSim')
...     a = [exsim1.A(init_val=0) for i in range(3)]
...     b = exsim2.B.create(2, init_val=0)
...     for i, j in zip(a, b):
...         world.connect(i, j, ('val_out', 'val_in'))
>>> world = mosaik.World(sim_config)
>>> create_scenario(world)
Progress: 25.00%
Progress: 50.00%
Progress: 75.00%
Progress: 100.00%


Mosaik requires Python >= 3.3. Use pip to install it, preferably into a virtualenv:

$ pip install mosaik

Documentation, Source code and issues

The documentation is available at

Please report bugs and ideas for improvment to our issue tracker.


2.0a2 – 2014-05-05

  • [NEW] Preliminary documentation and installation instructions (
  • [NEW] Simulators can now set data to other simulators using the asynchronous request set_data (issue #1).
  • [NEW] There is now a start timeout for external processes (issue #11).
  • [CHANGE] Mosaik now raises an error if a simulator uses the wrong API version (issue #4).
  • [CHANGE] Mosaik prints everything to stdout instead of using the Python logging module (issue #7).
  • [FIX] issue #2. Scheduling now works properly for processes using async. requests. New keyword argument async_requests for World.connect().
  • [FIX] issue #3. Local (in-process) Simulators can now also perform async. requests to mosaik (get_progress, get_related_entities, get_data, set_data).
  • [FIX] issue #8. Cleaned up the code a bit.
  • [FIX] issue #10. Tests for the sim manager improved.

2.0a1 – 2014-03-26

  • Mosaik 2 is a complete rewrite of mosaik 1 in order to improve its maintainability and flexibility. It is still an early alpha version and neither feature complete nor bug free.
  • Removed features:
    • The mosl DSL (including Eclipse xtext and Java) are now gone. Mosaik now only uses Python.
    • Mosaik now longer has executables but is now used as a library.
    • The platform manager is gone.
    • Mosaik no longer includes a database.
    • Mosaik no longer includes a web UI.
  • Mosaik now consists of four core components with the following feature sets:
    • mosaik API
      • The API has bean cleaned up and simplified.
      • Simulators and control strategies share the same API.
      • There are only four calls from mosaik to a simulator: init, create, step and get_data.
      • Simulators / processes can make asynchronous requests to mosaik during a step: get_progress, get_related_entities, get_data.
      • ZeroMQ with JSON is replaced by plain network sockets with JSON.
    • Scenarios:
      • Pure Python is now used to describe scenarios. This offers you more flexibility to create complex scenarios.
      • Scenario creation simplified: Start a simulator to get a model factory. Use the factory to create model instances (entities). Connect entities. Run simulation.
      • Connection rules are are no based on a primitive connect function that only connects two entities with each other. On top of that, any connection strategy can be implemented.
    • Simulation Manager:
      • Simulators written in Python 3 can be executed in process.
      • Simulators can be started as external processes.
      • Mosaik can connect to an already running instance of a simulator. This can be used as a replacement for the now gone platform manager.
    • Simulation execution:
      • The simulation is now event-based. No schedule and no synchronization points need to be computed.
      • Simulators can have different and varying step sizes.
  • Mosaik ecosystem:
You can find information about older versions on the history page


The original concepts for mosaik were developed by Steffen Schütten and Stefan Scherfke.

The author of mosaik version 2 is Stefan Scherfke.

File Type Py Version Uploaded on Size
mosaik-2.0a2-py2.py3-none-any.whl (md5) Python Wheel py2.py3 2014-05-05 32KB
mosaik-2.0a2.tar.gz (md5) Source 2014-05-05 803KB
  • Downloads (All Versions):
  • 30 downloads in the last day
  • 266 downloads in the last week
  • 1343 downloads in the last month