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-simulator green-computing microgrid mosaik sustainable-ai testbed
Keywords from Contributors
co-simulation energy-system software-in-the-loop sustainability
Last synced: about 24 hours ago
JSON representation
Repository metadata
A co-simulation testbed for computing and energy systems 🍃
- Host: GitHub
- URL: https://github.com/dos-group/vessim
- Owner: dos-group
- License: mit
- Created: 2023-02-18T12:59:09.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2026-05-05T08:14:15.000Z (26 days ago)
- Last Synced: 2026-05-17T10:12:50.596Z (14 days ago)
- Topics: carbon-aware, co-simulator, green-computing, microgrid, mosaik, sustainable-ai, testbed
- Language: Python
- Homepage: https://vessim.readthedocs.io
- Size: 54.5 MB
- Stars: 84
- Watchers: 7
- Forks: 12
- Open Issues: 1
- Releases: 14
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
README.md
Vessim is a co-simulation testbed for computing and energy systems.
Vessim lets you simulate the interaction of real or simulated computing systems with on-site energy sources, storage, and the public grid.
It connects domain-specific simulators for power generation and batteries with real software and hardware.
Check out the website and documentation!
What can I do with Vessim?
Vessim helps you to understand and optimize how your (distributed) computing system interacts with (distributed) energy sources and battery storage.
- Energy-aware and carbon-aware applications: Develop applications that adapt their energy consumption to the carbon intensity and price of electricity.
- Microgrid composition: Experiment with adding solar panels, wind turbines, or batteries to see how they would affect your energy costs and carbon emissions.
- Demand response and power outages: Simulate demand response signals or power outages to understand your system's flexibility and test mitigation strategies.
Vessim can simulate multiple distributed microgrids in parallel and easily integrates historical datasets and new simulators.
Vessim’s software-in-the-loop capabilities let you run real systems against simulated microgrids. Connect live data sources like Prometheus and interact through REST APIs.
Simple Example
The scenario below simulates a microgrid with a computing system drawing 700W, a solar panel, and a 1.5 kWh battery.
import vessim as vs
environment = vs.Environment(sim_start="2022-06-09", step_size=300)
environment.add_microgrid(
name="datacenter",
actors=[
vs.Actor(name="server", signal=vs.StaticSignal(value=700), consumer=True),
vs.Actor(name="solar_panel", signal=vs.Trace.from_csv(
"datasets/solar_example.csv", column="Berlin", scale=5000
)),
],
dispatchables=[
vs.SimpleBattery(name="battery", capacity=1500, initial_soc=0.8, min_soc=0.3)
],
)
environment.add_controller(vs.CsvLogger("results/my_experiment"))
environment.run(until=24 * 3600)
Check out the Getting Started walkthrough and examples/ for more, including multi-microgrid setups and software-in-the-loop simulations.
Installation
You can install the latest release of Vessim
via pip:
pip install vessim
If you require software-in-the-loop capabilities, install the sil extension:
pip install vessim[sil]
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 more related papers and concrete use cases, 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: 25
- Push event: 55
- 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: 12
- Push event: 54
- Pull request review comment event: 7
- Pull request review event: 4
- Create event: 17
Committers metadata
Last synced: 23 days ago
Total Commits: 1,092
Total Committers: 12
Avg Commits per committer: 91.0
Development Distribution Score (DDS): 0.668
Commits in past year: 198
Committers in past year: 6
Avg Commits per committer in past year: 33.0
Development Distribution Score (DDS) in past year: 0.091
| Name | Commits | |
|---|---|---|
| Philipp Wiesner | w****r@t****e | 363 |
| 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 |
| martin | m****9@g****m | 6 |
| Ovi T | o****r@g****m | 6 |
| philipkalesse | 1****e | 5 |
| Marc Hentschel | m****l@c****e | 4 |
| GitHub Action | a****n@g****m | 2 |
| Fynn Kaschta | f****2@g****m | 2 |
| Otto Richter | o****o@c****g | 1 |
Committer domains:
- campus.tu-berlin.de: 2
- codeberg.org: 1
- github.com: 1
- campus.tu-berlin.de.de: 1
- windowslive.com: 1
- gmx.de: 1
- tu-berlin.de: 1
Issue and Pull Request metadata
Last synced: about 2 months ago
Total issues: 49
Total pull requests: 201
Average time to close issues: about 2 months
Average time to close pull requests: 8 days
Total issue authors: 6
Total pull request authors: 12
Average comments per issue: 0.8
Average comments per pull request: 0.4
Merged pull request: 168
Bot issues: 0
Bot pull requests: 0
Past year issues: 0
Past year pull requests: 11
Past year average time to close issues: N/A
Past year average time to close pull requests: 16 days
Past year issue authors: 0
Past year pull request authors: 6
Past year average comments per issue: 0
Past year average comments per pull request: 0.09
Past year merged pull request: 3
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)
- martinkuechler (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: mit
- Latest release: v0.13.1 (published 4 months ago)
- Last Synced: 2026-05-28T12:31:30.828Z (3 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent packages count: 0.976%
- Average: 1.008%
- Dependent repos count: 1.04%
Score: -Infinity