Skip to main content


Github latest release Github last commit GitHub Contributors Github issues GitHub pull requests PRs pypi version pypi Python version DockerHub last version tests docs: up total PyPI downloads month PyPI downloads Github license DOI code style: black linting: ruff type checker: pyright



About Sinergym

Sinergym provides a Gymnasium-based interface to interact with simulation engines such as EnergyPlus. This allows control in simulation time through custom controllers, including reinforcement learning agents.

For more information about Sinergym, refer to its documentation.

Main features

⚙️ Simulation engines compatibility. Sinergym is currently compatible with the EnergyPlus Python API for controller-building communication.

📊 Benchmark environments. Similar to Atari or Mujoco, Sinergym allows the use of benchmarking environments to test and compare RL algorithms or custom control strategies.

🛠️ Custom experimentation. Sinergym enables effortless customization of experimental settings. Users can create their own environments or customize pre-configured ones within Sinergym. Select your preferred reward functions, wrappers, controllers, and more!

🏠 Automatic building model adaptation. Automatic adaptation of building models to align with user-defined settings.

🪛 Automatic actuator control. Seamless management of building actuators via the Gymnasium interface. Users only need to specify actuator names, and Sinergym will do the rest.

🤖 Stable Baselines 3 integration. Sinergym is highly integrated with Stable Baselines 3 algorithms, wrappers and callbacks.

✅ Controller-agnostic. Any controller compatible with the Gymnasium interface can be integrated with Sinergym.

☁️ Google Cloud execution. Sinergym provides several features to execute experiments in Google Cloud.

📈 Weights & Biases logging. Automate the logging of training and evaluation data, and record your models in the cloud. Sinergym facilitates reproducibility and cloud data storage through Weights and Biases integration.

📒 Notebook examples. Learn how to get the most out of Sinergym through our notebooks examples.

📚 Extensive documentation, unit tests, and GitHub actions workflows. Sinergym follows proper development practices facilitating community contributions.



Project structure

This repository is organized into the following directories:

  • sinergym/: the source code of Sinergym.
  • docs/: Sinergym's documentation sources.
  • examples/: notebooks with several examples illustrating how to use Sinergym.
  • tests/: Sinergym tests code.
  • scripts/: auxiliary and helper scripts.

Available environments

For a complete and up-to-date list of available environments, please refer to our documentation.

Installation

Read INSTALL.md for detailed installation instructions.

Usage example

This is a simple script using Sinergym:

import gymnasium as gym
import sinergym

# Create environment
env = gym.make('Eplus-datacenter-mixed-continuous-stochastic-v1')

# Initialization
obs, info = env.reset()
truncated = terminated = False

# Run episode
while not (terminated or truncated):
    action = env.action_space.sample() # random action selection
    obs, reward, terminated, truncated, info = env.step(action)

env.close()

Several usage examples can be consulted here.

Contributing

To report questions and issues, open an issue following the provided templates. We appreciate your feedback!

Check out CONTRIBUTING.md for specific details on how to contribute.

To better adhere to the required standards of this repository, we recommend running the following command:

chmod +x hooks/*
git config core.hooksPath hooks

This will add git hooks that execute before using typical commands (add, commit, push, etc.) to verify that the methodology is correct before proceeding with the process.

Projects using Sinergym

The following are some of the projects using Sinergym:

📝 If you want to appear in this list, feel free to open a pull request and include the following badge in your repository:

Repository activity

Alt

Citing Sinergym

If you use Sinergym in your work, please cite our paper:

@article{Campoy2025sinergym,
  title = {Sinergym – A virtual testbed for building energy optimization with Reinforcement Learning},
  author = {Alejandro Campoy-Nieves and Antonio Manjavacas and Javier Jiménez-Raboso and Miguel Molina-Solana and Juan Gómez-Romero},
  journal   = {Energy and Buildings},
  volume = {327},
  articleno = {115075},
  year = {2025},
  issn = {0378-7788},
  doi = {10.1016/j.enbuild.2024.115075},
  url = {https://www.sciencedirect.com/science/article/pii/S0378778824011915},
}

Metadata

Release files for sinergym 3.12.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sinergym 3.12.2
File Size Uploaded
sinergym-3.12.2.tar.gz 3.3 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for sinergym 3.12.2
File Interpreter ABI Platform
sinergym-3.12.2-py3-none-any.whl Python 3 none any Details

Total release size: 6.8 MB

Release files / sinergym-3.12.2.tar.gz

Download URL sinergym-3.12.2.tar.gz
Size 3.3 MB
Tags Source
SHA-256 checksum
How to use checksums
46d34261f770d823350c5ee9d896520dbdf1a0a7409eb51506a81f5bde17db11
BLAKE2b-256 checksum
How to use checksums
ef620ff5c4c3573bce61883ec2d85e1feb23ecece8912b7af51e8cba78e90bcf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 21, 2026.

Transparency log

Release files / sinergym-3.12.2-py3-none-any.whl

Download URL sinergym-3.12.2-py3-none-any.whl
Size 3.5 MB
Tags Python 3
SHA-256 checksum
How to use checksums
6a9042e6824dde68559dab709f06d1550ffc530e082b7bdc30b921aa6ed93c3e
BLAKE2b-256 checksum
How to use checksums
b43df2d65459a7397a784dd1ba80c2fcfc6e43771dc77a9b5462a825c97d8218
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 21, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

3.12.2 This release

2 release files

3.11.0

2 release files

3.10.0

2 release files

3.9.0

2 release files

3.8.4

2 release files

3.8.2

2 release files

3.8.1

2 release files

3.8.0

2 release files

3.7.3

2 release files

3.7.0

2 release files

3.6.2

2 release files

3.6.0

2 release files

3.5.1

1 release file

3.5.0

1 release file

3.4.0

1 release file

3.3.8

1 release file

3.3.7

1 release file

3.3.3

1 release file

3.3.1

1 release file

3.3.0

1 release file

3.2.10

1 release file

3.2.7

1 release file

3.2.4

1 release file

3.2.0

1 release file

3.1.7

1 release file

3.1.5

1 release file

3.1.3

1 release file

3.1.0

1 release file

3.0.6

1 release file

3.0.1

1 release file

2.5.2

1 release file

2.5.1

1 release file

2.5.0

1 release file

2.4.1

1 release file

2.3.4

1 release file

2.3.3

1 release file

2.3.2

1 release file

2.3.1

1 release file

2.3.0

1 release file

2.2.9

1 release file

2.2.5

1 release file

2.2.3

1 release file

2.2.0

1 release file

2.1.3

1 release file

2.1.2

1 release file

2.1.0

1 release file

2.0.0

1 release file

1.9.5

1 release file

1.9.1

1 release file

1.8.4

1 release file

1.8.2

1 release file

1.7.7

1 release file

1.7.6

1 release file

1.7.5

1 release file

1.7.3

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page