Vessim
A co-simulation testbed for energy-aware and carbon-aware applications and systems, based on Mosaik.
https://github.com/dos-group/vessim
Category: Energy Systems
Sub Category: Grid Management and Microgrid
Keywords
carbon-aware co-simulation energy-system simulation software-in-the-loop testbed
Keywords from Contributors
sustainability simulator routing
Last synced: about 8 hours ago
JSON representation
Repository metadata
A co-simulation testbed for carbon-aware applications and systems 🍃
- Host: GitHub
- URL: https://github.com/dos-group/vessim
- Owner: dos-group
- License: mit
- Created: 2023-02-18T12:59:09.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-05-10T09:41:24.000Z (29 days ago)
- Last Synced: 2025-05-31T15:51:47.069Z (8 days ago)
- Topics: carbon-aware, co-simulation, energy-system, simulation, software-in-the-loop, testbed
- Language: Python
- Homepage: https://vessim.readthedocs.io
- Size: 42.1 MB
- Stars: 59
- Watchers: 8
- Forks: 6
- Open Issues: 1
- Releases: 9
-
Metadata Files:
- Readme: README.md
- License: LICENSE
README.md
Vessim
Vessim is a versatile co-simulation testbed for carbon-aware applications and systems which connects domain-specific simulators for renewable power generation and energy storage with real software and hardware.
It simulates energy systems that interact with real or simulated computing systems for:
- Carbon-aware applications: Simulated microgrids offer real-time visibility and control via APIs, enabling the development of novel applications that interact with their energy system.
- Energy system composition: Examine how the integration of solar panels, wind energy, or batteries would affect the energy mix of your datacenters.
- Digital Twins: Predict future system states in carbon-aware datacenters, aid decision-making, and assess risks during extreme events like power outages.
- Quality Assurance: Apply Vessim in continuous integrating testing or use it to validate software roll-outs in a controlled environment.
Vessim can simulate large numbers of microgrids in parallel, comes with ready-to-use datasets, can execute simulated experiments faster than real-time, and is easily extendable with new simulators of any platform through Mosaik's TCP interface.
Check out the official documentation!
Example scenario
The scenario below simulates a microgrid consisting of a simulated computing system (which consistently draws 400W), a single producer (a solar power plant who's production is modelled based on a dataset provided by Solcast), and a battery. The Monitor periodically stores the energy system state.
import vessim as vs
environment = vs.Environment(sim_start="2022-06-15")
environment.add_microgrid(
actors=[
vs.ComputingSystem(nodes=[vs.MockSignal(value=400)]),
vs.Actor(
name="solar_panel",
signal=vs.HistoricalSignal.load("solcast2022_global", column="Berlin")
),
],
controllers=[vs.Monitor(outfile="result.csv")],
storage=vs.SimpleBattery(capacity=100),
step_size=60,
)
environment.run(until=24 * 3600) # 24h
Installation
You can install the latest release of Vessim
via pip:
pip install vessim
If you require software-in-the-loop (SiL) capabilities, you should additionally install the sil
extension:
pip install vessim[sil]
For complex scenarios that involve custom co-simulation actors we recommend cloning and editing this depository directly.
Work in progress
Our team at the Distributed and Operating Systems group at TU Berlin is actively working to improve Vessim.
We are currently working on the following aspects and features:
- Calibration: We are working on a methodology for calibrating Vessim simulations on real hardware testbeds.
- System Advisor Model (SAM): We are working on integrating NREL's SAM as a subsystem in Vessim, allowing for better simulation of solar arrays, wind farms, and other types of renewable energy generators.
- Battery degradation: We are working on integrating NREL's BLAST-Lite for modeling battery lifetime and degradation
- Vessim X Flower: We are working on integrating Vessim into the federated learning framework Flower.
- Software-in-the-loop API: We will soon release a new API for SiL simulations with new examples and better documentation.
Datasets
Vessim comes with ready-to-user datasets for solar irradiance and average carbon intensity provided by
We're working on documentation on how to include custom datasets for your simulations.
Publications
If you use Vessim in your research, please cite our paper:
- Philipp Wiesner, Ilja Behnke, Paul Kilian, Marvin Steinke, and Odej Kao. "Vessim: A Testbed for Carbon-Aware Applications and Systems." 3rd Workshop on Sustainable Computer Systems (HotCarbon). 2024.
@inproceedings{wiesner2024vessim,
title = {Vessim: A Testbed for Carbon-Aware Applications and Systems},
author = {Wiesner, Philipp and Behnke, Ilja and Kilian, Paul and Steinke, Marvin and Kao, Odej},
booktitle = {3rd Workshop on Sustainable Computer Systems (HotCarbon)},
year = {2024},
}
For details in Vessim's software-in-the-loop simulation methodology, refer to our journal paper:
- Philipp Wiesner, Marvin Steinke, Henrik Nickel, Yazan Kitana, and Odej Kao. "Software-in-the-Loop Simulation for Developing and Testing Carbon-Aware Applications." Software: Practice and Experience, 53 (12). 2023.
@article{wiesner2023sil,
author = {Wiesner, Philipp and Steinke, Marvin and Nickel, Henrik and Kitana, Yazan and Kao, Odej},
title = {Software-in-the-loop simulation for developing and testing carbon-aware applications},
journal = {Software: Practice and Experience},
year = {2023},
volume = {53},
number = {12},
pages = {2362-2376},
doi = {https://doi.org/10.1002/spe.3275}
}
Owner metadata
- Name: DOS Group at TU Berlin
- Login: dos-group
- Email:
- Kind: organization
- Description: Distributed and Operating Systems group at Technische Universität Berlin
- Website: https://tu.berlin/en/dos
- Location: Technische Universität Berlin
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/5664005?v=4
- Repositories: 71
- Last ynced at: 2024-04-16T16:22:44.883Z
- Profile URL: https://github.com/dos-group
GitHub Events
Total
- Release event: 10
- Watch event: 13
- Delete event: 8
- Push event: 21
- Pull request review event: 2
- Pull request event: 3
- Fork event: 2
- Create event: 12
Last Year
- Release event: 10
- Watch event: 13
- Delete event: 8
- Push event: 21
- Pull request review event: 2
- Pull request event: 3
- Fork event: 2
- Create event: 12
Committers metadata
Last synced: 12 days ago
Total Commits: 903
Total Committers: 7
Avg Commits per committer: 129.0
Development Distribution Score (DDS): 0.694
Commits in past year: 66
Committers in past year: 3
Avg Commits per committer in past year: 22.0
Development Distribution Score (DDS) in past year: 0.424
Name | Commits | |
---|---|---|
marvin.steinke | m****e@c****e | 276 |
kilianp14 | P****n@g****e | 206 |
Philipp Wiesner | w****r@t****e | 192 |
amandamalk0601 | a****1@w****m | 147 |
marvin.steinke | m****e@c****e | 74 |
Ovi T | o****r@g****m | 6 |
GitHub Action | a****n@g****m | 2 |
Committer domains:
- github.com: 1
- campus.tu-berlin.de.de: 1
- windowslive.com: 1
- tu-berlin.de: 1
- gmx.de: 1
- campus.tu-berlin.de: 1
Issue and Pull Request metadata
Last synced: 1 day ago
Total issues: 54
Total pull requests: 158
Average time to close issues: about 2 months
Average time to close pull requests: 7 days
Total issue authors: 6
Total pull request authors: 7
Average comments per issue: 0.74
Average comments per pull request: 0.39
Merged pull request: 137
Bot issues: 0
Bot pull requests: 0
Past year issues: 6
Past year pull requests: 20
Past year average time to close issues: 15 days
Past year average time to close pull requests: 11 days
Past year issue authors: 3
Past year pull request authors: 5
Past year average comments per issue: 0.5
Past year average comments per pull request: 0.1
Past year merged pull request: 15
Past year bot issues: 0
Past year bot pull requests: 0
Top Issue Authors
- marvin-steinke (29)
- kilianp14 (8)
- Impelon (6)
- birnbaum (6)
- amandamalk0601 (4)
- ArneTR (1)
Top Pull Request Authors
- marvin-steinke (50)
- birnbaum (39)
- kilianp14 (37)
- amandamalk0601 (23)
- Impelon (7)
- crai0 (1)
- Cem2024 (1)
Top Issue Labels
- enhancement (24)
- bug (12)
- documentation (9)
- question (9)
- not important (7)
- wontfix (1)
Top Pull Request Labels
- documentation (9)
- enhancement (7)
Package metadata
- Total packages: 1
-
Total downloads:
- pypi: 228 last-month
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 23
- Total maintainers: 1
pypi.org: vessim
A simulator for carbon-aware applications and systems.
- Homepage:
- Documentation: https://vessim.readthedocs.io/
- Licenses: MIT License
- Latest release: 0.9.3 (published 29 days ago)
- Last Synced: 2025-06-07T09:02:39.817Z (1 day ago)
- Versions: 23
- Dependent Packages: 0
- Dependent Repositories: 0
- Downloads: 228 Last month
-
Rankings:
- Dependent packages count: 6.633%
- Average: 18.622%
- Dependent repos count: 30.611%
- Maintainers (1)
Score: 11.473976714831654