{"id":138124,"name":"SustainGym","description":"Reinforcement Learning Environments for Sustainable Energy Systems.","url":"https://github.com/chrisyeh96/sustaingym","last_synced_at":"2026-04-20T19:30:20.473Z","repository":{"id":67423062,"uuid":"482997304","full_name":"chrisyeh96/sustaingym","owner":"chrisyeh96","description":"Reinforcement Learning Environments for Sustainable Energy Systems","archived":false,"fork":false,"pushed_at":"2025-09-06T00:13:33.000Z","size":138500,"stargazers_count":66,"open_issues_count":3,"forks_count":15,"subscribers_count":6,"default_branch":"main","last_synced_at":"2026-04-11T15:05:12.929Z","etag":null,"topics":["distribution-shift","energy-system","reinforcement-learning"],"latest_commit_sha":null,"homepage":"https://chrisyeh96.github.io/sustaingym/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc-by-4.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chrisyeh96.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-04-18T21:06:53.000Z","updated_at":"2026-03-22T12:57:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"65483ba8-b550-492d-8b62-7f54bfc3d378","html_url":"https://github.com/chrisyeh96/sustaingym","commit_stats":{"total_commits":69,"total_committers":4,"mean_commits":17.25,"dds":0.05797101449275366,"last_synced_commit":"dd05501b6e3138875ff729d299ae3da53ac0e8bd"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/chrisyeh96/sustaingym","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisyeh96%2Fsustaingym","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisyeh96%2Fsustaingym/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisyeh96%2Fsustaingym/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisyeh96%2Fsustaingym/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chrisyeh96","download_url":"https://codeload.github.com/chrisyeh96/sustaingym/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisyeh96%2Fsustaingym/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32018764,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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"}},"owner":{"login":"chrisyeh96","name":"Christopher Yeh","uuid":"7686641","kind":"user","description":null,"email":"","website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/7686641?u=c545f6d92aa772c6e194cd792f2f47522bbb7b66\u0026v=4","repositories_count":11,"last_synced_at":"2023-02-27T10:40:40.768Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/chrisyeh96","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-10T19:18:39.962Z","updated_at":"2023-02-27T10:40:40.770Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chrisyeh96","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chrisyeh96/repositories"},"packages":[{"id":11729347,"name":"github.com/chrisyeh96/sustaingym","ecosystem":"go","description":null,"homepage":null,"licenses":"cc-by-4.0","normalized_licenses":["CC-BY-4.0"],"repository_url":"https://github.com/chrisyeh96/sustaingym","keywords_array":[],"namespace":null,"versions_count":5,"first_release_published_at":"2023-11-14T10:14:30.000Z","latest_release_published_at":"2024-05-31T21:48:36.000Z","latest_release_number":"v0.1.7","last_synced_at":"2026-04-17T18:01:28.034Z","created_at":"2025-06-04T10:54:33.848Z","updated_at":"2026-04-17T18:01:28.034Z","registry_url":"https://pkg.go.dev/github.com/chrisyeh96/sustaingym","install_command":"go get github.com/chrisyeh96/sustaingym","documentation_url":"https://pkg.go.dev/github.com/chrisyeh96/sustaingym#section-documentation","metadata":{},"repo_metadata":{"id":67423062,"uuid":"482997304","full_name":"chrisyeh96/sustaingym","owner":"chrisyeh96","description":"Reinforcement Learning Environments for Sustainable Energy Systems","archived":false,"fork":false,"pushed_at":"2025-09-06T00:13:33.000Z","size":138500,"stargazers_count":56,"open_issues_count":3,"forks_count":14,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-10-22T03:01:57.885Z","etag":null,"topics":["distribution-shift","energy-system","reinforcement-learning"],"latest_commit_sha":null,"homepage":"https://chrisyeh96.github.io/sustaingym/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc-by-4.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chrisyeh96.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-04-18T21:06:53.000Z","updated_at":"2025-10-16T11:57:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"65483ba8-b550-492d-8b62-7f54bfc3d378","html_url":"https://github.com/chrisyeh96/sustaingym","commit_stats":{"total_commits":69,"total_committers":4,"mean_commits":17.25,"dds":0.05797101449275366,"last_synced_commit":"dd05501b6e3138875ff729d299ae3da53ac0e8bd"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/chrisyeh96/sustaingym","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisyeh96%2Fsustaingym","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisyeh96%2Fsustaingym/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisyeh96%2Fsustaingym/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisyeh96%2Fsustaingym/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chrisyeh96","download_url":"https://codeload.github.com/chrisyeh96/sustaingym/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisyeh96%2Fsustaingym/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280734498,"owners_count":26381847,"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","status":"online","status_checked_at":"2025-10-24T02:00:06.418Z","response_time":73,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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"},"owner_record":{"login":"chrisyeh96","name":"Christopher Yeh","uuid":"7686641","kind":"user","description":null,"email":"","website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/7686641?u=c545f6d92aa772c6e194cd792f2f47522bbb7b66\u0026v=4","repositories_count":11,"last_synced_at":"2023-02-27T10:40:40.768Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/chrisyeh96","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-10T19:18:39.962Z","updated_at":"2023-02-27T10:40:40.770Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chrisyeh96","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chrisyeh96/repositories"},"tags":[{"name":"v0.1.7","sha":"8f33a51f4e7bc492bb52bae7be1e6d3af648b09a","kind":"commit","published_at":"2024-05-31T21:48:36.000Z","download_url":"https://codeload.github.com/chrisyeh96/sustaingym/tar.gz/v0.1.7","html_url":"https://github.com/chrisyeh96/sustaingym/releases/tag/v0.1.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/chrisyeh96/sustaingym@v0.1.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisyeh96%2Fsustaingym/tags/v0.1.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisyeh96%2Fsustaingym/tags/v0.1.7/manifests"},{"name":"v0.1.6","sha":"a824756a33acd0a978b780e6e6bf0a6e4c7c2b0f","kind":"commit","published_at":"2024-05-29T22:01:46.000Z","download_url":"https://codeload.github.com/chrisyeh96/sustaingym/tar.gz/v0.1.6","html_url":"https://github.com/chrisyeh96/sustaingym/releases/tag/v0.1.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/chrisyeh96/sustaingym@v0.1.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisyeh96%2Fsustaingym/tags/v0.1.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisyeh96%2Fsustaingym/tags/v0.1.6/manifests"},{"name":"v0.1.5","sha":"ab4383e42512321a4bcd1225a5cb51fee9e78de5","kind":"commit","published_at":"2023-12-13T00:38:07.000Z","download_url":"https://codeload.github.com/chrisyeh96/sustaingym/tar.gz/v0.1.5","html_url":"https://github.com/chrisyeh96/sustaingym/releases/tag/v0.1.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/chrisyeh96/sustaingym@v0.1.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisyeh96%2Fsustaingym/tags/v0.1.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisyeh96%2Fsustaingym/tags/v0.1.5/manifests"},{"name":"v0.1.4","sha":"b17c358bf1363d6c538fb0e168868d89ec504f03","kind":"commit","published_at":"2023-11-25T19:30:15.000Z","download_url":"https://codeload.github.com/chrisyeh96/sustaingym/tar.gz/v0.1.4","html_url":"https://github.com/chrisyeh96/sustaingym/releases/tag/v0.1.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/chrisyeh96/sustaingym@v0.1.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisyeh96%2Fsustaingym/tags/v0.1.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisyeh96%2Fsustaingym/tags/v0.1.4/manifests"},{"name":"v0.1.3","sha":"0e3dbebee09273f81ae7cd7b1a2efca19af3ab81","kind":"commit","published_at":"2023-11-14T10:14:30.000Z","download_url":"https://codeload.github.com/chrisyeh96/sustaingym/tar.gz/v0.1.3","html_url":"https://github.com/chrisyeh96/sustaingym/releases/tag/v0.1.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/chrisyeh96/sustaingym@v0.1.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisyeh96%2Fsustaingym/tags/v0.1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisyeh96%2Fsustaingym/tags/v0.1.3/manifests"},{"name":"v0.1.2b","sha":"48b39cbb1bb23ee78ec750c89460db5be57c218e","kind":"tag","published_at":"2023-10-16T06:51:26.000Z","download_url":"https://codeload.github.com/chrisyeh96/sustaingym/tar.gz/v0.1.2b","html_url":"https://github.com/chrisyeh96/sustaingym/releases/tag/v0.1.2b","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/chrisyeh96/sustaingym@v0.1.2b","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisyeh96%2Fsustaingym/tags/v0.1.2b","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisyeh96%2Fsustaingym/tags/v0.1.2b/manifests"},{"name":"v0.1.2a","sha":"356bef1685848cbc430bbb49725019dddcb2db4e","kind":"tag","published_at":"2023-09-09T07:11:50.000Z","download_url":"https://codeload.github.com/chrisyeh96/sustaingym/tar.gz/v0.1.2a","html_url":"https://github.com/chrisyeh96/sustaingym/releases/tag/v0.1.2a","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/chrisyeh96/sustaingym@v0.1.2a","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisyeh96%2Fsustaingym/tags/v0.1.2a","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisyeh96%2Fsustaingym/tags/v0.1.2a/manifests"}]},"repo_metadata_updated_at":"2025-10-24T17:33:33.490Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":5.764254255794306,"dependent_packages_count":5.401293307900869,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":5.582773781847587},"purl":"pkg:golang/github.com/chrisyeh96/sustaingym","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/chrisyeh96/sustaingym","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/chrisyeh96/sustaingym","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/chrisyeh96/sustaingym/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-10-05T14:52:41.468Z","issues_count":1,"pull_requests_count":27,"avg_time_to_close_issue":null,"avg_time_to_close_pull_request":3048943.375,"issues_closed_count":0,"pull_requests_closed_count":24,"pull_request_authors_count":7,"issue_authors_count":1,"avg_comments_per_issue":0.0,"avg_comments_per_pull_request":0.25925925925925924,"merged_pull_requests_count":18,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisyeh96%2Fsustaingym/issues","maintainers":[{"login":"chrisyeh96","count":8,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/chrisyeh96"},{"login":"chz056","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/chz056"},{"login":"rajeev-datta","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/rajeev-datta"},{"login":"liv20","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/liv20"},{"login":"nhchristianson","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nhchristianson"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fchrisyeh96%2Fsustaingym/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fchrisyeh96%2Fsustaingym/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fchrisyeh96%2Fsustaingym/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fchrisyeh96%2Fsustaingym/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fchrisyeh96%2Fsustaingym/codemeta","maintainers":[],"registry":{"name":"proxy.golang.org","url":"https://proxy.golang.org","ecosystem":"go","default":true,"packages_count":2101880,"maintainers_count":0,"namespaces_count":782439,"keywords_count":112823,"github":"golang","metadata":{"funded_packages_count":53495},"icon_url":"https://github.com/golang.png","created_at":"2022-04-04T15:19:22.939Z","updated_at":"2026-04-19T05:14:45.920Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/namespaces"}},{"id":8252429,"name":"sustaingym","ecosystem":"pypi","description":"SustainGym: Reinforcement Learning Environments for Sustainable Energy Systems","homepage":"https://chrisyeh96.github.io/sustaingym/","licenses":"CC BY 4.0","normalized_licenses":["Other"],"repository_url":"https://github.com/chrisyeh96/sustaingym","keywords_array":[],"namespace":null,"versions_count":8,"first_release_published_at":"2023-09-09T03:39:03.000Z","latest_release_published_at":"2024-05-31T21:50:12.000Z","latest_release_number":"0.1.7","last_synced_at":"2026-04-17T18:01:24.838Z","created_at":"2023-09-09T03:58:24.097Z","updated_at":"2026-04-17T18:01:24.839Z","registry_url":"https://pypi.org/project/sustaingym/","install_command":"pip install sustaingym --index-url https://pypi.org/simple","documentation_url":"https://sustaingym.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":["Operating System :: OS Independent","Programming Language :: Python :: 3"],"normalized_name":"sustaingym","project_status":null},"repo_metadata":{"id":67423062,"uuid":"482997304","full_name":"chrisyeh96/sustaingym","owner":"chrisyeh96","description":"Reinforcement Learning Environments for Sustainable Energy Systems","archived":false,"fork":false,"pushed_at":"2025-09-06T00:13:33.000Z","size":138500,"stargazers_count":66,"open_issues_count":3,"forks_count":15,"subscribers_count":6,"default_branch":"main","last_synced_at":"2026-04-03T01:49:15.067Z","etag":null,"topics":["distribution-shift","energy-system","reinforcement-learning"],"latest_commit_sha":null,"homepage":"https://chrisyeh96.github.io/sustaingym/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc-by-4.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chrisyeh96.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-04-18T21:06:53.000Z","updated_at":"2026-03-22T12:57:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"65483ba8-b550-492d-8b62-7f54bfc3d378","html_url":"https://github.com/chrisyeh96/sustaingym","commit_stats":{"total_commits":69,"total_committers":4,"mean_commits":17.25,"dds":0.05797101449275366,"last_synced_commit":"dd05501b6e3138875ff729d299ae3da53ac0e8bd"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/chrisyeh96/sustaingym","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisyeh96%2Fsustaingym","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisyeh96%2Fsustaingym/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisyeh96%2Fsustaingym/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisyeh96%2Fsustaingym/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chrisyeh96","download_url":"https://codeload.github.com/chrisyeh96/sustaingym/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisyeh96%2Fsustaingym/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31684525,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-11T13:07:20.380Z","status":"ssl_error","status_checked_at":"2026-04-11T13:06:47.903Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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"},"owner_record":{"login":"chrisyeh96","name":"Christopher Yeh","uuid":"7686641","kind":"user","description":null,"email":"","website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/7686641?u=c545f6d92aa772c6e194cd792f2f47522bbb7b66\u0026v=4","repositories_count":11,"last_synced_at":"2023-02-27T10:40:40.768Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/chrisyeh96","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-10T19:18:39.962Z","updated_at":"2023-02-27T10:40:40.770Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chrisyeh96","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chrisyeh96/repositories"},"tags":[]},"repo_metadata_updated_at":"2026-04-15T17:14:40.978Z","dependent_packages_count":0,"downloads":218,"downloads_period":"last-month","dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":69.15530059587567,"dependent_packages_count":7.412204836866827,"stargazers_count":23.186189331365593,"forks_count":19.269754746772673,"docker_downloads_count":null,"average":29.75586237772019},"purl":"pkg:pypi/sustaingym","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/sustaingym","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/pypi/sustaingym","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/sustaingym/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-03-30T09:00:20.304Z","issues_count":1,"pull_requests_count":27,"avg_time_to_close_issue":null,"avg_time_to_close_pull_request":3048943.375,"issues_closed_count":0,"pull_requests_closed_count":24,"pull_request_authors_count":7,"issue_authors_count":1,"avg_comments_per_issue":0.0,"avg_comments_per_pull_request":0.25925925925925924,"merged_pull_requests_count":18,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisyeh96%2Fsustaingym/issues","maintainers":[{"login":"chrisyeh96","count":8,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/chrisyeh96"},{"login":"chz056","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/chz056"},{"login":"rajeev-datta","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/rajeev-datta"},{"login":"liv20","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/liv20"},{"login":"nhchristianson","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nhchristianson"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/sustaingym/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/sustaingym/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/sustaingym/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/sustaingym/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/sustaingym/codemeta","maintainers":[{"uuid":"chrisyeh96","login":"chrisyeh96","name":null,"email":null,"url":null,"packages_count":1,"html_url":"https://pypi.org/user/chrisyeh96/","role":null,"created_at":"2023-09-09T09:54:03.821Z","updated_at":"2023-09-09T09:54:03.821Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/chrisyeh96/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":844832,"maintainers_count":360993,"namespaces_count":0,"keywords_count":271316,"github":"pypi","metadata":{"funded_packages_count":53172},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2026-04-09T05:08:03.587Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/namespaces"}}],"commits":{"id":1449376,"full_name":"chrisyeh96/sustaingym","default_branch":"main","total_commits":94,"total_committers":5,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":18.8,"dds":0.22340425531914898,"past_year_total_commits":4,"past_year_total_committers":1,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":4.0,"past_year_dds":0.0,"last_synced_at":"2026-04-16T22:18:47.775Z","last_synced_commit":"eac2a4d5ce4ccf44b13c290edac72532c68e30f5","created_at":"2023-11-16T00:09:27.786Z","updated_at":"2026-04-16T22:18:44.598Z","committers":[{"name":"Christopher Yeh","email":"chrisyeh96","login":"chrisyeh96","count":73},{"name":"Ethan Wilk","email":"ethanwilk@gmail.com","login":"ewilk0","count":17},{"name":"Chi Zhang","email":"95935283+chz056","login":"chz056","count":2},{"name":"liv20","email":"52933377+liv20","login":"liv20","count":1},{"name":"Nico Christianson","email":"nicolas.christianson@gmail.com","login":"nhchristianson","count":1}],"past_year_committers":[{"name":"Christopher Yeh","email":"chrisyeh96","login":"chrisyeh96","count":4}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisyeh96%2Fsustaingym/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-17T00:00:13.716Z","repositories_count":6214341,"commits_count":900629408,"contributors_count":34925280,"owners_count":1144667,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"chrisyeh96/sustaingym","html_url":"https://github.com/chrisyeh96/sustaingym","last_synced_at":"2026-03-30T09:00:20.304Z","status":"error","issues_count":1,"pull_requests_count":27,"avg_time_to_close_issue":null,"avg_time_to_close_pull_request":3048943.375,"issues_closed_count":0,"pull_requests_closed_count":24,"pull_request_authors_count":7,"issue_authors_count":1,"avg_comments_per_issue":0.0,"avg_comments_per_pull_request":0.25925925925925924,"merged_pull_requests_count":18,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"created_at":"2023-11-16T00:09:57.930Z","updated_at":"2026-03-30T09:00:20.304Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisyeh96%2Fsustaingym","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisyeh96%2Fsustaingym/issues","issue_labels_count":{},"pull_request_labels_count":{},"issue_author_associations_count":{"NONE":1},"pull_request_author_associations_count":{"COLLABORATOR":13,"OWNER":8,"CONTRIBUTOR":5,"NONE":1},"issue_authors":{"Swathii-CP":1},"pull_request_authors":{"chrisyeh96":8,"chz056":6,"ewilk0":5,"rajeev-datta":3,"liv20":3,"chennnnnyize":1,"nhchristianson":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-19T00:00:13.985Z","repositories_count":14330573,"issues_count":34492024,"pull_requests_count":112869237,"authors_count":11238719,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{},"past_year_pull_request_author_associations_count":{},"past_year_issue_authors":{},"past_year_pull_request_authors":{},"maintainers":[{"login":"chrisyeh96","count":8,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/chrisyeh96"},{"login":"chz056","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/chz056"},{"login":"rajeev-datta","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/rajeev-datta"},{"login":"liv20","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/liv20"},{"login":"nhchristianson","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nhchristianson"}],"active_maintainers":[]},"events":{"total":{"ForkEvent":3,"WatchEvent":14,"PushEvent":2},"last_year":{"WatchEvent":4,"PushEvent":2}},"keywords":["distribution-shift","energy-system","reinforcement-learning"],"dependencies":[],"score":11.23261614684786,"created_at":"2023-11-16T00:04:13.301Z","updated_at":"2026-04-20T19:30:20.479Z","avatar_url":"https://github.com/chrisyeh96.png","language":"HTML","category":"Energy Systems","sub_category":"Energy System Modeling Frameworks","monthly_downloads":218,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"# SustainGym: Reinforcement Learning Environments for Sustainable Energy Systems\n\nThe lack of standardized benchmarks for reinforcement learning (RL) in sustainability applications has made it difficult to both track progress on specific domains and identify bottlenecks for researchers to focus their efforts on. We present SustainGym, a suite of environments designed to test the performance of RL algorithms on realistic sustainability tasks. These environments highlight challenges in introducing RL to real-world sustainability tasks, including physical constraints and distribution shift.\n\n[**Paper**](https://openreview.net/forum?id=vZ9tA3o3hr)\n| [**Website**](https://chrisyeh96.github.io/sustaingym/)\n\nSustainGym contains both single-agent and multi-agent RL environments.\n- Single-agent environments follow the [Gymnasium API](https://gymnasium.farama.org/) and are designed to be easily used with the [StableBaselines3](https://stable-baselines3.readthedocs.io/) and [Ray RLLib](https://docs.ray.io/en/latest/rllib/) libraries for training RL algorithms.\n- Multi-agent environments follow the [PettingZoo Parallel API](https://pettingzoo.farama.org/api/parallel/) and are designed to be easily used with the [Ray RLLib](https://docs.ray.io/en/latest/rllib/) library for training multi-agent RL algorithms.\n\nPlease see the [SustainGym website](https://chrisyeh96.github.io/sustaingym/) for a getting started guide and complete documentation.\n\n\n## Folder structure\n\n```\ndocs/                   # website and documentation\nexamples/               # example code for running each environment\nsustaingym/             # main Python package\n    algorithms/\n        {env}/          # per-env algorithms\n    data/\n        moer/           # marginal carbon emission rates\n        {env}/          # per-env data files\n    envs/\n        {env}/          # per-env modules\ntests/                  # unit tests\n```\n\n## Contributing\n\nIf you would like to add a new environment, propose bug fixes, or otherwise contribute to SustainGym, please see the [Contributing Guide](CONTRIBUTING.md).\n\n## License\n\nSustainGym is released under a [Creative Commons Attribution 4.0 International Public License (CC BY 4.0)](https://creativecommons.org/licenses/by/4.0/). See the [LICENSE](LICENSE) file for the full terms.\n\n## Citation\n\nPlease cite SustainGym as\n\n\u003e C. Yeh, V. Li, R. Datta, J. Arroyo, N. Christianson, C. Zhang, Y. Chen, M. Hosseini, A. Golmohammadi, Y. Shi, Y. Yue, and A. Wierman, \"SustainGym: A Benchmark Suite of Reinforcement Learning for Sustainability Applications,\" in _Thirty-seventh Conference on Neural Information Processing Systems Datasets and Benchmarks Track_, New Orleans, LA, USA, Dec. 2023. [Online]. Available: [https://openreview.net/forum?id=vZ9tA3o3hr](https://openreview.net/forum?id=vZ9tA3o3hr).\n\n\u003cdetails markdown=\"block\"\u003e\n\u003csummary\u003eBibTeX\u003c/summary\u003e\n\n```tex\n@inproceedings{yeh2023sustaingym,\n    title = {{SustainGym}: Reinforcement Learning Environments for Sustainable Energy Systems},\n    author = {Yeh, Christopher and Li, Victor and Datta, Rajeev and Arroyo, Julio and Zhang, Chi and Chen, Yize and Hosseini, Mehdi and Golmohammadi, Azarang and Shi, Yuanyuan and Yue, Yisong and Wierman, Adam},\n    year = 2023,\n    month = 12,\n    booktitle = {Thirty-seventh Conference on Neural Information Processing Systems Datasets and Benchmarks Track},\n    address = {New Orleans, LA, USA},\n    url = {https://openreview.net/forum?id=vZ9tA3o3hr}\n}\n```\n\n\u003c/details\u003e\n\nAn earlier version of this work was published as a workshop paper:\n\n\u003e C. Yeh, V. Li, R. Datta, Y. Yue, and A. Wierman, \"SustainGym: A Benchmark Suite of Reinforcement Learning for Sustainability Applications,\" in _NeurIPS 2022 Workshop on Tackling Climate Change with Machine Learning_, Dec. 2022. [Online]. Available: [https://www.climatechange.ai/papers/neurips2022/38](https://www.climatechange.ai/papers/neurips2022/38).\n\n\u003cdetails markdown=\"block\"\u003e\n\u003csummary\u003eBibTeX\u003c/summary\u003e\n\n```tex\n@inproceedings{yeh2022sustaingym,\n    title = {{SustainGym}: A Benchmark Suite of Reinforcement Learning for Sustainability Applications},\n    author = {Yeh, Christopher and Li, Victor and Datta, Rajeev and Yue, Yisong and Wierman, Adam},\n    year = 2022,\n    month = 12,\n    booktitle = {NeurIPS 2022 Workshop on Tackling Climate Change with Machine Learning},\n    address = {New Orleans, LA, USA},\n    url = {https://www.climatechange.ai/papers/neurips2022/38}\n}\n```\n\n\u003c/details\u003e","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://ost.ecosyste.ms/api/v1/projects/138124","html_url":"https://ost.ecosyste.ms/projects/138124"}