{"id":13723743,"url":"https://github.com/ugr-sail/sinergym","last_synced_at":"2025-05-07T17:31:09.949Z","repository":{"id":37425257,"uuid":"332283679","full_name":"ugr-sail/sinergym","owner":"ugr-sail","description":"Gym environment for building simulation and control using reinforcement learning","archived":false,"fork":false,"pushed_at":"2024-11-12T13:16:29.000Z","size":407957,"stargazers_count":133,"open_issues_count":7,"forks_count":35,"subscribers_count":7,"default_branch":"main","last_synced_at":"2024-11-13T00:13:26.268Z","etag":null,"topics":["building-control","building-energy","buildings","energyplus","framework","python","reinforcement-learning","reinforcement-learning-environments","simulation"],"latest_commit_sha":null,"homepage":"https://ugr-sail.github.io/sinergym/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ugr-sail.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.bib","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-01-23T18:45:17.000Z","updated_at":"2024-11-12T13:10:50.000Z","dependencies_parsed_at":"2024-11-06T00:02:07.515Z","dependency_job_id":null,"html_url":"https://github.com/ugr-sail/sinergym","commit_stats":{"total_commits":716,"total_committers":16,"mean_commits":44.75,"dds":0.3561452513966481,"last_synced_commit":"a7d1dd8d96078dbcf9618d5f5c86465ce6386e92"},"previous_names":["jajimer/sinergym"],"tags_count":59,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ugr-sail%2Fsinergym","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ugr-sail%2Fsinergym/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ugr-sail%2Fsinergym/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ugr-sail%2Fsinergym/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ugr-sail","download_url":"https://codeload.github.com/ugr-sail/sinergym/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224383474,"owners_count":17302211,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["building-control","building-energy","buildings","energyplus","framework","python","reinforcement-learning","reinforcement-learning-environments","simulation"],"created_at":"2024-08-03T01:01:45.146Z","updated_at":"2025-05-07T17:31:09.930Z","avatar_url":"https://github.com/ugr-sail.png","language":"Python","funding_links":[],"categories":["Consumption"],"sub_categories":["Buildings and Heating"],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"images/logo.png\" width=50%\u003e\u003cbr\u003e\u003cbr\u003e\n\u003c/div\u003e\n\n\u003c/p\u003e\n  \u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/ugr-sail/sinergym/releases\"\u003e\n      \u003cimg alt=\"Github latest release\" src=\"https://img.shields.io/github/release-date/ugr-sail/sinergym\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/ugr-sail/sinergym/commits/main\"\u003e\n      \u003cimg alt=\"Github last commit\" src=\"https://img.shields.io/github/last-commit/ugr-sail/sinergym\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://pypi.org/project/sinergym/\"\u003e\n      \u003cimg alt=\"pypi version\" src=\"https://img.shields.io/pypi/v/sinergym\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/ugr-sail/sinergym/stargazers\"\u003e\n      \u003cimg alt=\"pypi downloads\" src=\"https://img.shields.io/pypi/dm/sinergym\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://codecov.io/gh/ugr-sail/sinergym\"\u003e\n      \u003cimg src=\"https://codecov.io/gh/ugr-sail/sinergym/branch/main/graph/badge.svg\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/ugr-sail/sinergym/graphs/contributors\"\u003e\n      \u003cimg alt=\"GitHub Contributors\" src=\"https://img.shields.io/github/contributors/ugr-sail/sinergym\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/ugr-sail/sinergym/issues\"\u003e\n      \u003cimg alt=\"Github issues\" src=\"https://img.shields.io/github/issues/ugr-sail/sinergym?color=0088ff\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/ugr-sail/sinergym/pulls\"\u003e\n      \u003cimg alt=\"GitHub pull requests\" src=\"https://img.shields.io/github/issues-pr/ugr-sail/sinergym?color=0088ff\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/ugr-sail/sinergym/blob/main/LICENSE\"\u003e\n      \u003cimg alt=\"Github license\" src=\"https://img.shields.io/github/license/ugr-sail/sinergym\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://www.python.org/downloads/release/python-3120/\"\u003e\n      \u003cimg alt=\"pypi Python version\" src=\"https://img.shields.io/pypi/pyversions/sinergym\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://hub.docker.com/r/sailugr/sinergym/tags\"\u003e\n      \u003cimg alt=\"DockerHub last version\" src=\"https://img.shields.io/docker/v/sailugr/sinergym?color=blue\u0026label=Docker%20Image%20Version\u0026logo=docker\" /\u003e\n    \u003c/a\u003e\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://code.visualstudio.com/\"\u003e\n      \u003cimg src=\"https://img.shields.io/badge/Supported%20by-VSCode%20Power%20User%20%E2%86%92-gray.svg?colorA=655BE1\u0026colorB=4F44D6\u0026style=for-the-badge\"/\u003e\n    \u003c/a\u003e\n  \u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"images/general_blueprint.png\" width=80%\u003e\u003cbr\u003e\u003cbr\u003e\n\u003c/div\u003e\n\n## About Sinergym\n\n*Sinergym* provides a [Gymnasium](https://gymnasium.farama.org/)-based interface to interact with simulation engines such as *EnergyPlus*. This allows control in simulation time through custom controllers, including **reinforcement learning** agents.\n\nFor more information about *Sinergym*, refer to its [documentation](https://ugr-sail.github.io/sinergym/compilation/main/index.html).\n\n## Main features\n\n⚙️  **Simulation engines compatibility**. *Sinergym* is currently compatible with the [EnergyPlus Python API](https://energyplus.readthedocs.io/en/latest/api.html) for controller-building communication.\n\n📊  **Benchmark environments**. Similar to *Atari* or *Mujoco*, *Sinergym* allows the use of benchmarking environments to test and compare RL algorithms or custom control strategies.\n\n🛠️  **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!\n\n🏠  **Automatic building model adaptation**. Automatic adaptation of building models to align with user-defined settings.\n\n🪛  **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.\n\n🤖  **Stable Baselines 3 integration**. *Sinergym* is highly integrated with [Stable Baselines 3](https://github.com/DLR-RM/stable-baselines3) algorithms, wrappers and callbacks.\n\n✅  **Controller-agnostic**. Any controller compatible with the Gymnasium interface can be integrated with *Sinergym*.\n\n☁️  **Google Cloud execution**. *Sinergym* provides several features to execute experiments in [Google Cloud](https://cloud.google.com/).\n\n📈  **Weights \u0026 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](https://wandb.ai/site) integration.\n\n📒  **Notebook examples**. Learn how to get the most out of *Sinergym* through our [notebooks examples](https://github.com/ugr-sail/sinergym/tree/main/examples).\n\n📚  **Extensive documentation, unit tests, and GitHub actions workflows**. *Sinergym* follows proper development practices facilitating community contributions.\n\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"images/operation_diagram.png\"\u003e\u003cbr\u003e\u003cbr\u003e\n\u003c/div\u003e\n\n## Project structure\n\nThis repository is organized into the following directories:\n\n- `sinergym/`: the source code of *Sinergym*.\n- `docs/`: *Sinergym*'s documentation sources.\n- `examples/`: notebooks with several examples illustrating how to use *Sinergym*.\n- `tests/`: *Sinergym* tests code.\n- `scripts/`: auxiliar and help scripts.\n\n## Available environments\n\nFor a complete and up-to-date list of available environments, please refer to [our documentation](https://ugr-sail.github.io/sinergym/compilation/main/pages/environments.html#).\n\n## Installation\n\nRead [INSTALL.md](https://github.com/ugr-sail/sinergym/blob/main/INSTALL.md) for detailed installation instructions.\n\n## Usage example\n\nThis is a simple script using *Sinergym*:\n\n```python\nimport gymnasium as gym\nimport sinergym\n\n# Create environment\nenv = gym.make('Eplus-datacenter-mixed-continuous-stochastic-v1')\n\n# Initialization\nobs, info = env.reset()\ntruncated = terminated = False\n\n# Run episode\nwhile not (terminated or truncated):\n    action = env.action_space.sample() # random action selection\n    obs, reward, terminated, truncated, info = env.step(action)\n\nenv.close()\n```\n\nSeveral usage examples can be consulted [here](https://ugr-sail.github.io/sinergym/compilation/main/pages/notebooks/basic_example.html#Basic-example).\n\n## Contributing\n\nTo report questions and issues, [open an issue](https://github.com/ugr-sail/sinergym/issues) following the provided templates. We appreciate your feedback!\n\nCheck out [CONTRIBUTING.md](https://github.com/ugr-sail/sinergym/blob/main/CONTRIBUTING.md) for specific details on how to contribute.\n\n## Projects using Sinergym\n\nThe following are some of the projects using *Sinergym*:\n\n- [Demosthen/ActiveRL](https://github.com/Demosthen/ActiveRL)\n- [VectorInstitute/HV-Ai-C](https://github.com/VectorInstitute/HV-Ai-C)\n- [rdnfn/beobench](https://github.com/rdnfn/beobench)\n\n📝 If you want to appear in this list, feel free to open a pull request and include the following badge in your repository:\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/ugr-sail/sinergym\"\u003e\n      \u003cimg src=\"https://img.shields.io/badge/Powered%20by-Sinergym%20%E2%86%92-gray.svg?colorA=00BABF\u0026colorB=4BF2F7\u0026style=for-the-badge\"/\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n## Repository activity\n\n![Alt](https://repobeats.axiom.co/api/embed/d8dc96d423d6996351e728a2412dba2551f99cca.svg \"Repobeats analytics image\")\n\n## Citing Sinergym\n\nIf you use *Sinergym* in your work, please cite our [paper](https://www.sciencedirect.com/science/article/abs/pii/S0378778824011915):\n\n```bibtex\n@article{Campoy2025sinergym,\n  title = {Sinergym – A virtual testbed for building energy optimization with Reinforcement Learning},\n  author = {Alejandro Campoy-Nieves and Antonio Manjavacas and Javier Jiménez-Raboso and Miguel Molina-Solana and Juan Gómez-Romero},\n  journal   = {Energy and Buildings},\n  volume = {327},\n  articleno = {115075},\n  year = {2025},\n  issn = {0378-7788},\n  doi = {10.1016/j.enbuild.2024.115075},\n  url = {https://www.sciencedirect.com/science/article/pii/S0378778824011915},\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fugr-sail%2Fsinergym","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fugr-sail%2Fsinergym","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fugr-sail%2Fsinergym/lists"}