Skip to main content

A simulator for carbon-aware applications and systems.

Project description

Vessim Logo

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:

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

For more related papers and concrete use cases, 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.15.0.tar.gz (42.9 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.15.0-py3-none-any.whl (313.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: vessim-0.15.0.tar.gz
  • Upload date:
  • Size: 42.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","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.15.0.tar.gz
Algorithm Hash digest
SHA256 298980eba47a1d264355fd66563a75563b0d3a4fc498a2869ca867cf5a615d8a
MD5 bf5387b9dcc7d8da96e34ee2cbb098d0
BLAKE2b-256 5078d15c55510c6af0c66f787011cd10e21fef1d03af71391f072304e572ec01

See more details on using hashes here.

File details

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

File metadata

  • Download URL: vessim-0.15.0-py3-none-any.whl
  • Upload date:
  • Size: 313.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","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.15.0-py3-none-any.whl
Algorithm Hash digest
SHA256 19ac8437916c3f719b4f1466c7e439dbb4982a99eb59ea9e69898e299b0acc7a
MD5 35db2c0dbbd75dbe456eb42f294f1de4
BLAKE2b-256 323c29353c94500fd8435a2220d67c341e4c50f32fcaba45e680d9a1fbb2591a

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