{"id":146150,"name":"SAM","description":"An open-source software designed to help engineers create analytical models of energy-efficient buildings.","url":"https://github.com/hoarelea/sam","last_synced_at":"2026-05-23T13:03:08.156Z","repository":{"id":37419485,"uuid":"224512247","full_name":"HoareLea/SAM","owner":"HoareLea","description":"Sustainable Analytical Model (SAM) -   Core","archived":false,"fork":false,"pushed_at":"2026-03-31T10:20:32.000Z","size":9030,"stargazers_count":20,"open_issues_count":64,"forks_count":8,"subscribers_count":5,"default_branch":"master","last_synced_at":"2026-03-31T12:22:05.235Z","etag":null,"topics":["core","sam"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HoareLea.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-11-27T20:31:07.000Z","updated_at":"2026-03-31T10:20:43.000Z","dependencies_parsed_at":"2023-10-02T18:53:36.834Z","dependency_job_id":"3b6b5098-75c4-48ca-9023-ab8895d15eac","html_url":"https://github.com/HoareLea/SAM","commit_stats":{"total_commits":3801,"total_committers":7,"mean_commits":543.0,"dds":0.2849250197316495,"last_synced_commit":"3defd51c1153ecc351f63d67fb9c61be1d4b9e66"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/HoareLea/SAM","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HoareLea%2FSAM","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HoareLea%2FSAM/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HoareLea%2FSAM/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HoareLea%2FSAM/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HoareLea","download_url":"https://codeload.github.com/HoareLea/SAM/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HoareLea%2FSAM/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33105823,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-16T04:41:52.686Z","status":"ssl_error","status_checked_at":"2026-05-16T04:41:52.009Z","response_time":115,"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":{"login":"HoareLea","name":"Hoare Lea","uuid":"58226090","kind":"organization","description":"","email":null,"website":"www.hoarelea.com","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/58226090?v=4","repositories_count":21,"last_synced_at":"2023-03-05T00:49:09.784Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/HoareLea","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-15T03:14:58.417Z","updated_at":"2023-03-05T00:49:09.798Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HoareLea","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HoareLea/repositories"},"packages":[],"commits":{"id":1452145,"full_name":"hoarelea/sam","default_branch":"master","total_commits":4185,"total_committers":6,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":697.5,"dds":0.2939068100358423,"past_year_total_commits":191,"past_year_total_committers":2,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":95.5,"past_year_dds":0.4397905759162304,"last_synced_at":"2026-05-15T20:24:32.895Z","last_synced_commit":"00071c5e0c06a4ed804c4fd20a8dadcafb6bf172","created_at":"2023-11-28T20:27:01.750Z","updated_at":"2026-05-15T20:24:18.991Z","committers":[{"name":"Jakub Ziolkowski","email":"jakubziolkowski@digiproject.uk","login":"ZiolkowskiJakub","count":2955},{"name":"Michal Dengusiak","email":"tassimulation@gmail.com","login":"michaldengusiak","count":1204},{"name":"Maciej Dengusiak","email":"maciejdengusiak@gmail.com","login":"MaciejDengusiak","count":17},{"name":"Will Reynolds","email":"willreynolds@hoarelea.com","login":"willhl","count":4},{"name":"Michal Dengusiak","email":"dengusiak@gmail.com","login":"mdengusiak","count":4},{"name":"Dengusiak","email":"MICHAL.DENGUSIAK@tetratech.com","login":null,"count":1}],"past_year_committers":[{"name":"Jakub Ziolkowski","email":"jakubziolkowski@digiproject.uk","login":"ZiolkowskiJakub","count":107},{"name":"Michal Dengusiak","email":"tassimulation@gmail.com","login":"michaldengusiak","count":84}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/hoarelea%2Fsam/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-05-16T00:00:17.015Z","repositories_count":6235423,"commits_count":884661212,"contributors_count":34909038,"owners_count":1154020,"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":"hoarelea/sam","html_url":"https://github.com/hoarelea/sam","last_synced_at":"2026-05-16T14:12:32.360Z","status":"active","issues_count":73,"pull_requests_count":52,"avg_time_to_close_issue":1622216.2222222222,"avg_time_to_close_pull_request":137222.84,"issues_closed_count":45,"pull_requests_closed_count":50,"pull_request_authors_count":4,"issue_authors_count":2,"avg_comments_per_issue":0.9726027397260274,"avg_comments_per_pull_request":0.2692307692307692,"merged_pull_requests_count":35,"bot_issues_count":0,"bot_pull_requests_count":14,"past_year_issues_count":4,"past_year_pull_requests_count":5,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":1859.0,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":3,"past_year_pull_request_authors_count":2,"past_year_issue_authors_count":2,"past_year_avg_comments_per_issue":0.75,"past_year_avg_comments_per_pull_request":0.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":3,"created_at":"2023-11-28T20:27:31.938Z","updated_at":"2026-05-16T14:12:32.361Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/hoarelea%2Fsam","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/hoarelea%2Fsam/issues","issue_labels_count":{"bug":42,"feature request":33,"question":1},"pull_request_labels_count":{"dependencies":14},"issue_author_associations_count":{"MEMBER":72,"NONE":1},"pull_request_author_associations_count":{"MEMBER":31,"NONE":14,"COLLABORATOR":7},"issue_authors":{"michaldengusiak":72,"davidbhl":1},"pull_request_authors":{"ZiolkowskiJakub":27,"dependabot[bot]":14,"MaciejDengusiak":7,"michaldengusiak":4},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-05-17T00:00:41.354Z","repositories_count":14626361,"issues_count":34189132,"pull_requests_count":111866994,"authors_count":11264713,"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":{"bug":2,"feature request":2},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{"MEMBER":3,"NONE":1},"past_year_pull_request_author_associations_count":{"MEMBER":5},"past_year_issue_authors":{"michaldengusiak":3,"davidbhl":1},"past_year_pull_request_authors":{"michaldengusiak":3,"ZiolkowskiJakub":2},"maintainers":[{"login":"michaldengusiak","count":76,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/michaldengusiak"},{"login":"ZiolkowskiJakub","count":27,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ZiolkowskiJakub"},{"login":"MaciejDengusiak","count":7,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/MaciejDengusiak"}],"active_maintainers":[{"login":"michaldengusiak","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/michaldengusiak"},{"login":"ZiolkowskiJakub","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ZiolkowskiJakub"}]},"events":{"total":{"DeleteEvent":8,"PullRequestEvent":4,"ForkEvent":2,"IssuesEvent":8,"IssueCommentEvent":2,"PushEvent":127,"PullRequestReviewCommentEvent":2,"GollumEvent":1,"PullRequestReviewEvent":1,"CreateEvent":4},"last_year":{"DeleteEvent":3,"PullRequestEvent":2,"ForkEvent":1,"IssuesEvent":8,"IssueCommentEvent":2,"PushEvent":88,"PullRequestReviewCommentEvent":2,"GollumEvent":1,"CreateEvent":4}},"keywords":["core","sam"],"dependencies":[{"ecosystem":"nuget","filepath":"Dynamo/SAMAnalyticalDynamo/SAMAnalyticalDynamo.csproj","sha":null,"kind":"manifest","created_at":"2023-10-02T18:53:36.668Z","updated_at":"2023-10-02T18:53:36.668Z","repository_link":"https://github.com/HoareLea/SAM/blob/master/Dynamo/SAMAnalyticalDynamo/SAMAnalyticalDynamo.csproj","dependencies":[]},{"ecosystem":"nuget","filepath":"Dynamo/SAMCoreDynamo/SAMCoreDynamo.csproj","sha":null,"kind":"manifest","created_at":"2023-10-02T18:53:36.694Z","updated_at":"2023-10-02T18:53:36.694Z","repository_link":"https://github.com/HoareLea/SAM/blob/master/Dynamo/SAMCoreDynamo/SAMCoreDynamo.csproj","dependencies":[]},{"ecosystem":"nuget","filepath":"Dynamo/SAMGeometryDynamo/SAMGeometryDynamo.csproj","sha":null,"kind":"manifest","created_at":"2023-10-02T18:53:36.712Z","updated_at":"2023-10-02T18:53:36.712Z","repository_link":"https://github.com/HoareLea/SAM/blob/master/Dynamo/SAMGeometryDynamo/SAMGeometryDynamo.csproj","dependencies":[]},{"ecosystem":"nuget","filepath":"Grasshopper/SAM.Analytical.Grasshopper/SAM.Analytical.Grasshopper.csproj","sha":null,"kind":"manifest","created_at":"2023-10-02T18:53:36.734Z","updated_at":"2023-10-02T18:53:36.734Z","repository_link":"https://github.com/HoareLea/SAM/blob/master/Grasshopper/SAM.Analytical.Grasshopper/SAM.Analytical.Grasshopper.csproj","dependencies":[]},{"ecosystem":"nuget","filepath":"Grasshopper/SAM.Architectural.Grasshopper/SAM.Architectural.Grasshopper.csproj","sha":null,"kind":"manifest","created_at":"2023-10-02T18:53:36.744Z","updated_at":"2023-10-02T18:53:36.744Z","repository_link":"https://github.com/HoareLea/SAM/blob/master/Grasshopper/SAM.Architectural.Grasshopper/SAM.Architectural.Grasshopper.csproj","dependencies":[]},{"ecosystem":"nuget","filepath":"Grasshopper/SAM.Core.Grasshopper/SAM.Core.Grasshopper.csproj","sha":null,"kind":"manifest","created_at":"2023-10-02T18:53:36.756Z","updated_at":"2023-10-02T18:53:36.756Z","repository_link":"https://github.com/HoareLea/SAM/blob/master/Grasshopper/SAM.Core.Grasshopper/SAM.Core.Grasshopper.csproj","dependencies":[]},{"ecosystem":"nuget","filepath":"Grasshopper/SAM.Geometry.Grasshopper/SAM.Geometry.Grasshopper.csproj","sha":null,"kind":"manifest","created_at":"2023-10-02T18:53:36.765Z","updated_at":"2023-10-02T18:53:36.765Z","repository_link":"https://github.com/HoareLea/SAM/blob/master/Grasshopper/SAM.Geometry.Grasshopper/SAM.Geometry.Grasshopper.csproj","dependencies":[]},{"ecosystem":"nuget","filepath":"Grasshopper/SAM.Math.Grasshopper/SAM.Math.Grasshopper.csproj","sha":null,"kind":"manifest","created_at":"2023-10-02T18:53:36.771Z","updated_at":"2023-10-02T18:53:36.771Z","repository_link":"https://github.com/HoareLea/SAM/blob/master/Grasshopper/SAM.Math.Grasshopper/SAM.Math.Grasshopper.csproj","dependencies":[]},{"ecosystem":"nuget","filepath":"Grasshopper/SAM.Weather.Grasshopper/SAM.Weather.Grasshopper.csproj","sha":null,"kind":"manifest","created_at":"2023-10-02T18:53:36.775Z","updated_at":"2023-10-02T18:53:36.775Z","repository_link":"https://github.com/HoareLea/SAM/blob/master/Grasshopper/SAM.Weather.Grasshopper/SAM.Weather.Grasshopper.csproj","dependencies":[]},{"ecosystem":"nuget","filepath":"Rhino/SAM.Analytical.Rhino/SAM.Analytical.Rhino.csproj","sha":null,"kind":"manifest","created_at":"2023-10-02T18:53:36.779Z","updated_at":"2023-10-02T18:53:36.779Z","repository_link":"https://github.com/HoareLea/SAM/blob/master/Rhino/SAM.Analytical.Rhino/SAM.Analytical.Rhino.csproj","dependencies":[]},{"ecosystem":"nuget","filepath":"Rhino/SAM.Core.Rhino/SAM.Core.Rhino.csproj","sha":null,"kind":"manifest","created_at":"2023-10-02T18:53:36.784Z","updated_at":"2023-10-02T18:53:36.784Z","repository_link":"https://github.com/HoareLea/SAM/blob/master/Rhino/SAM.Core.Rhino/SAM.Core.Rhino.csproj","dependencies":[]},{"ecosystem":"nuget","filepath":"Rhino/SAM.Geometry.Rhino/SAM.Geometry.Rhino.csproj","sha":null,"kind":"manifest","created_at":"2023-10-02T18:53:36.789Z","updated_at":"2023-10-02T18:53:36.789Z","repository_link":"https://github.com/HoareLea/SAM/blob/master/Rhino/SAM.Geometry.Rhino/SAM.Geometry.Rhino.csproj","dependencies":[]},{"ecosystem":"nuget","filepath":"Rhino/SAM.Math.Rhino/SAM.Math.Rhino.csproj","sha":null,"kind":"manifest","created_at":"2023-10-02T18:53:36.794Z","updated_at":"2023-10-02T18:53:36.794Z","repository_link":"https://github.com/HoareLea/SAM/blob/master/Rhino/SAM.Math.Rhino/SAM.Math.Rhino.csproj","dependencies":[]},{"ecosystem":"nuget","filepath":"SAM/SAM.Analytical/SAM.Analytical.csproj","sha":null,"kind":"manifest","created_at":"2023-10-02T18:53:36.798Z","updated_at":"2023-10-02T18:53:36.798Z","repository_link":"https://github.com/HoareLea/SAM/blob/master/SAM/SAM.Analytical/SAM.Analytical.csproj","dependencies":[]},{"ecosystem":"nuget","filepath":"SAM/SAM.Architectural/SAM.Architectural.csproj","sha":null,"kind":"manifest","created_at":"2023-10-02T18:53:36.802Z","updated_at":"2023-10-02T18:53:36.802Z","repository_link":"https://github.com/HoareLea/SAM/blob/master/SAM/SAM.Architectural/SAM.Architectural.csproj","dependencies":[]},{"ecosystem":"nuget","filepath":"SAM/SAM.Core/SAM.Core.csproj","sha":null,"kind":"manifest","created_at":"2023-10-02T18:53:36.806Z","updated_at":"2023-10-02T18:53:36.806Z","repository_link":"https://github.com/HoareLea/SAM/blob/master/SAM/SAM.Core/SAM.Core.csproj","dependencies":[]},{"ecosystem":"nuget","filepath":"SAM/SAM.Geometry/SAM.Geometry.csproj","sha":null,"kind":"manifest","created_at":"2023-10-02T18:53:36.810Z","updated_at":"2023-10-02T18:53:36.810Z","repository_link":"https://github.com/HoareLea/SAM/blob/master/SAM/SAM.Geometry/SAM.Geometry.csproj","dependencies":[]},{"ecosystem":"nuget","filepath":"SAM/SAM.Math/SAM.Math.csproj","sha":null,"kind":"manifest","created_at":"2023-10-02T18:53:36.814Z","updated_at":"2023-10-02T18:53:36.814Z","repository_link":"https://github.com/HoareLea/SAM/blob/master/SAM/SAM.Math/SAM.Math.csproj","dependencies":[]},{"ecosystem":"nuget","filepath":"SAM/SAM.Units/SAM.Units.csproj","sha":null,"kind":"manifest","created_at":"2023-10-02T18:53:36.818Z","updated_at":"2023-10-02T18:53:36.818Z","repository_link":"https://github.com/HoareLea/SAM/blob/master/SAM/SAM.Units/SAM.Units.csproj","dependencies":[]},{"ecosystem":"nuget","filepath":"SAM/SAM.Weather/SAM.Weather.csproj","sha":null,"kind":"manifest","created_at":"2023-10-02T18:53:36.822Z","updated_at":"2023-10-02T18:53:36.822Z","repository_link":"https://github.com/HoareLea/SAM/blob/master/SAM/SAM.Weather/SAM.Weather.csproj","dependencies":[]}],"score":6.222576268071368,"created_at":"2023-11-28T20:26:59.427Z","updated_at":"2026-05-23T13:03:08.157Z","avatar_url":"https://github.com/HoareLea.png","language":"C#","category":"Consumption","sub_category":"Buildings and Heating","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"[![Build (Windows)](https://github.com/SAM-BIM/SAM/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/SAM-BIM/SAM/actions/workflows/build.yml)\n[![Installer (latest)](https://img.shields.io/github/v/release/SAM-BIM/SAM_Deploy?label=installer)](https://github.com/SAM-BIM/SAM_Deploy/releases/latest)\n\n# SAM\n\n\u003ca href=\"https://github.com/SAM-BIM/SAM\"\u003e\n  \u003cimg src=\"https://github.com/SAM-BIM/SAM/blob/master/Grasshopper/SAM.Core.Grasshopper/Resources/SAM_Small.png\"\n       align=\"left\" hspace=\"10\" vspace=\"6\"\u003e\n\u003c/a\u003e\n\n**SAM (Sustainable Analytical Model)** is the core of the **SAM Toolkit** —  \nan open-source platform designed to help engineers create, manage,\nand analyse analytical building models for energy and environmental performance.\n\nSAM provides a structured analytical representation of buildings,\nsupporting workflows for energy modelling, systems analysis,\nenvironmental simulation, and performance-driven design.\n\nIt is designed as a **modular and extensible platform**:\ncore analytical concepts are implemented in this repository,\nwith additional functionality provided through specialised SAM modules\nand integrations.\n\n---\n\n## What SAM provides\n\nAt its core, SAM enables:\n\n- creation and management of analytical building models  \n- assignment of constructions, loads, and system definitions  \n- preparation of models for simulation and analysis  \n- orchestration of analytical workflows and scenarios  \n- integration with external tools and simulation engines  \n\nSAM supports both **programmatic** and **visual** workflows,\nincluding integration with environments such as **Grasshopper**, **Rhino**, and **Revit**.\n\n---\n\n## Extensibility\n\nThe SAM platform is intentionally modular.\nAdditional repositories provide functionality such as:\n\n- simulation engine integrations (e.g. Tas, OpenStudio)\n- data exchange formats (IFC, gbXML, GEM)\n- environmental and physical calculations (psychrometrics, solar, acoustics)\n- UI layers and scripting interfaces (Windows UI, Rhino, Python)\n- experimental and research workflows\n\nThe full ecosystem, module descriptions, and relationships\nare documented in the **SAM Wiki**.\n\n---\n\n## Getting started\n\nTo install **SAM**, download and run the  \n[latest Windows installer](https://github.com/SAM-BIM/SAM_Deploy/releases/latest).\n\nAlternatively, the toolkit can be built from source using Visual Studio.\nSee the documentation in the **SAM Wiki** for setup guidance and build details.\n\n---\n\n## Documentation\n\n📘 **SAM Wiki:**  \nhttps://github.com/SAM-BIM/SAM/wiki\n\nThe Wiki contains:\n- module overviews and relationships  \n- build and dependency information  \n- workflow examples  \n- developer and contributor guidance  \n\n---\n\n## Licence\n\nThis repository is free software licensed under the  \n**GNU Lesser General Public License v3.0 or later (LGPL-3.0-or-later)**.\n\nEach contributor retains copyright to their respective contributions.  \nThe project history (Git) records authorship and provenance of all changes.\n\nSee:\n- `LICENSE`\n- `NOTICE`\n- `COPYRIGHT_HEADER.txt`\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://ost.ecosyste.ms/api/v1/projects/146150","html_url":"https://ost.ecosyste.ms/projects/146150"}