{"id":20068,"name":"MPCPy","description":"The Python-based open source platform for model predictive control in buildings.","url":"https://github.com/lbl-srg/MPCPy","last_synced_at":"2026-04-13T17:30:18.244Z","repository":{"id":17838834,"uuid":"82820190","full_name":"lbl-srg/MPCPy","owner":"lbl-srg","description":"Open-source platform for model predictive control (MPC) in buildings.","archived":false,"fork":false,"pushed_at":"2023-03-07T23:17:18.000Z","size":26554,"stargazers_count":134,"open_issues_count":40,"forks_count":37,"subscribers_count":22,"default_branch":"master","last_synced_at":"2026-04-03T00:43:02.284Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lbl-srg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"license.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2017-02-22T15:26:54.000Z","updated_at":"2026-04-01T16:39:47.000Z","dependencies_parsed_at":"2023-09-21T19:56:41.989Z","dependency_job_id":null,"html_url":"https://github.com/lbl-srg/MPCPy","commit_stats":{"total_commits":515,"total_committers":6,"mean_commits":85.83333333333333,"dds":0.05048543689320384,"last_synced_commit":"545df99efc49608b7e3c16f852a4528b4d61f34a"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/lbl-srg/MPCPy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lbl-srg%2FMPCPy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lbl-srg%2FMPCPy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lbl-srg%2FMPCPy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lbl-srg%2FMPCPy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lbl-srg","download_url":"https://codeload.github.com/lbl-srg/MPCPy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lbl-srg%2FMPCPy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31475202,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-06T08:36:52.050Z","status":"ssl_error","status_checked_at":"2026-04-06T08:36:51.267Z","response_time":112,"last_error":"SSL_read: 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":{"login":"lbl-srg","name":"Berkeley Lab - Modeling \u0026 Simulation","uuid":"3753398","kind":"organization","description":"","email":null,"website":"https://buildings.lbl.gov/modeling-simulation","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/3753398?v=4","repositories_count":18,"last_synced_at":"2024-03-26T05:26:07.361Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/lbl-srg","funding_links":[],"total_stars":628,"followers":32,"following":0,"created_at":"2022-11-03T06:23:54.972Z","updated_at":"2024-03-26T05:26:08.801Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lbl-srg","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lbl-srg/repositories"},"packages":[{"id":11733198,"name":"github.com/lbl-srg/mpcpy","ecosystem":"go","description":null,"homepage":null,"licenses":"other","normalized_licenses":["Other"],"repository_url":"https://github.com/lbl-srg/mpcpy","keywords_array":[],"namespace":null,"versions_count":1,"first_release_published_at":"2017-08-07T02:22:59.000Z","latest_release_published_at":"2017-08-07T02:22:59.000Z","latest_release_number":"v0.1.0","last_synced_at":"2026-04-08T15:01:35.595Z","created_at":"2025-06-05T11:14:43.632Z","updated_at":"2026-04-08T15:01:35.595Z","registry_url":"https://pkg.go.dev/github.com/lbl-srg/mpcpy","install_command":"go get github.com/lbl-srg/mpcpy","documentation_url":"https://pkg.go.dev/github.com/lbl-srg/mpcpy#section-documentation","metadata":{},"repo_metadata":{"id":17838834,"uuid":"82820190","full_name":"lbl-srg/MPCPy","owner":"lbl-srg","description":"Open-source platform for model predictive control (MPC) in buildings.","archived":false,"fork":false,"pushed_at":"2023-03-07T23:17:18.000Z","size":26554,"stargazers_count":130,"open_issues_count":40,"forks_count":36,"subscribers_count":22,"default_branch":"master","last_synced_at":"2025-10-10T23:11:35.452Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lbl-srg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"license.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2017-02-22T15:26:54.000Z","updated_at":"2025-09-17T17:23:55.000Z","dependencies_parsed_at":"2023-09-21T19:56:41.989Z","dependency_job_id":null,"html_url":"https://github.com/lbl-srg/MPCPy","commit_stats":{"total_commits":515,"total_committers":6,"mean_commits":85.83333333333333,"dds":0.05048543689320384,"last_synced_commit":"545df99efc49608b7e3c16f852a4528b4d61f34a"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/lbl-srg/MPCPy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lbl-srg%2FMPCPy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lbl-srg%2FMPCPy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lbl-srg%2FMPCPy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lbl-srg%2FMPCPy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lbl-srg","download_url":"https://codeload.github.com/lbl-srg/MPCPy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lbl-srg%2FMPCPy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279011465,"owners_count":26084947,"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-12T02:00:06.719Z","response_time":53,"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":"lbl-srg","name":"Berkeley Lab - Modeling \u0026 Simulation","uuid":"3753398","kind":"organization","description":"","email":null,"website":"https://buildings.lbl.gov/modeling-simulation","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/3753398?v=4","repositories_count":18,"last_synced_at":"2024-03-26T05:26:07.361Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/lbl-srg","funding_links":[],"total_stars":628,"followers":32,"following":0,"created_at":"2022-11-03T06:23:54.972Z","updated_at":"2024-03-26T05:26:08.801Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lbl-srg","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lbl-srg/repositories"},"tags":[{"name":"v0.1.0","sha":"b0b02e2f4ab07345ea7fde56190006faa34a59bc","kind":"commit","published_at":"2017-08-07T02:22:59.000Z","download_url":"https://codeload.github.com/lbl-srg/MPCPy/tar.gz/v0.1.0","html_url":"https://github.com/lbl-srg/MPCPy/releases/tag/v0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/lbl-srg/MPCPy@v0.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lbl-srg%2FMPCPy/tags/v0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lbl-srg%2FMPCPy/tags/v0.1.0/manifests"}]},"repo_metadata_updated_at":"2025-10-12T13:22:08.020Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":5.757538697138725,"dependent_packages_count":5.395053785167736,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":5.57629624115323},"purl":"pkg:golang/github.com/lbl-srg/mpcpy","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/lbl-srg/mpcpy","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/lbl-srg/mpcpy","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/lbl-srg/mpcpy/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-10-10T13:07:42.349Z","issues_count":127,"pull_requests_count":89,"avg_time_to_close_issue":3987037.397727273,"avg_time_to_close_pull_request":231674.0909090909,"issues_closed_count":88,"pull_requests_closed_count":88,"pull_request_authors_count":6,"issue_authors_count":14,"avg_comments_per_issue":1.5669291338582676,"avg_comments_per_pull_request":0.5280898876404494,"merged_pull_requests_count":87,"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/lbl-srg%2FMPCPy/issues","maintainers":[{"login":"dhblum","count":194,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/dhblum"},{"login":"krzysztofarendt","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/krzysztofarendt"},{"login":"LisaRivalin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/LisaRivalin"},{"login":"WalterZWang","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/WalterZWang"},{"login":"tsnouidui","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/tsnouidui"},{"login":"mwetter","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mwetter"},{"login":"GersHub","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/GersHub"},{"login":"ruoxijia","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ruoxijia"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Flbl-srg%2Fmpcpy/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Flbl-srg%2Fmpcpy/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Flbl-srg%2Fmpcpy/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Flbl-srg%2Fmpcpy/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Flbl-srg%2Fmpcpy/codemeta","maintainers":[],"registry":{"name":"proxy.golang.org","url":"https://proxy.golang.org","ecosystem":"go","default":true,"packages_count":2093866,"maintainers_count":0,"namespaces_count":780333,"keywords_count":112764,"github":"golang","metadata":{"funded_packages_count":53458},"icon_url":"https://github.com/golang.png","created_at":"2022-04-04T15:19:22.939Z","updated_at":"2026-04-09T05:03:48.640Z","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":11733192,"name":"github.com/lbl-srg/MPCPy","ecosystem":"go","description":null,"homepage":null,"licenses":"other","normalized_licenses":["Other"],"repository_url":"https://github.com/lbl-srg/MPCPy","keywords_array":[],"namespace":null,"versions_count":1,"first_release_published_at":"2017-08-07T02:22:59.000Z","latest_release_published_at":"2017-08-07T02:22:59.000Z","latest_release_number":"v0.1.0","last_synced_at":"2026-04-08T15:01:34.961Z","created_at":"2025-06-05T11:14:42.730Z","updated_at":"2026-04-08T15:01:34.961Z","registry_url":"https://pkg.go.dev/github.com/lbl-srg/MPCPy","install_command":"go get github.com/lbl-srg/MPCPy","documentation_url":"https://pkg.go.dev/github.com/lbl-srg/MPCPy#section-documentation","metadata":{},"repo_metadata":{"id":17838834,"uuid":"82820190","full_name":"lbl-srg/MPCPy","owner":"lbl-srg","description":"Open-source platform for model predictive control (MPC) in buildings.","archived":false,"fork":false,"pushed_at":"2023-03-07T23:17:18.000Z","size":26554,"stargazers_count":130,"open_issues_count":40,"forks_count":36,"subscribers_count":23,"default_branch":"master","last_synced_at":"2025-09-26T08:50:38.217Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lbl-srg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"license.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2017-02-22T15:26:54.000Z","updated_at":"2025-09-17T17:23:55.000Z","dependencies_parsed_at":"2023-09-21T19:56:41.989Z","dependency_job_id":null,"html_url":"https://github.com/lbl-srg/MPCPy","commit_stats":{"total_commits":515,"total_committers":6,"mean_commits":85.83333333333333,"dds":0.05048543689320384,"last_synced_commit":"545df99efc49608b7e3c16f852a4528b4d61f34a"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/lbl-srg/MPCPy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lbl-srg%2FMPCPy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lbl-srg%2FMPCPy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lbl-srg%2FMPCPy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lbl-srg%2FMPCPy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lbl-srg","download_url":"https://codeload.github.com/lbl-srg/MPCPy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lbl-srg%2FMPCPy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":277261219,"owners_count":25788578,"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-09-27T02:00:08.978Z","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":"lbl-srg","name":"Berkeley Lab - Modeling \u0026 Simulation","uuid":"3753398","kind":"organization","description":"","email":null,"website":"https://buildings.lbl.gov/modeling-simulation","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/3753398?v=4","repositories_count":18,"last_synced_at":"2024-03-26T05:26:07.361Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/lbl-srg","funding_links":[],"total_stars":628,"followers":32,"following":0,"created_at":"2022-11-03T06:23:54.972Z","updated_at":"2024-03-26T05:26:08.801Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lbl-srg","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lbl-srg/repositories"},"tags":[{"name":"v0.1.0","sha":"b0b02e2f4ab07345ea7fde56190006faa34a59bc","kind":"commit","published_at":"2017-08-07T02:22:59.000Z","download_url":"https://codeload.github.com/lbl-srg/MPCPy/tar.gz/v0.1.0","html_url":"https://github.com/lbl-srg/MPCPy/releases/tag/v0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/lbl-srg/MPCPy@v0.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lbl-srg%2FMPCPy/tags/v0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lbl-srg%2FMPCPy/tags/v0.1.0/manifests"}]},"repo_metadata_updated_at":"2025-10-12T13:22:08.024Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":5.757538697138725,"dependent_packages_count":5.395053785167736,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":5.57629624115323},"purl":"pkg:golang/github.com/lbl-srg/%21m%21p%21c%21py","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/lbl-srg/MPCPy","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/lbl-srg/MPCPy","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/lbl-srg/MPCPy/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-10-10T13:07:42.349Z","issues_count":127,"pull_requests_count":89,"avg_time_to_close_issue":3987037.397727273,"avg_time_to_close_pull_request":231674.0909090909,"issues_closed_count":88,"pull_requests_closed_count":88,"pull_request_authors_count":6,"issue_authors_count":14,"avg_comments_per_issue":1.5669291338582676,"avg_comments_per_pull_request":0.5280898876404494,"merged_pull_requests_count":87,"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/lbl-srg%2FMPCPy/issues","maintainers":[{"login":"dhblum","count":194,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/dhblum"},{"login":"krzysztofarendt","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/krzysztofarendt"},{"login":"LisaRivalin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/LisaRivalin"},{"login":"WalterZWang","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/WalterZWang"},{"login":"tsnouidui","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/tsnouidui"},{"login":"mwetter","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mwetter"},{"login":"GersHub","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/GersHub"},{"login":"ruoxijia","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ruoxijia"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Flbl-srg%2FMPCPy/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Flbl-srg%2FMPCPy/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Flbl-srg%2FMPCPy/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Flbl-srg%2FMPCPy/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Flbl-srg%2FMPCPy/codemeta","maintainers":[],"registry":{"name":"proxy.golang.org","url":"https://proxy.golang.org","ecosystem":"go","default":true,"packages_count":2093866,"maintainers_count":0,"namespaces_count":780333,"keywords_count":112764,"github":"golang","metadata":{"funded_packages_count":53458},"icon_url":"https://github.com/golang.png","created_at":"2022-04-04T15:19:22.939Z","updated_at":"2026-04-09T05:03:48.640Z","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"}}],"commits":{"id":1254086,"full_name":"lbl-srg/MPCPy","default_branch":"master","total_commits":515,"total_committers":6,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":85.83333333333333,"dds":0.05048543689320384,"past_year_total_commits":0,"past_year_total_committers":0,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":0.0,"past_year_dds":0.0,"last_synced_at":"2026-04-08T15:07:31.380Z","last_synced_commit":"545df99efc49608b7e3c16f852a4528b4d61f34a","created_at":"2023-03-27T10:58:13.117Z","updated_at":"2026-04-08T15:07:18.104Z","committers":[{"name":"dhblum","email":"dhblum@lbl.gov","login":"dhblum","count":489},{"name":"WalterZWang","email":"zwang284@gmail.com","login":"WalterZWang","count":10},{"name":"Zhe (Walter)","email":"zwang5@lbl.gov","login":null,"count":8},{"name":"Lisa Rivalin","email":"lisarivalin@lbl.gov","login":"LisaRivalin","count":4},{"name":"Michael Wetter","email":"mwetter@lbl.gov","login":"mwetter","count":3},{"name":"Krzysztof Arendt","email":"krza@mmmi.sdu.dk","login":"krzysztofarendt","count":1}],"past_year_committers":[],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/lbl-srg%2FMPCPy/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-09T00:00:23.197Z","repositories_count":6212716,"commits_count":906927630,"contributors_count":34999334,"owners_count":1143500,"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":"lbl-srg/MPCPy","html_url":"https://github.com/lbl-srg/MPCPy","last_synced_at":"2025-10-10T13:07:42.349Z","status":"error","issues_count":127,"pull_requests_count":89,"avg_time_to_close_issue":3987037.397727273,"avg_time_to_close_pull_request":231674.0909090909,"issues_closed_count":88,"pull_requests_closed_count":88,"pull_request_authors_count":6,"issue_authors_count":14,"avg_comments_per_issue":1.5669291338582676,"avg_comments_per_pull_request":0.5280898876404494,"merged_pull_requests_count":87,"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-05-09T10:39:25.240Z","updated_at":"2025-10-10T13:07:42.350Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/lbl-srg%2FMPCPy","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/lbl-srg%2FMPCPy/issues","issue_labels_count":{"enhancement":21,"bug":21,"good first issue":4,"Non-Backwards Compatible":2,"duplicate":1,"testing":1},"pull_request_labels_count":{},"issue_author_associations_count":{"COLLABORATOR":119,"NONE":7,"MEMBER":1},"pull_request_author_associations_count":{"COLLABORATOR":86,"MEMBER":2,"NONE":1},"issue_authors":{"dhblum":111,"krzysztofarendt":3,"WalterZWang":2,"Eramismus":1,"JamesCheng21":1,"GersHub":1,"starkjiang":1,"LisaRivalin":1,"tsnouidui":1,"TStesco":1,"kuzha":1,"mehrdadxyz":1,"ruoxijia":1,"jluttine":1},"pull_request_authors":{"dhblum":83,"LisaRivalin":2,"krzysztofarendt":1,"mwetter":1,"tsnouidui":1,"TStesco":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-06T00:00:09.270Z","repositories_count":14106272,"issues_count":34454647,"pull_requests_count":112472246,"authors_count":11227558,"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":"dhblum","count":194,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/dhblum"},{"login":"krzysztofarendt","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/krzysztofarendt"},{"login":"LisaRivalin","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/LisaRivalin"},{"login":"WalterZWang","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/WalterZWang"},{"login":"tsnouidui","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/tsnouidui"},{"login":"mwetter","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mwetter"},{"login":"GersHub","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/GersHub"},{"login":"ruoxijia","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ruoxijia"}],"active_maintainers":[]},"events":{"total":{"ForkEvent":3,"WatchEvent":14},"last_year":{"ForkEvent":2,"WatchEvent":10}},"keywords":[],"dependencies":[],"score":null,"created_at":"2023-09-11T14:52:09.398Z","updated_at":"2026-04-13T17:30:18.256Z","avatar_url":"https://github.com/lbl-srg.png","language":"Python","category":"Consumption","sub_category":"Buildings and Heating","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"![](doc/userGuide/source/images/logo.png)\n\nThis is the development site for MPCPy, the python-based open-source platform for model predictive control in buildings.\n\n## General\nMPCPy is a python package that facilitates the testing and implementation of occupant-integrated model predictive control (MPC) for building systems.  The package focuses on the use of data-driven, simplified physical or statistical models to predict building performance and optimize control.  Four main modules contain object classes to import data, interact with real or emulated systems, estimate and validate data-driven models, and optimize control input.\n\n## Third Party Software\nWhile MPCPy provides an integration platform, it relies on free, open-source, third-party software packages for model implementation, simulators, parameter estimation algorithms, and optimization solvers.  This includes python packages for scripting and data manipulation as well as other more comprehensive software packages for specific purposes.  \n\nIn particular, modeling and optimization for physical systems currently relies on the Modelica language specification (https://www.modelica.org/) and FMI standard (http://fmi-standard.org/) in order to leverage model library and tool development on these standards occurring elsewhere within the building and other industries.\n\nA note to users:  Per https://jmodelica.org/, Modelon stopped supporting the open-source JModelica environment as of December 2019. MPCPy can still continue to work with the public open-source version for compilation and optimization of Modelica models. Alternative solutions are being explored for longer-term maintenance.\n\n## Getting Started\n**Users** can [**download v0.1.0**](https://github.com/lbl-srg/MPCPy/releases/tag/v0.1.0).\n\n**Developers** can ``\u003e git clone https://github.com/lbl-srg/MPCPy.git``.\n\nThen, follow the installation instructions and introductory tutorial in Section 2 of the [User Guide](https://github.com/lbl-srg/MPCPy/tree/master/doc/userGuide), located in /doc/userGuide.\n\nMPCPy uses Python 2.7 and has been tested on Ubuntu 16.04.\n\n**Join**, **follow**, and **participate** in the conversation with the [**google group**](https://groups.google.com/forum/#!forum/mpcpy)!\n\n## Contributing\nIf you are interested in contributing to this project:\n\n- You are welcome to report any issues in [Issues](https://github.com/lbl-srg/MPCPy/issues).\n- You are welcome to make a contribution by following the steps outlined on the [Contribution Workflow](https://github.com/lbl-srg/MPCPy/wiki/Contribution-Workflow) page.\n\nResearch has shown that MPC can address emerging control challenges faced by buildings.  However, there exists no standard practice or methods for implementing MPC in buildings.  Implementation is defined here as model structure, complexity, and training methods, data resolution and amount, optimization problem structure and algorithm, and transfer of optimal control solution to real building control.  In fact, different applications likely require different implementations.  Therefore, we aim for MPCPy to be flexible enough to accommodate different and new approaches to MPC in buildings as research approaches a consensus on best-practice methods.\n\n## License\nMPCPy is available under the following open-source [license](https://github.com/lbl-srg/MPCPy/blob/master/license.txt).\n\n## Cite\nTo cite MPCPy, please use:\n\nBlum, D. H. and Wetter, M. “MPCPy: An Open-Source Software Platform for Model Predictive Control in Buildings.” Proceedings of the 15th Conference of International Building Performance Simulation, Aug 7 – 9, 2017. San Francisco, CA.\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["control","buildings","energy-efficiency","modelica","modelica-library","ernergy","energyplus"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/20068","html_url":"https://ost.ecosyste.ms/projects/20068"}