{"id":869,"name":"PhysioLabXR","description":"PhysioLabXR: A Python Platform for Real-Time, Multi-modal, Brain–Computer Interfaces and Extended Reality Experiments - Published in JOSS (2024)","url":"https://github.com/PhysioLabXR/PhysioLabXR-Community","last_synced_at":"2025-09-04T16:11:05.684Z","repository":{"id":37070149,"uuid":"333215865","full_name":"PhysioLabXR/PhysioLabXR-Community","owner":"PhysioLabXR","description":null,"archived":false,"fork":false,"pushed_at":"2025-08-22T18:54:05.000Z","size":696460,"stargazers_count":41,"open_issues_count":8,"forks_count":15,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-29T18:29:48.135Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PhysioLabXR.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":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":"2021-01-26T20:59:52.000Z","updated_at":"2025-08-28T11:35:19.000Z","dependencies_parsed_at":"2023-09-26T23:51:40.285Z","dependency_job_id":"a2bf156c-6edf-404d-b3e1-d34d8dc16f5a","html_url":"https://github.com/PhysioLabXR/PhysioLabXR-Community","commit_stats":null,"previous_names":["apocalyvec/physiolabxr","apocalyvec/renalabapp","physiolabxr/physiolabxr-community","physiolabxr/physiolabxr","apocalyvec/realitynavigation"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/PhysioLabXR/PhysioLabXR-Community","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PhysioLabXR%2FPhysioLabXR-Community","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PhysioLabXR%2FPhysioLabXR-Community/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PhysioLabXR%2FPhysioLabXR-Community/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PhysioLabXR%2FPhysioLabXR-Community/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PhysioLabXR","download_url":"https://codeload.github.com/PhysioLabXR/PhysioLabXR-Community/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PhysioLabXR%2FPhysioLabXR-Community/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273501398,"owners_count":25117087,"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-03T02:00:09.631Z","response_time":76,"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":"PhysioLabXR","name":"PhysioLabXR","uuid":"143232765","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/143232765?v=4","repositories_count":2,"last_synced_at":"2023-08-26T20:25:30.735Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/PhysioLabXR","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2023-08-26T20:25:30.737Z","updated_at":"2023-08-26T20:25:30.737Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PhysioLabXR","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PhysioLabXR/repositories"},"packages":[],"commits":{"id":9624960,"full_name":"PhysioLabXR/PhysioLabXR-Community","default_branch":"master","committers":[{"name":"Ziheng 'Leo' Li","email":"s-vector.lee@hotmail.com","login":"ApocalyVec","count":968},{"name":"HaowenWeiJohn","email":"hwei@wpi.edu","login":"HaowenWeiJohn","count":457},{"name":"yunxiang","email":"yp2648@columbia.edu","login":"Jefferyy-Peng","count":46},{"name":"junePyo","email":"junepyo.suh@gmail.com","login":"junePyo","count":20},{"name":"Zeyi Tong","email":"zt2373@columbia.edu","login":"zeyiiiii","count":11},{"name":"Jace Li","email":"yl4862@columbia.edu","login":"Cyno00","count":10},{"name":"Millie Wu","email":"mengyuanwu1@gmail.com","login":"mengyuanwu1","count":9},{"name":"HannahZ","email":"annzengtx@gmail.com","login":"zhannahz","count":7},{"name":"lommytea","email":"tlupe3507@gmail.com","login":"LommyTea","count":4},{"name":"Hanfei Sun","email":"hfsun98@gmail.com","login":"InsTiport","count":3},{"name":"Adithya N","email":"adithya1610@gmail.com","login":"Adithya1610","count":3},{"name":"Andrew S Liang","email":"caliangandrew@gmail.com","login":"aliang322","count":3},{"name":"Anna","email":"annaxu96@gmail.com","login":"annaxu96","count":2},{"name":"Kelvin0023","email":"2506967276@qq.com","login":"Kelvin0023","count":2},{"name":"jiananli306","email":"33046262+jiananli306","login":"jiananli306","count":1},{"name":"Yuyang Li (Ian)","email":"85670459+Gear-dev-sudo","login":"Gear-dev-sudo","count":1},{"name":"nikolo555","email":"np2832@columbia.edu","login":"nikolo555","count":1}],"total_commits":1548,"total_committers":17,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":91.05882352941177,"dds":0.3746770025839793,"past_year_committers":[{"name":"apocalyvec","email":"zl2990@columbia.edu","login":"ApocalyVec","count":41},{"name":"Zeyi Tong","email":"zt2373@columbia.edu","login":"zeyiiiii","count":11},{"name":"HaowenWeiJohn","email":"hw2892@columbia.edu","login":"HaowenWeiJohn","count":4},{"name":"lommytea","email":"tlupe3507@gmail.com","login":"LommyTea","count":4},{"name":"Yuyang Li (Ian)","email":"85670459+Gear-dev-sudo","login":"Gear-dev-sudo","count":1},{"name":"nikolo555","email":"np2832@columbia.edu","login":"nikolo555","count":1},{"name":"mengyuanwu1","email":"mengyuanwu1@gmail.com","login":"mengyuanwu1","count":1}],"past_year_total_commits":63,"past_year_total_committers":7,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":9.0,"past_year_dds":0.3492063492063492,"last_synced_at":"2025-04-11T15:58:25.704Z","last_synced_commit":"f72e7e625aa1ec8f12a3297805d416f93f779663","created_at":"2025-04-11T10:56:30.913Z","updated_at":"2025-07-31T02:40:27.631Z","commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/PhysioLabXR%2FPhysioLabXR-Community/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-09-02T00:00:07.521Z","repositories_count":5480031,"commits_count":853395369,"contributors_count":31098267,"owners_count":906561,"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":"PhysioLabXR/PhysioLabXR-Community","html_url":"https://github.com/PhysioLabXR/PhysioLabXR-Community","last_synced_at":"2025-08-31T13:34:37.536Z","status":null,"issues_count":15,"pull_requests_count":105,"avg_time_to_close_issue":5703698.333333333,"avg_time_to_close_pull_request":837733.9693877551,"issues_closed_count":12,"pull_requests_closed_count":98,"pull_request_authors_count":16,"issue_authors_count":8,"avg_comments_per_issue":0.8666666666666667,"avg_comments_per_pull_request":0.11428571428571428,"merged_pull_requests_count":84,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":1,"past_year_pull_requests_count":25,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":1665656.9,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":20,"past_year_pull_request_authors_count":6,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":0.0,"past_year_avg_comments_per_pull_request":0.08,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":13,"created_at":"2025-04-11T10:56:33.545Z","updated_at":"2025-09-03T05:12:58.294Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/PhysioLabXR%2FPhysioLabXR-Community","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/PhysioLabXR%2FPhysioLabXR-Community/issues","issue_labels_count":{},"pull_request_labels_count":{},"issue_author_associations_count":{"NONE":7,"MEMBER":6,"COLLABORATOR":3},"pull_request_author_associations_count":{"MEMBER":65,"COLLABORATOR":49,"NONE":3},"issue_authors":{"HaowenWeiJohn":4,"lucask07":3,"UdaiLaith":3,"ziwen-xie":1,"ApocalyVec":1,"cmicek1":1,"xichenhe":1,"LommyTea":1,"Jefferyy-Peng":1},"pull_request_authors":{"ApocalyVec":36,"xichenhe":21,"HaowenWeiJohn":19,"zeyiiiii":9,"Jefferyy-Peng":7,"LommyTea":6,"nikolo555":4,"Cyno00":4,"zhannahz":2,"mstimberg":2,"Gear-dev-sudo":2,"wutwasthat":1,"BRomans":1,"InsTiport":1,"Adithya1610":1,"CatalpaCreek":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-09-03T00:00:08.273Z","repositories_count":10068975,"issues_count":31218164,"pull_requests_count":95228988,"authors_count":10688649,"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":2},"past_year_pull_request_author_associations_count":{"COLLABORATOR":30,"MEMBER":4},"past_year_issue_authors":{"LommyTea":1,"xichenhe":1},"past_year_pull_request_authors":{"xichenhe":11,"zeyiiiii":9,"ApocalyVec":4,"nikolo555":4,"LommyTea":4,"Gear-dev-sudo":2},"maintainers":[{"login":"ApocalyVec","count":37,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ApocalyVec"},{"login":"HaowenWeiJohn","count":23,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/HaowenWeiJohn"},{"login":"xichenhe","count":22,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/xichenhe"},{"login":"zeyiiiii","count":9,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/zeyiiiii"},{"login":"Jefferyy-Peng","count":8,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Jefferyy-Peng"},{"login":"LommyTea","count":7,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/LommyTea"},{"login":"nikolo555","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nikolo555"},{"login":"Cyno00","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Cyno00"},{"login":"zhannahz","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/zhannahz"},{"login":"Gear-dev-sudo","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Gear-dev-sudo"},{"login":"ziwen-xie","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ziwen-xie"},{"login":"wutwasthat","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/wutwasthat"},{"login":"Adithya1610","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Adithya1610"},{"login":"InsTiport","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/InsTiport"},{"login":"CatalpaCreek","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/CatalpaCreek"}],"active_maintainers":[{"login":"xichenhe","count":12,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/xichenhe"},{"login":"zeyiiiii","count":9,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/zeyiiiii"},{"login":"LommyTea","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/LommyTea"},{"login":"ApocalyVec","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ApocalyVec"},{"login":"nikolo555","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nikolo555"},{"login":"Gear-dev-sudo","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Gear-dev-sudo"}]},"events":{"total":{"CreateEvent":20,"IssuesEvent":1,"WatchEvent":7,"DeleteEvent":6,"IssueCommentEvent":1,"MemberEvent":3,"PushEvent":117,"PullRequestReviewEvent":8,"PullRequestReviewCommentEvent":7,"PullRequestEvent":23,"ForkEvent":2},"last_year":{"CreateEvent":20,"IssuesEvent":1,"WatchEvent":7,"DeleteEvent":6,"IssueCommentEvent":1,"MemberEvent":3,"PushEvent":117,"PullRequestReviewEvent":8,"PullRequestReviewCommentEvent":7,"PullRequestEvent":23,"ForkEvent":2}},"keywords":[],"dependencies":[{"ecosystem":"pypi","filepath":"requirements.txt","sha":null,"kind":"manifest","created_at":"2023-02-14T04:00:42.148Z","updated_at":"2023-02-14T04:00:42.148Z","repository_link":"https://github.com/PhysioLabXR/PhysioLabXR-Community/blob/master/requirements.txt","dependencies":[{"id":7643777431,"package_name":"brainflow","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":7643777435,"package_name":"numpy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":7643777437,"package_name":"PyQt5","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":7643777441,"package_name":"pyserial","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":7643777445,"package_name":"pylsl","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":7643777448,"package_name":"sklearn","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":7643777450,"package_name":"scipy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":7643777453,"package_name":"pyqtgraph","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":7643777466,"package_name":"pyxdf","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":7643777469,"package_name":"opencv-python","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":7643777472,"package_name":"pyautogui","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":7643777475,"package_name":"qimage2ndarray","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":7643777478,"package_name":"matplotlib","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":7643777481,"package_name":"ipython","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":7643777484,"package_name":"pyzmq","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":7643777485,"package_name":"setuptools","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":7643777487,"package_name":"psutil","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":7643777489,"package_name":"pytest-qt","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"pyproject.toml","sha":null,"kind":"manifest","created_at":"2023-07-25T23:33:49.856Z","updated_at":"2023-07-25T23:33:49.856Z","repository_link":"https://github.com/PhysioLabXR/PhysioLabXR-Community/blob/master/pyproject.toml","dependencies":[]},{"ecosystem":"actions","filepath":".github/workflows/unit-tests.yml","sha":null,"kind":"manifest","created_at":"2023-09-26T23:51:40.124Z","updated_at":"2023-09-26T23:51:40.124Z","repository_link":"https://github.com/PhysioLabXR/PhysioLabXR-Community/blob/master/.github/workflows/unit-tests.yml","dependencies":[{"id":13961646004,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":13961646005,"package_name":"tlambert03/setup-qt-libs","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":13961646006,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"pypi","filepath":"physiolabxr/deprecated/recycle_bin/setup.py","sha":null,"kind":"manifest","created_at":"2023-09-26T23:51:40.151Z","updated_at":"2023-09-26T23:51:40.151Z","repository_link":"https://github.com/PhysioLabXR/PhysioLabXR-Community/blob/master/physiolabxr/deprecated/recycle_bin/setup.py","dependencies":[]},{"ecosystem":"pypi","filepath":"requirements.dev.txt","sha":null,"kind":"manifest","created_at":"2023-09-26T23:51:40.163Z","updated_at":"2023-09-26T23:51:40.163Z","repository_link":"https://github.com/PhysioLabXR/PhysioLabXR-Community/blob/master/requirements.dev.txt","dependencies":[{"id":13961646007,"package_name":"brainflow","ecosystem":"pypi","requirements":"*","direct":true,"kind":"development","optional":false},{"id":13961646008,"package_name":"numpy","ecosystem":"pypi","requirements":"\u003e=1.26.0","direct":true,"kind":"development","optional":false},{"id":13961646009,"package_name":"PyQt6","ecosystem":"pypi","requirements":"*","direct":true,"kind":"development","optional":false},{"id":13961646010,"package_name":"pyserial","ecosystem":"pypi","requirements":"*","direct":true,"kind":"development","optional":false},{"id":13961646011,"package_name":"pylsl","ecosystem":"pypi","requirements":"*","direct":true,"kind":"development","optional":false},{"id":13961646012,"package_name":"scikit-learn","ecosystem":"pypi","requirements":"*","direct":true,"kind":"development","optional":false},{"id":13961646013,"package_name":"scipy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"development","optional":false},{"id":13961646014,"package_name":"pyqtgraph","ecosystem":"pypi","requirements":"*","direct":true,"kind":"development","optional":false},{"id":13961646015,"package_name":"pyxdf","ecosystem":"pypi","requirements":"*","direct":true,"kind":"development","optional":false},{"id":13961646016,"package_name":"pyscreeze","ecosystem":"pypi","requirements":"*","direct":true,"kind":"development","optional":false},{"id":13961646017,"package_name":"opencv-python","ecosystem":"pypi","requirements":"*","direct":true,"kind":"development","optional":false},{"id":13961646018,"package_name":"pyzmq","ecosystem":"pypi","requirements":"*","direct":true,"kind":"development","optional":false},{"id":13961646019,"package_name":"setuptools","ecosystem":"pypi","requirements":"*","direct":true,"kind":"development","optional":false},{"id":13961646020,"package_name":"psutil","ecosystem":"pypi","requirements":"*","direct":true,"kind":"development","optional":false},{"id":13961646021,"package_name":"pytest-qt","ecosystem":"pypi","requirements":"*","direct":true,"kind":"development","optional":false},{"id":13961646022,"package_name":"numba","ecosystem":"pypi","requirements":"*","direct":true,"kind":"development","optional":false},{"id":13961646023,"package_name":"PyOpenGL","ecosystem":"pypi","requirements":"*","direct":true,"kind":"development","optional":false},{"id":13961646024,"package_name":"PyOpenGL_accelerate","ecosystem":"pypi","requirements":"*","direct":true,"kind":"development","optional":false},{"id":13961646025,"package_name":"soundfile","ecosystem":"pypi","requirements":"*","direct":true,"kind":"development","optional":false},{"id":13961646026,"package_name":"matplotlib","ecosystem":"pypi","requirements":"*","direct":true,"kind":"development","optional":false}]}],"score":6.725033642166842,"created_at":"2025-09-04T09:17:40.514Z","updated_at":"2025-10-07T08:04:28.018Z","avatar_url":"https://github.com/PhysioLabXR.png","language":"Python","category":"Scientific Software","sub_category":"Peer-reviewed","monthly_downloads":0,"funding_links":[],"readme_doi_urls":["https://doi.org/10.21105/joss.05854"],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://science.ecosyste.ms/api/v1/projects/869","html_url":"https://science.ecosyste.ms/projects/869"}