{"id":348042,"name":"PVCracks","description":"Investigates the effects of cracks on power loss in photovoltaic (PV) solar cells and tracks crack progression over time.","url":"https://github.com/sandialabs/pvcracks","last_synced_at":"2026-04-16T17:30:21.605Z","repository":{"id":243866284,"uuid":"800620702","full_name":"sandialabs/pvcracks","owner":"sandialabs","description":"Si-PV cell crack image recognition, modeling, and power loss prediction","archived":false,"fork":false,"pushed_at":"2026-02-18T22:32:29.000Z","size":219549,"stargazers_count":3,"open_issues_count":1,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-04-07T13:03:16.853Z","etag":null,"topics":["electroluminescence","image-generation","image-segmentation","photovoltaics","scr-2979","snl-data-analysis"],"latest_commit_sha":null,"homepage":"https://pvcracks.readthedocs.io/en/latest/index.html#","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sandialabs.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,"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":"2024-05-14T17:17:32.000Z","updated_at":"2026-03-07T21:47:02.000Z","dependencies_parsed_at":"2024-06-11T17:39:30.417Z","dependency_job_id":"c0af1135-c98a-42e2-8389-85f384d62cad","html_url":"https://github.com/sandialabs/pvcracks","commit_stats":null,"previous_names":["sandialabs/pvcracks"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sandialabs/pvcracks","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandialabs%2Fpvcracks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandialabs%2Fpvcracks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandialabs%2Fpvcracks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandialabs%2Fpvcracks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sandialabs","download_url":"https://codeload.github.com/sandialabs/pvcracks/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandialabs%2Fpvcracks/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":{"login":"sandialabs","name":"Sandia National Laboratories","uuid":"4993680","kind":"organization","description":"Exceptional service in the national interest.","email":null,"website":"https://software.sandia.gov","location":"United States","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/4993680?v=4","repositories_count":123,"last_synced_at":"2023-03-13T13:51:28.478Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/sandialabs","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-03T05:35:26.920Z","updated_at":"2023-03-13T13:51:28.578Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sandialabs","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sandialabs/repositories"},"packages":[],"commits":{"id":5331172,"full_name":"sandialabs/pvcracks","default_branch":"master","total_commits":216,"total_committers":10,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":21.6,"dds":0.5416666666666667,"past_year_total_commits":166,"past_year_total_committers":8,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":20.75,"past_year_dds":0.6024096385542168,"last_synced_at":"2026-04-15T07:06:43.377Z","last_synced_commit":"5602e855f7c015b2d73162cc579d1c386ac89f78","created_at":"2024-11-12T15:14:38.992Z","updated_at":"2026-04-15T07:06:31.992Z","committers":[{"name":"Ojas Sanghi","email":"ojas.sanghi@gmail.com","login":"ojas-sanghi","count":99},{"name":"NormanJost","email":"87770657+NormanJost","login":"NormanJost","count":73},{"name":"Norman Robin Jost","email":"nrjost@gn123.eth","login":null,"count":15},{"name":"Norman Robin Jost","email":"nrjost@gn109.eth","login":null,"count":10},{"name":"Norman Robin Jost","email":"nrjost@gn1.eth","login":null,"count":9},{"name":"eccoope","email":"125493409+eccoope","login":"eccoope","count":3},{"name":"bkbyfor@sandia.gov","email":"bkbyfor@sandia.gov","login":null,"count":3},{"name":"Norman Robin Jost","email":"nrjost@gn7.eth","login":null,"count":2},{"name":"Jennifer Braid","email":"66803327+jlbraid","login":"jlbraid","count":1},{"name":"Norman Robin Jost","email":"nrjost@gn125.eth","login":null,"count":1}],"past_year_committers":[{"name":"NormanJost","email":"87770657+NormanJost","login":"NormanJost","count":66},{"name":"Ojas Sanghi","email":"ojas.sanghi@gmail.com","login":"ojas-sanghi","count":60},{"name":"Norman Robin Jost","email":"nrjost@gn123.eth","login":null,"count":15},{"name":"Norman Robin Jost","email":"nrjost@gn109.eth","login":null,"count":10},{"name":"Norman Robin Jost","email":"nrjost@gn1.eth","login":null,"count":9},{"name":"bkbyfor@sandia.gov","email":"bkbyfor@sandia.gov","login":null,"count":3},{"name":"Norman Robin Jost","email":"nrjost@gn7.eth","login":null,"count":2},{"name":"Norman Robin Jost","email":"nrjost@gn125.eth","login":null,"count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandialabs%2Fpvcracks/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-15T00:00:09.512Z","repositories_count":6213551,"commits_count":900068057,"contributors_count":34923497,"owners_count":1144627,"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":"sandialabs/pvcracks","html_url":"https://github.com/sandialabs/pvcracks","last_synced_at":"2026-03-20T04:00:30.140Z","status":"error","issues_count":3,"pull_requests_count":31,"avg_time_to_close_issue":794255.0,"avg_time_to_close_pull_request":35815.25,"issues_closed_count":1,"pull_requests_closed_count":24,"pull_request_authors_count":2,"issue_authors_count":2,"avg_comments_per_issue":0.0,"avg_comments_per_pull_request":0.0,"merged_pull_requests_count":23,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":1,"past_year_pull_requests_count":20,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":5015.307692307692,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":13,"past_year_pull_request_authors_count":2,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":0.0,"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":12,"created_at":"2024-11-12T15:14:40.106Z","updated_at":"2026-03-20T04:00:30.140Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandialabs%2Fpvcracks","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandialabs%2Fpvcracks/issues","issue_labels_count":{},"pull_request_labels_count":{},"issue_author_associations_count":{"COLLABORATOR":2,"NONE":1},"pull_request_author_associations_count":{"COLLABORATOR":31},"issue_authors":{"NormanJost":2,"williamhobbs":1},"pull_request_authors":{"NormanJost":28,"ojas-sanghi":3},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-15T00:00:09.535Z","repositories_count":14274534,"issues_count":34639844,"pull_requests_count":113315460,"authors_count":11235207,"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":{"COLLABORATOR":1},"past_year_pull_request_author_associations_count":{"COLLABORATOR":20},"past_year_issue_authors":{"NormanJost":1},"past_year_pull_request_authors":{"NormanJost":17,"ojas-sanghi":3},"maintainers":[{"login":"NormanJost","count":30,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/NormanJost"},{"login":"ojas-sanghi","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ojas-sanghi"}],"active_maintainers":[{"login":"NormanJost","count":18,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/NormanJost"},{"login":"ojas-sanghi","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ojas-sanghi"}]},"events":{"total":{"MemberEvent":1,"PullRequestEvent":40,"IssueCommentEvent":2,"PushEvent":107,"CreateEvent":4},"last_year":{"PullRequestEvent":38,"IssueCommentEvent":1,"PushEvent":71,"CreateEvent":3}},"keywords":["electroluminescence","image-generation","image-segmentation","photovoltaics","scr-2979","snl-data-analysis"],"dependencies":[],"score":3.6888794541139367,"created_at":"2026-03-12T00:01:04.801Z","updated_at":"2026-04-16T17:30:21.614Z","avatar_url":"https://github.com/sandialabs.png","language":"Jupyter Notebook","category":"Renewable Energy","sub_category":"Photovoltaics and Solar Energy","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"\u003cp align=\"left\"\u003e\n  \u003cimg\n    src=\"docs/pvcracks_logo.png\"\n    height=\"130\"\n    alt=\"PVCracks logo\"\n  /\u003e\n  \u003cimg\n    src=\"docs/duramat_logo.png\"\n    height=\"130\"\n    alt=\"DuraMAT logo\"\n  /\u003e\n\u003c/p\u003e\n\n# PVCracks\n\n## Latest Release\n\n[![DOI](https://img.shields.io/badge/DOI-10.11578%2Fdc.20240606.4-blue)](https://doi.org/10.11578/dc.20240606.4)\n\n## License\n\n[![License: BSD 3-Clause](https://img.shields.io/badge/license-BSD%203--Clause-blue.svg)](LICENSE)\n\n## Overview\n\nPVCracks is the DuraMAT project that investigates the effects of cracks on power loss in photovoltaic (PV) solar cells and tracks crack progression over time. We provide:\n\n- Open-source cell-level imaging and electrical datasets  \n- **MultiSolSegment**: segmentation of cracks, busbars, and dark areas in electroluminescence (EL) images  \n- **Variational Autoencoder (VAE)**: parameterization \u0026 clustering of segmented data  \n- **XGBoost model**: estimation of power loss (ΔPMPP) per cell\n- **pvspice_lite**: spice toolset for simulating current-voltage (I-V) curves and building synthetic module I-Vs (more features to come) \n\n## Documentation\n\n[![Read the Docs](https://readthedocs.org/projects/pvcracks/badge/?version=latest)](https://pvcracks.readthedocs.io/en/latest/index.html#)\n\nFull online documentation is available at  \nhttps://pvcracks.readthedocs.io/en/latest/index.html#\n\nBelow is a schematic of the repo’s architecture:\n\n\u003cimg src=\"docs/pvcracks_sch.png\" width=\"800\"\u003e\n\n## Data \u0026 Models\n\nAll datasets, trained model weights, and additional resources are hosted on DuraMAT DataHub:  \n[https://datahub.duramat.org/project/pv-crack-stress-and-power-loss](https://datahub.duramat.org/project/pv-crack-stress-and-power-loss)\n\n- Cell-level EL \u0026 electrical data (data publication to follow)  \n- MultiSolSegment training images and masks (DOI: [10.21948/2587738](https://doi.org/10.21948/2587738))  \n- MultiSolSegment model weights (DOI: [10.21948/2997859](https://doi.org/10.21948/2997859))\n- VAE model weights (DOI: [10.21948/2997860](https://doi.org/10.21948/2997860))\n\n## Publications\n\n- **MultiSolSegment**  \n  In revision for *Solar Energy* (Elsevier). Preprint [10.2139/ssrn.5506469](https://dx.doi.org/10.2139/ssrn.5506469).\n\n- **Variational Autoencoder (VAE)**  \n  EUPVSEC 2024 conference proceeding  \n  DOI: [10.4229/EUPVSEC2024/3BO.15.6](https://doi.org/10.4229/EUPVSEC2024/3BO.15.6)\n\n- **Power-Loss Model (XGBoost)**  \n  2025 IEEE 53rd Photovoltaic Specialists Conference (PVSC) proceeding  \n  DOI: [10.1109/PVSC59419.2025.11132966](https://doi.org/10.1109/PVSC59419.2025.11132966)\n\n## Updates\n\n- Dec. 9th 2025: Duramat webinar is uploaded here:  \n  [www.duramat.org/news-and-events/webinars](https://www.duramat.org/news-and-events/webinars)\n  [Direct Link to youtube](https://www.youtube.com/watch?v=4QWsLkpUDd4)\n\n## Installation\n\nClone and install:\n\n```bash\ngit clone git@github.com:sandialabs/pvcracks.git\ncd pvcracks\n\n# 1. Upgrade pip, setuptools, and wheel\npip install --upgrade pip setuptools wheel\n\n# 2. Install runtime dependencies (see requirements.txt for full list)\npip install -r requirements.txt\n\n# 3. Install pvcracks in editable mode\npip install -e .    # enables intra-project imports\n\n```\n\n## Acknowledgments\n\nFunding was provided as part of the Durable Modules Consortium (DuraMAT), an Energy Materials Network Consortium funded by the U.S. Department of Energy, Office of Energy Efficiency and Renewable Energy, Solar Energy Technologies Office under agreement number 32509. The views expressed in this article do not necessarily represent the views of the DOE or the U.S. Government. The U.S. Government retains—and the publisher, by accepting the article for publication, acknowledges—that it retains a nonexclusive, paid-up, irrevocable, worldwide license to publish or reproduce the published form of this work, or to allow others to do so, for U.S. Government purposes.\n\nSandia National Laboratories is a multimission laboratory managed and operated by National Technology and Engineering Solutions of Sandia, LLC, a wholly owned subsidiary of Honeywell International Inc., for the U.S. Department of Energy’s National Nuclear Security Administration under contract DE-NA0003525.\n\n","funding_links":[],"readme_doi_urls":["https://doi.org/10.11578/dc.20240606.4","https://doi.org/10.21948/2587738","https://doi.org/10.21948/2997859","https://doi.org/10.21948/2997860","https://dx.doi.org/10.2139/ssrn.5506469","https://doi.org/10.4229/EUPVSEC2024/3BO.15.6","https://doi.org/10.1109/PVSC59419.2025.11132966"],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://ost.ecosyste.ms/api/v1/projects/348042","html_url":"https://ost.ecosyste.ms/projects/348042"}