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
Last synced: about 3 hours ago
JSON representation
Repository metadata
A co-simulation testbed for carbon-aware computing systems 🍃
- Host: GitHub
- URL: https://github.com/dos-group/vessim
- Owner: dos-group
- License: mit
- Created: 2023-02-18T12:59:09.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2026-01-29T14:24:59.000Z (11 days ago)
- Last Synced: 2026-02-06T15:29:14.424Z (3 days ago)
- Topics: carbon-aware, co-simulation, energy-system, simulation, software-in-the-loop, testbed
- Language: Python
- Homepage: https://vessim.readthedocs.io
- Size: 51.1 MB
- Stars: 77
- Watchers: 7
- Forks: 12
- Open Issues: 4
- Releases: 14
-
Metadata Files:
- Readme: README.md
- License: LICENSE
README.md
Vessim is a co-simulation testbed for carbon-aware systems.
It allows you to simulate the interaction of computing systems with local energy systems, including renewable energy sources, energy storage, and the public grid.
Vessim can connect domain-specific simulators for power generation and batteries with real software and hardware.
Check out the documentation!
What can I do with Vessim?
Vessim helps you to understand and optimize how your (distributed) computing system interacts with (distributed) renewable energy sources and battery storage.
- Carbon-aware applications: Develop applications that automatically reduce their energy consumption when the grid is powered by fossil fuels, and increase activity when renewable energy is abundant.
- Energy system composition: Experiment with adding solar panels, wind turbines, or batteries to see how they would affect your energy costs and carbon emissions.
- Plan for outages and extreme events: Simulate power outages or renewable energy fluctuations to understand risks and test backup strategies.
- Quality assurance: Apply Vessim in continuous integrating testing to validate software roll-outs in a controlled environment.
Vessim can run simulations faster than real-time, includes historical datasets for realistic scenarios, and can simulate multiple microgrids in parallel.
You can test scenarios using historical data or connect real applications and hardware to simulated energy systems.
Example
The scenario below simulates a microgrid consisting of a simulated computing system (drawing 700W),
a solar power plant (modelled based on a dataset provided by Solcast), and a battery.
The vs.CsvLogger periodically stores the energy system state in a CSV file.
import vessim as vs
environment = vs.Environment(sim_start="2022-06-15", step_size=300) # 5 minute step size
microgrid = environment.add_microgrid(
name="datacenter",
actors=[
vs.Actor(name="server", signal=vs.StaticSignal(value=-700)), # negative = consumes power
vs.Actor(name="solar_panel", signal=vs.Trace.load("solcast2022_global", column="Berlin", params={"scale": 5000})), # 5kW maximum
],
storage=vs.SimpleBattery(capacity=100),
)
# Write results to CSV
environment.add_controller(vs.CsvLogger("./results.csv"))
environment.run(until=24 * 3600) # 24h simulated time
Check out the tutorials and examples/!
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]
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." ACM SIGENERGY Energy Informatics Review 4 (5). 2024.
For details in Vessim's software-in-the-loop simulation methodology, refer to:
- 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.
For all related papers, please refer to the documentation.
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: 13
- Delete event: 10
- Pull request event: 6
- Fork event: 3
- Watch event: 24
- Push event: 54
- Pull request review comment event: 7
- Pull request review event: 4
- Create event: 17
Last Year
- Release event: 13
- Delete event: 10
- Pull request event: 5
- Fork event: 2
- Watch event: 14
- Push event: 53
- Pull request review comment event: 7
- Pull request review event: 4
- Create event: 17
Committers metadata
Last synced: 5 days ago
Total Commits: 999
Total Committers: 8
Avg Commits per committer: 124.875
Development Distribution Score (DDS): 0.713
Commits in past year: 105
Committers in past year: 2
Avg Commits per committer in past year: 52.5
Development Distribution Score (DDS) in past year: 0.01
| Name | Commits | |
|---|---|---|
| Philipp Wiesner | w****r@t****e | 287 |
| marvin.steinke | m****e@c****e | 276 |
| kilianp14 | P****n@g****e | 206 |
| 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 |
| Otto Richter | o****o@c****g | 1 |
Committer domains:
- codeberg.org: 1
- github.com: 1
- campus.tu-berlin.de.de: 1
- windowslive.com: 1
- gmx.de: 1
- campus.tu-berlin.de: 1
- tu-berlin.de: 1
Issue and Pull Request metadata
Last synced: 7 days ago
Total issues: 49
Total pull requests: 200
Average time to close issues: about 2 months
Average time to close pull requests: 8 days
Total issue authors: 6
Total pull request authors: 11
Average comments per issue: 0.8
Average comments per pull request: 0.4
Merged pull request: 167
Bot issues: 0
Bot pull requests: 0
Past year issues: 0
Past year pull requests: 10
Past year average time to close issues: N/A
Past year average time to close pull requests: 8 minutes
Past year issue authors: 0
Past year pull request authors: 5
Past year average comments per issue: 0
Past year average comments per pull request: 0.0
Past year merged pull request: 2
Past year bot issues: 0
Past year bot pull requests: 0
Top Issue Authors
- marvin-steinke (25)
- Impelon (7)
- kilianp14 (7)
- birnbaum (6)
- amandamalk0601 (3)
- ArneTR (1)
Top Pull Request Authors
- marvin-steinke (73)
- birnbaum (48)
- kilianp14 (39)
- amandamalk0601 (24)
- Impelon (8)
- crai0 (2)
- Cem2024 (2)
- McdotcomGH (1)
- ghafek (1)
- Nirusu-GH (1)
- fnetX (1)
Top Issue Labels
- enhancement (22)
- bug (9)
- question (8)
- documentation (7)
- not important (5)
- wontfix (1)
Top Pull Request Labels
- documentation (9)
- enhancement (7)
- codex (4)
Package metadata
- Total packages: 1
- Total downloads: unknown
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 1
proxy.golang.org: github.com/dos-group/vessim
- Homepage:
- Documentation: https://pkg.go.dev/github.com/dos-group/vessim#section-documentation
- Licenses:
- Latest release: v0.13.1 (published 19 days ago)
- Last Synced: 2026-01-26T06:28:32.925Z (14 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
Score: -Infinity