{"id":13,"name":"ginjax","description":"ginjax: E(d)-Equivariant CNN for Tensor Images - Published in JOSS (2025)","url":"https://github.com/wilsongregory/ginjax","last_synced_at":"2025-09-04T15:53:09.316Z","repository":{"id":65033011,"uuid":"531688835","full_name":"WilsonGregory/ginjax","owner":"WilsonGregory","description":"Equivariant convolutions for machine learning on tensor fields","archived":false,"fork":false,"pushed_at":"2025-08-25T21:12:07.000Z","size":46992,"stargazers_count":4,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-04T09:36:33.454Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://ginjax.readthedocs.io/en/latest/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"davidwhogg/GeometricConvolutions","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/WilsonGregory.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-09-01T21:16:45.000Z","updated_at":"2025-08-25T21:12:08.000Z","dependencies_parsed_at":"2025-02-10T20:25:14.827Z","dependency_job_id":"709cd783-eeb8-4063-b0aa-be5aa35eda76","html_url":"https://github.com/WilsonGregory/ginjax","commit_stats":null,"previous_names":["wilsongregory/ginjax","wilsongregory/geometricconvolutions"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/WilsonGregory/ginjax","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WilsonGregory%2Fginjax","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WilsonGregory%2Fginjax/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WilsonGregory%2Fginjax/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WilsonGregory%2Fginjax/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WilsonGregory","download_url":"https://codeload.github.com/WilsonGregory/ginjax/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WilsonGregory%2Fginjax/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273619488,"owners_count":25138238,"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-04T02:00:08.968Z","response_time":61,"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":"WilsonGregory","name":"Wilson Gregory","uuid":"8941742","kind":"user","description":"AMS PhD Student","email":"","website":null,"location":"Baltimore, MD","twitter":null,"company":"John Hopkins University","icon_url":"https://avatars.githubusercontent.com/u/8941742?u=0fb26244464097b8c9af97df00ae4a69253a8941\u0026v=4","repositories_count":2,"last_synced_at":"2023-03-09T23:06:23.907Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/WilsonGregory","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-19T14:15:06.725Z","updated_at":"2023-03-09T23:06:23.911Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WilsonGregory","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WilsonGregory/repositories"},"packages":[{"id":11466822,"name":"ginjax","ecosystem":"pypi","description":"Package for building Convolutional Neural Networks on images of tensors.","homepage":null,"licenses":"MIT License\n        \n        Copyright (c) 2022 David W. Hogg\n        \n        Permission is hereby granted, free of charge, to any person obtaining a copy\n        of this software and associated documentation files (the \"Software\"), to deal\n        in the Software without restriction, including without limitation the rights\n        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n        copies of the Software, and to permit persons to whom the Software is\n        furnished to do so, subject to the following conditions:\n        \n        The above copyright notice and this permission notice shall be included in all\n        copies or substantial portions of the Software.\n        \n        THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n        SOFTWARE.","normalized_licenses":["Other"],"repository_url":"https://github.com/WilsonGregory/ginjax","keywords_array":[],"namespace":null,"versions_count":3,"first_release_published_at":"2025-03-21T22:32:31.000Z","latest_release_published_at":"2025-08-10T00:49:14.000Z","latest_release_number":"0.1.6","last_synced_at":"2025-09-04T13:49:16.208Z","created_at":"2025-03-21T22:45:29.801Z","updated_at":"2025-09-04T13:49:16.208Z","registry_url":"https://pypi.org/project/ginjax/","install_command":"pip install ginjax --index-url https://pypi.org/simple","documentation_url":"https://ginjax.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":[],"normalized_name":"ginjax","project_status":null},"repo_metadata":{"id":65033011,"uuid":"531688835","full_name":"WilsonGregory/ginjax","owner":"WilsonGregory","description":"Equivariant convolutions for machine learning on tensor fields","archived":false,"fork":false,"pushed_at":"2025-07-07T01:00:09.000Z","size":43433,"stargazers_count":4,"open_issues_count":10,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-07T01:22:05.779Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://ginjax.readthedocs.io/en/latest/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"davidwhogg/GeometricConvolutions","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/WilsonGregory.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}},"created_at":"2022-09-01T21:16:45.000Z","updated_at":"2025-07-07T01:00:10.000Z","dependencies_parsed_at":"2025-02-10T20:25:14.827Z","dependency_job_id":"709cd783-eeb8-4063-b0aa-be5aa35eda76","html_url":"https://github.com/WilsonGregory/ginjax","commit_stats":null,"previous_names":["wilsongregory/ginjax","wilsongregory/geometricconvolutions"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/WilsonGregory/ginjax","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WilsonGregory%2Fginjax","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WilsonGregory%2Fginjax/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WilsonGregory%2Fginjax/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WilsonGregory%2Fginjax/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WilsonGregory","download_url":"https://codeload.github.com/WilsonGregory/ginjax/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WilsonGregory%2Fginjax/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269662642,"owners_count":24455776,"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-08-09T02:00:10.424Z","response_time":111,"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":"WilsonGregory","name":"Wilson Gregory","uuid":"8941742","kind":"user","description":"AMS PhD Student","email":"","website":null,"location":"Baltimore, MD","twitter":null,"company":"John Hopkins University","icon_url":"https://avatars.githubusercontent.com/u/8941742?u=0fb26244464097b8c9af97df00ae4a69253a8941\u0026v=4","repositories_count":2,"last_synced_at":"2023-03-09T23:06:23.907Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/WilsonGregory","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-19T14:15:06.725Z","updated_at":"2023-03-09T23:06:23.911Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WilsonGregory","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WilsonGregory/repositories"},"tags":[{"name":"v0.1.5","sha":"315d6d9431e3c917bce2988adb5352ddccb05933","kind":"commit","published_at":"2025-03-25T14:38:02.000Z","download_url":"https://codeload.github.com/WilsonGregory/ginjax/tar.gz/v0.1.5","html_url":"https://github.com/WilsonGregory/ginjax/releases/tag/v0.1.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/WilsonGregory/ginjax@v0.1.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WilsonGregory%2Fginjax/tags/v0.1.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WilsonGregory%2Fginjax/tags/v0.1.5/manifests"},{"name":"v0.1.3","sha":"dc3fbd8df7417bbf4f276d17f07b366ade55182d","kind":"commit","published_at":"2025-02-05T18:43:51.000Z","download_url":"https://codeload.github.com/WilsonGregory/ginjax/tar.gz/v0.1.3","html_url":"https://github.com/WilsonGregory/ginjax/releases/tag/v0.1.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/WilsonGregory/ginjax@v0.1.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WilsonGregory%2Fginjax/tags/v0.1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WilsonGregory%2Fginjax/tags/v0.1.3/manifests"}]},"repo_metadata_updated_at":"2025-08-10T01:17:25.347Z","dependent_packages_count":0,"downloads":143,"downloads_period":"last-month","dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":53.154173245272105,"dependent_packages_count":9.438375055441938,"stargazers_count":30.152019484166086,"forks_count":24.42244524166326,"docker_downloads_count":null,"average":29.291753256635847},"purl":"pkg:pypi/ginjax","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/ginjax","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/pypi/ginjax","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/ginjax/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/ginjax/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/ginjax/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/ginjax/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/ginjax/related_packages","maintainers":[{"uuid":"wilsongregory","login":"wilsongregory","name":null,"email":null,"url":null,"packages_count":3,"html_url":"https://pypi.org/user/wilsongregory/","role":"Owner","created_at":"2025-03-21T23:33:27.025Z","updated_at":"2025-03-21T23:33:27.025Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/wilsongregory/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":724816,"maintainers_count":308208,"namespaces_count":0,"keywords_count":237984,"github":"pypi","metadata":{"funded_packages_count":50481},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2025-09-04T05:23:51.177Z","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":10895974,"full_name":"wilsongregory/ginjax","default_branch":"master","committers":null,"total_commits":null,"total_committers":null,"total_bot_commits":null,"total_bot_committers":null,"mean_commits":null,"dds":null,"past_year_committers":null,"past_year_total_commits":null,"past_year_total_committers":null,"past_year_total_bot_commits":null,"past_year_total_bot_committers":null,"past_year_mean_commits":null,"past_year_dds":null,"last_synced_at":null,"last_synced_commit":null,"created_at":"2025-09-04T09:18:56.170Z","updated_at":"2025-09-04T09:18:56.170Z","commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/wilsongregory%2Fginjax/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-09-04T00:00:25.936Z","repositories_count":5480019,"commits_count":853389012,"contributors_count":31098138,"owners_count":906558,"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":"WilsonGregory/ginjax","html_url":"https://github.com/WilsonGregory/ginjax","last_synced_at":"2025-09-04T13:53:36.064Z","status":"active","issues_count":10,"pull_requests_count":102,"avg_time_to_close_issue":4093971.111111111,"avg_time_to_close_pull_request":9600.326530612245,"issues_closed_count":9,"pull_requests_closed_count":98,"pull_request_authors_count":2,"issue_authors_count":3,"avg_comments_per_issue":2.2,"avg_comments_per_pull_request":0.0,"merged_pull_requests_count":98,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":10,"past_year_pull_requests_count":96,"past_year_avg_time_to_close_issue":4093971.111111111,"past_year_avg_time_to_close_pull_request":10141.13043478261,"past_year_issues_closed_count":9,"past_year_pull_requests_closed_count":92,"past_year_pull_request_authors_count":2,"past_year_issue_authors_count":3,"past_year_avg_comments_per_issue":2.2,"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":92,"created_at":"2025-08-29T12:38:18.644Z","updated_at":"2025-09-04T13:53:36.064Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/WilsonGregory%2Fginjax","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/WilsonGregory%2Fginjax/issues","issue_labels_count":{},"pull_request_labels_count":{},"issue_author_associations_count":{"NONE":9,"CONTRIBUTOR":1},"pull_request_author_associations_count":{"OWNER":100,"CONTRIBUTOR":2},"issue_authors":{"ameya98":6,"zhanglw0521":3,"kazewong":1},"pull_request_authors":{"WilsonGregory":100,"kazewong":2},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-09-04T00:00:25.939Z","repositories_count":10080233,"issues_count":31311624,"pull_requests_count":96148338,"authors_count":10693059,"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":{"NONE":9,"CONTRIBUTOR":1},"past_year_pull_request_author_associations_count":{"OWNER":94,"CONTRIBUTOR":2},"past_year_issue_authors":{"ameya98":6,"zhanglw0521":3,"kazewong":1},"past_year_pull_request_authors":{"WilsonGregory":94,"kazewong":2},"maintainers":[{"login":"WilsonGregory","count":100,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/WilsonGregory"}],"active_maintainers":[{"login":"WilsonGregory","count":94,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/WilsonGregory"}]},"events":{"total":{"CreateEvent":20,"IssuesEvent":12,"ReleaseEvent":2,"WatchEvent":1,"DeleteEvent":16,"IssueCommentEvent":14,"PushEvent":29,"PullRequestEvent":34},"last_year":{"CreateEvent":20,"IssuesEvent":12,"ReleaseEvent":2,"WatchEvent":1,"DeleteEvent":16,"IssueCommentEvent":14,"PushEvent":29,"PullRequestEvent":34}},"keywords":[],"dependencies":[{"ecosystem":"pypi","filepath":"src/geometricconvolutions.egg-info/requires.txt","sha":null,"kind":"manifest","created_at":"2023-02-14T12:50:13.286Z","updated_at":"2023-02-14T12:50:13.286Z","repository_link":"https://github.com/WilsonGregory/ginjax/blob/main/src/geometricconvolutions.egg-info/requires.txt","dependencies":[{"id":7659455669,"package_name":"matplotlib","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":7659455670,"package_name":"numpy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":7659455671,"package_name":"jax","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"pyproject.toml","sha":null,"kind":"manifest","created_at":"2025-02-10T20:25:11.239Z","updated_at":"2025-02-10T20:25:11.239Z","repository_link":"https://github.com/WilsonGregory/ginjax/blob/main/pyproject.toml","dependencies":[{"id":21822875486,"package_name":"cmastro","ecosystem":"pypi","requirements":"\u003e=0.2","direct":true,"kind":"runtime","optional":false},{"id":21822875488,"package_name":"equinox","ecosystem":"pypi","requirements":"\u003e=0.11.11","direct":true,"kind":"runtime","optional":false},{"id":21822875504,"package_name":"imageio","ecosystem":"pypi","requirements":"\u003e=2.37.0","direct":true,"kind":"runtime","optional":false},{"id":21822875505,"package_name":"jax","ecosystem":"pypi","requirements":"\u003e=0.5.0","direct":true,"kind":"runtime","optional":false},{"id":21822875506,"package_name":"matplotlib","ecosystem":"pypi","requirements":"\u003e=3.10.0","direct":true,"kind":"runtime","optional":false},{"id":21822875507,"package_name":"numpy","ecosystem":"pypi","requirements":"\u003e=2.2.2","direct":true,"kind":"runtime","optional":false},{"id":21822875508,"package_name":"optax","ecosystem":"pypi","requirements":"\u003e=0.2.4","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"uv.lock","sha":null,"kind":"lockfile","created_at":"2025-02-10T20:25:12.536Z","updated_at":"2025-02-10T20:25:12.536Z","repository_link":"https://github.com/WilsonGregory/ginjax/blob/main/uv.lock","dependencies":[{"id":21822875509,"package_name":"absl-py","ecosystem":"pypi","requirements":"2.1.0","direct":false,"kind":"runtime","optional":false},{"id":21822875510,"package_name":"appnope","ecosystem":"pypi","requirements":"0.1.4","direct":false,"kind":"runtime","optional":false},{"id":21822875511,"package_name":"asttokens","ecosystem":"pypi","requirements":"3.0.0","direct":false,"kind":"runtime","optional":false},{"id":21822875512,"package_name":"attrs","ecosystem":"pypi","requirements":"25.1.0","direct":false,"kind":"runtime","optional":false},{"id":21822875513,"package_name":"babel","ecosystem":"pypi","requirements":"2.17.0","direct":false,"kind":"runtime","optional":false},{"id":21822875514,"package_name":"beautifulsoup4","ecosystem":"pypi","requirements":"4.13.3","direct":false,"kind":"runtime","optional":false},{"id":21822875515,"package_name":"bleach","ecosystem":"pypi","requirements":"6.2.0","direct":false,"kind":"runtime","optional":false},{"id":21822875516,"package_name":"certifi","ecosystem":"pypi","requirements":"2025.1.31","direct":false,"kind":"runtime","optional":false},{"id":21822875517,"package_name":"cffi","ecosystem":"pypi","requirements":"1.17.1","direct":false,"kind":"runtime","optional":false},{"id":21822875518,"package_name":"charset-normalizer","ecosystem":"pypi","requirements":"3.4.1","direct":false,"kind":"runtime","optional":false},{"id":21822875519,"package_name":"chex","ecosystem":"pypi","requirements":"0.1.88","direct":false,"kind":"runtime","optional":false},{"id":21822876061,"package_name":"click","ecosystem":"pypi","requirements":"8.1.8","direct":false,"kind":"runtime","optional":false},{"id":21822876062,"package_name":"cmastro","ecosystem":"pypi","requirements":"0.2","direct":false,"kind":"runtime","optional":false},{"id":21822876063,"package_name":"colorama","ecosystem":"pypi","requirements":"0.4.6","direct":false,"kind":"runtime","optional":false},{"id":21822876064,"package_name":"comm","ecosystem":"pypi","requirements":"0.2.2","direct":false,"kind":"runtime","optional":false},{"id":21822876065,"package_name":"contourpy","ecosystem":"pypi","requirements":"1.3.1","direct":false,"kind":"runtime","optional":false},{"id":21822876066,"package_name":"cycler","ecosystem":"pypi","requirements":"0.12.1","direct":false,"kind":"runtime","optional":false},{"id":21822876067,"package_name":"debugpy","ecosystem":"pypi","requirements":"1.8.12","direct":false,"kind":"runtime","optional":false},{"id":21822876068,"package_name":"decorator","ecosystem":"pypi","requirements":"5.1.1","direct":false,"kind":"runtime","optional":false},{"id":21822876069,"package_name":"defusedxml","ecosystem":"pypi","requirements":"0.7.1","direct":false,"kind":"runtime","optional":false},{"id":21822876070,"package_name":"equinox","ecosystem":"pypi","requirements":"0.11.11","direct":false,"kind":"runtime","optional":false},{"id":21822876071,"package_name":"etils","ecosystem":"pypi","requirements":"1.11.0","direct":false,"kind":"runtime","optional":false},{"id":21822876072,"package_name":"exceptiongroup","ecosystem":"pypi","requirements":"1.2.2","direct":false,"kind":"runtime","optional":false},{"id":21822876073,"package_name":"executing","ecosystem":"pypi","requirements":"2.2.0","direct":false,"kind":"runtime","optional":false},{"id":21822876074,"package_name":"fastjsonschema","ecosystem":"pypi","requirements":"2.21.1","direct":false,"kind":"runtime","optional":false},{"id":21822876075,"package_name":"fonttools","ecosystem":"pypi","requirements":"4.55.8","direct":false,"kind":"runtime","optional":false},{"id":21822876076,"package_name":"geometricconvolutions","ecosystem":"pypi","requirements":"0.1.1","direct":false,"kind":"runtime","optional":false},{"id":21822876081,"package_name":"ghp-import","ecosystem":"pypi","requirements":"2.1.0","direct":false,"kind":"runtime","optional":false},{"id":21822876082,"package_name":"griffe","ecosystem":"pypi","requirements":"1.5.6","direct":false,"kind":"runtime","optional":false},{"id":21822876083,"package_name":"idna","ecosystem":"pypi","requirements":"3.10","direct":false,"kind":"runtime","optional":false},{"id":21822876084,"package_name":"imageio","ecosystem":"pypi","requirements":"2.37.0","direct":false,"kind":"runtime","optional":false},{"id":21822876085,"package_name":"ipykernel","ecosystem":"pypi","requirements":"6.29.5","direct":false,"kind":"runtime","optional":false},{"id":21822876086,"package_name":"ipython","ecosystem":"pypi","requirements":"8.32.0","direct":false,"kind":"runtime","optional":false},{"id":21822876087,"package_name":"jax","ecosystem":"pypi","requirements":"0.5.0","direct":false,"kind":"runtime","optional":false},{"id":21822876088,"package_name":"jaxlib","ecosystem":"pypi","requirements":"0.5.0","direct":false,"kind":"runtime","optional":false},{"id":21822876089,"package_name":"jaxtyping","ecosystem":"pypi","requirements":"0.2.37","direct":false,"kind":"runtime","optional":false},{"id":21822876090,"package_name":"jedi","ecosystem":"pypi","requirements":"0.19.2","direct":false,"kind":"runtime","optional":false},{"id":21822876091,"package_name":"jinja2","ecosystem":"pypi","requirements":"3.1.5","direct":false,"kind":"runtime","optional":false},{"id":21822876092,"package_name":"jsonschema","ecosystem":"pypi","requirements":"4.23.0","direct":false,"kind":"runtime","optional":false},{"id":21822876093,"package_name":"jsonschema-specifications","ecosystem":"pypi","requirements":"2024.10.1","direct":false,"kind":"runtime","optional":false},{"id":21822876094,"package_name":"jupyter-client","ecosystem":"pypi","requirements":"8.6.3","direct":false,"kind":"runtime","optional":false},{"id":21822876095,"package_name":"jupyter-core","ecosystem":"pypi","requirements":"5.7.2","direct":false,"kind":"runtime","optional":false},{"id":21822876096,"package_name":"jupyterlab-pygments","ecosystem":"pypi","requirements":"0.3.0","direct":false,"kind":"runtime","optional":false},{"id":21822876097,"package_name":"jupytext","ecosystem":"pypi","requirements":"1.16.6","direct":false,"kind":"runtime","optional":false},{"id":21822876106,"package_name":"kiwisolver","ecosystem":"pypi","requirements":"1.4.8","direct":false,"kind":"runtime","optional":false},{"id":21822876107,"package_name":"markdown","ecosystem":"pypi","requirements":"3.7","direct":false,"kind":"runtime","optional":false},{"id":21822876108,"package_name":"markdown-it-py","ecosystem":"pypi","requirements":"3.0.0","direct":false,"kind":"runtime","optional":false},{"id":21822876109,"package_name":"markupsafe","ecosystem":"pypi","requirements":"3.0.2","direct":false,"kind":"runtime","optional":false},{"id":21822876110,"package_name":"matplotlib","ecosystem":"pypi","requirements":"3.10.0","direct":false,"kind":"runtime","optional":false},{"id":21822876111,"package_name":"matplotlib-inline","ecosystem":"pypi","requirements":"0.1.7","direct":false,"kind":"runtime","optional":false},{"id":21822876112,"package_name":"mdit-py-plugins","ecosystem":"pypi","requirements":"0.4.2","direct":false,"kind":"runtime","optional":false},{"id":21822876113,"package_name":"mdurl","ecosystem":"pypi","requirements":"0.1.2","direct":false,"kind":"runtime","optional":false},{"id":21822876114,"package_name":"mergedeep","ecosystem":"pypi","requirements":"1.3.4","direct":false,"kind":"runtime","optional":false},{"id":21822876115,"package_name":"mistune","ecosystem":"pypi","requirements":"3.1.1","direct":false,"kind":"runtime","optional":false},{"id":21822876116,"package_name":"mkdocs","ecosystem":"pypi","requirements":"1.6.1","direct":false,"kind":"runtime","optional":false},{"id":21822876117,"package_name":"mkdocs-autorefs","ecosystem":"pypi","requirements":"1.3.0","direct":false,"kind":"runtime","optional":false},{"id":21822876118,"package_name":"mkdocs-gen-files","ecosystem":"pypi","requirements":"0.5.0","direct":false,"kind":"runtime","optional":false},{"id":21822876119,"package_name":"mkdocs-get-deps","ecosystem":"pypi","requirements":"0.2.0","direct":false,"kind":"runtime","optional":false},{"id":21822876120,"package_name":"mkdocs-jupyter","ecosystem":"pypi","requirements":"0.25.1","direct":false,"kind":"runtime","optional":false},{"id":21822876121,"package_name":"mkdocs-literate-nav","ecosystem":"pypi","requirements":"0.6.1","direct":false,"kind":"runtime","optional":false},{"id":21822876122,"package_name":"mkdocs-material","ecosystem":"pypi","requirements":"9.5.47","direct":false,"kind":"runtime","optional":false},{"id":21822876123,"package_name":"mkdocs-material-extensions","ecosystem":"pypi","requirements":"1.3.1","direct":false,"kind":"runtime","optional":false},{"id":21822876124,"package_name":"mkdocstrings","ecosystem":"pypi","requirements":"0.27.0","direct":false,"kind":"runtime","optional":false},{"id":21822876125,"package_name":"mkdocstrings-python","ecosystem":"pypi","requirements":"1.13.0","direct":false,"kind":"runtime","optional":false},{"id":21822876126,"package_name":"ml-dtypes","ecosystem":"pypi","requirements":"0.5.1","direct":false,"kind":"runtime","optional":false},{"id":21822876127,"package_name":"nbclient","ecosystem":"pypi","requirements":"0.10.2","direct":false,"kind":"runtime","optional":false},{"id":21822876128,"package_name":"nbconvert","ecosystem":"pypi","requirements":"7.16.6","direct":false,"kind":"runtime","optional":false},{"id":21822876129,"package_name":"nbformat","ecosystem":"pypi","requirements":"5.10.4","direct":false,"kind":"runtime","optional":false},{"id":21822876130,"package_name":"nest-asyncio","ecosystem":"pypi","requirements":"1.6.0","direct":false,"kind":"runtime","optional":false},{"id":21822876131,"package_name":"numpy","ecosystem":"pypi","requirements":"2.2.2","direct":false,"kind":"runtime","optional":false},{"id":21822876132,"package_name":"opt-einsum","ecosystem":"pypi","requirements":"3.4.0","direct":false,"kind":"runtime","optional":false},{"id":21822876133,"package_name":"optax","ecosystem":"pypi","requirements":"0.2.4","direct":false,"kind":"runtime","optional":false},{"id":21822876134,"package_name":"packaging","ecosystem":"pypi","requirements":"24.2","direct":false,"kind":"runtime","optional":false},{"id":21822876135,"package_name":"paginate","ecosystem":"pypi","requirements":"0.5.7","direct":false,"kind":"runtime","optional":false},{"id":21822876136,"package_name":"pandocfilters","ecosystem":"pypi","requirements":"1.5.1","direct":false,"kind":"runtime","optional":false},{"id":21822876137,"package_name":"parso","ecosystem":"pypi","requirements":"0.8.4","direct":false,"kind":"runtime","optional":false},{"id":21822876138,"package_name":"pathspec","ecosystem":"pypi","requirements":"0.12.1","direct":false,"kind":"runtime","optional":false},{"id":21822876139,"package_name":"pexpect","ecosystem":"pypi","requirements":"4.9.0","direct":false,"kind":"runtime","optional":false},{"id":21822876140,"package_name":"pillow","ecosystem":"pypi","requirements":"11.1.0","direct":false,"kind":"runtime","optional":false},{"id":21822876141,"package_name":"platformdirs","ecosystem":"pypi","requirements":"4.3.6","direct":false,"kind":"runtime","optional":false},{"id":21822876142,"package_name":"prompt-toolkit","ecosystem":"pypi","requirements":"3.0.50","direct":false,"kind":"runtime","optional":false},{"id":21822876143,"package_name":"psutil","ecosystem":"pypi","requirements":"6.1.1","direct":false,"kind":"runtime","optional":false},{"id":21822876144,"package_name":"ptyprocess","ecosystem":"pypi","requirements":"0.7.0","direct":false,"kind":"runtime","optional":false},{"id":21822876145,"package_name":"pure-eval","ecosystem":"pypi","requirements":"0.2.3","direct":false,"kind":"runtime","optional":false},{"id":21822876146,"package_name":"pycparser","ecosystem":"pypi","requirements":"2.22","direct":false,"kind":"runtime","optional":false},{"id":21822876147,"package_name":"pygments","ecosystem":"pypi","requirements":"2.19.1","direct":false,"kind":"runtime","optional":false},{"id":21822876148,"package_name":"pymdown-extensions","ecosystem":"pypi","requirements":"10.12","direct":false,"kind":"runtime","optional":false},{"id":21822876149,"package_name":"pyparsing","ecosystem":"pypi","requirements":"3.2.1","direct":false,"kind":"runtime","optional":false},{"id":21822876150,"package_name":"python-dateutil","ecosystem":"pypi","requirements":"2.9.0.post0","direct":false,"kind":"runtime","optional":false},{"id":21822876151,"package_name":"pywin32","ecosystem":"pypi","requirements":"308","direct":false,"kind":"runtime","optional":false},{"id":21822876152,"package_name":"pyyaml","ecosystem":"pypi","requirements":"6.0.2","direct":false,"kind":"runtime","optional":false},{"id":21822876153,"package_name":"pyyaml-env-tag","ecosystem":"pypi","requirements":"0.1","direct":false,"kind":"runtime","optional":false},{"id":21822876154,"package_name":"pyzmq","ecosystem":"pypi","requirements":"26.2.1","direct":false,"kind":"runtime","optional":false},{"id":21822876155,"package_name":"referencing","ecosystem":"pypi","requirements":"0.36.2","direct":false,"kind":"runtime","optional":false},{"id":21822876156,"package_name":"regex","ecosystem":"pypi","requirements":"2024.11.6","direct":false,"kind":"runtime","optional":false},{"id":21822876157,"package_name":"requests","ecosystem":"pypi","requirements":"2.32.3","direct":false,"kind":"runtime","optional":false},{"id":21822876158,"package_name":"rpds-py","ecosystem":"pypi","requirements":"0.22.3","direct":false,"kind":"runtime","optional":false},{"id":21822876159,"package_name":"scipy","ecosystem":"pypi","requirements":"1.15.1","direct":false,"kind":"runtime","optional":false},{"id":21822876160,"package_name":"setuptools","ecosystem":"pypi","requirements":"75.8.0","direct":false,"kind":"runtime","optional":false},{"id":21822876161,"package_name":"six","ecosystem":"pypi","requirements":"1.17.0","direct":false,"kind":"runtime","optional":false},{"id":21822876162,"package_name":"soupsieve","ecosystem":"pypi","requirements":"2.6","direct":false,"kind":"runtime","optional":false},{"id":21822876163,"package_name":"stack-data","ecosystem":"pypi","requirements":"0.6.3","direct":false,"kind":"runtime","optional":false},{"id":21822876164,"package_name":"tinycss2","ecosystem":"pypi","requirements":"1.4.0","direct":false,"kind":"runtime","optional":false},{"id":21822876165,"package_name":"tomli","ecosystem":"pypi","requirements":"2.2.1","direct":false,"kind":"runtime","optional":false},{"id":21822876166,"package_name":"toolz","ecosystem":"pypi","requirements":"1.0.0","direct":false,"kind":"runtime","optional":false},{"id":21822876167,"package_name":"tornado","ecosystem":"pypi","requirements":"6.4.2","direct":false,"kind":"runtime","optional":false},{"id":21822876168,"package_name":"traitlets","ecosystem":"pypi","requirements":"5.14.3","direct":false,"kind":"runtime","optional":false},{"id":21822876169,"package_name":"typing-extensions","ecosystem":"pypi","requirements":"4.12.2","direct":false,"kind":"runtime","optional":false},{"id":21822876170,"package_name":"urllib3","ecosystem":"pypi","requirements":"2.3.0","direct":false,"kind":"runtime","optional":false},{"id":21822876171,"package_name":"wadler-lindig","ecosystem":"pypi","requirements":"0.1.3","direct":false,"kind":"runtime","optional":false},{"id":21822876176,"package_name":"watchdog","ecosystem":"pypi","requirements":"6.0.0","direct":false,"kind":"runtime","optional":false},{"id":21822876177,"package_name":"wcwidth","ecosystem":"pypi","requirements":"0.2.13","direct":false,"kind":"runtime","optional":false},{"id":21822876178,"package_name":"webencodings","ecosystem":"pypi","requirements":"0.5.1","direct":false,"kind":"runtime","optional":false}]}],"score":null,"created_at":"2025-09-04T09:17:28.736Z","updated_at":"2025-10-07T08:04:06.133Z","avatar_url":"https://github.com/WilsonGregory.png","language":"Python","category":"Scientific Software","sub_category":"Peer-reviewed","monthly_downloads":143,"funding_links":[],"readme_doi_urls":["https://doi.org/10.21105/joss.08129"],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://science.ecosyste.ms/api/v1/projects/13","html_url":"https://science.ecosyste.ms/projects/13"}