Skip to main content

A simulator for carbon-aware applications and systems.

Project description

Vessim Logo

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

and

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:

For details in Vessim's software-in-the-loop simulation methodology, refer to:

For all related papers, please refer to the documentation.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vessim-0.13.1.tar.gz (10.8 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vessim-0.13.1-py3-none-any.whl (35.2 kB view details)

Uploaded Python 3

File details

Details for the file vessim-0.13.1.tar.gz.

File metadata

  • Download URL: vessim-0.13.1.tar.gz
  • Upload date:
  • Size: 10.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.27 {"installer":{"name":"uv","version":"0.9.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for vessim-0.13.1.tar.gz
Algorithm Hash digest
SHA256 b3e057fd919dddc81b731cc6efd4ae924f4c1dd28a82179caeb0909a5d0f2ec3
MD5 2572421002680a20c4300ba155184716
BLAKE2b-256 4978094044cadffbb8d0006488563bfd7e6cf07d3ac9dfcd90aa927338b27ed5

See more details on using hashes here.

File details

Details for the file vessim-0.13.1-py3-none-any.whl.

File metadata

  • Download URL: vessim-0.13.1-py3-none-any.whl
  • Upload date:
  • Size: 35.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.27 {"installer":{"name":"uv","version":"0.9.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for vessim-0.13.1-py3-none-any.whl
Algorithm Hash digest
SHA256 417ac13355d442b1dcf5de27d68f4c15917cc93725f99c808f51cf5a3a363597
MD5 8e465f13aff3a855e4e185bab63dae8d
BLAKE2b-256 e7ec0482badeb1fbefe45076767506ce45f663eb18e37ab24264e8114395f0b2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page