{"id":31484230,"url":"https://github.com/jin-cqu/esp32-unity","last_synced_at":"2026-04-18T00:02:53.010Z","repository":{"id":313722705,"uuid":"1036555735","full_name":"Jin-CQU/ESP32-Unity","owner":"Jin-CQU","description":"这个项目是一个基于 Unity 和 ESP32 的实时脑电信号处理和 SSVEP 刺激系统。它提供了多种功能,包括实时采集 ESP32 设备的脑电数据、Unity 可视化 EEG 波形、SSVEP 视觉刺激器、集成 Sentis/ONNX 模型推理进行实时 EEG 分类等。该项目还具有线程安全的数据处理、性能计时与诊断、支持 YVR SDK 和 Oculus XR 等特点。","archived":false,"fork":false,"pushed_at":"2025-09-08T03:15:38.000Z","size":109250,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-08T04:24:51.415Z","etag":null,"topics":["ar","bci-systems","c-sharp","eeg-classification","esp32","unity","vr"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Jin-CQU.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":"2025-08-12T08:46:22.000Z","updated_at":"2025-09-08T03:29:03.000Z","dependencies_parsed_at":"2025-09-08T04:38:38.896Z","dependency_job_id":null,"html_url":"https://github.com/Jin-CQU/ESP32-Unity","commit_stats":null,"previous_names":["jin-cqu/esp32-unity"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/Jin-CQU/ESP32-Unity","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jin-CQU%2FESP32-Unity","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jin-CQU%2FESP32-Unity/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jin-CQU%2FESP32-Unity/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jin-CQU%2FESP32-Unity/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Jin-CQU","download_url":"https://codeload.github.com/Jin-CQU/ESP32-Unity/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jin-CQU%2FESP32-Unity/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":277987456,"owners_count":25910597,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-02T02:00:08.890Z","response_time":67,"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"}},"keywords":["ar","bci-systems","c-sharp","eeg-classification","esp32","unity","vr"],"created_at":"2025-10-02T09:56:07.584Z","updated_at":"2026-04-18T00:02:52.997Z","avatar_url":"https://github.com/Jin-CQU.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ESP32-Unity 实时脑电信号处理与 SSVEP 刺激系统\n\n## 项目亮点\n- 实时采集 ESP32 设备脑电数据，支持多通道\n- Unity 可视化 EEG 波形，参数可调\n- SSVEP 视觉刺激器，频率/颜色/时长可配置\n- 集成 Sentis/ONNX 模型推理，实时 EEG 分类\n- 推理后端可选（GPU/CPU），自动回退并显示实际后端\n- 性能计时与诊断（Schedule/Download 分段耗时、Softmax 概率、Inspector 字段）\n- 线程安全数据处理，避免 UI 卡顿\n- 支持 YVR SDK、Oculus XR\n\n## 快速安装\n1. 克隆仓库并用 Unity 2022.3+ 打开\n2. （可选）安装 YVR SDK，配置 VR 设备\n3. 配置 ESP32 设备 IP/端口，确保数据包格式正确\n4. 运行主场景，系统自动初始化 UDP 接收与可视化\n\n## 主要模块\n- `Assets/Algorithm/EEG_Classify_test.cs`：EEG 实时推理组件，支持 ONNX 模型、后端选择、性能统计\n- `Assets/Comunication/UDP_1.cs`：UDP 通信，异步接收 ESP32 数据包，CRC 校验\n- `Assets/Data_Display/EEGVisualizer.cs`：脑电波形实时显示，支持多通道\n- `Assets/Stimulus/SSVEPStimulus.cs`：视觉刺激器，参数可调\n- `Assets/Logic/MainLogic.cs`：主逻辑控制\n\n## EEG 推理说明\n- Inspector 可选 GPUCompute/CPU，实际后端显示于 `actualBackend`\n- 推理输出自动 Softmax 归一化（等价 PyTorch `torch.softmax(outputs, dim=1)`）\n- 输入为最新 UDP 缓冲区数据，非随机测试\n- Inspector 显示 `lastInferenceTimeMs`、`averageInferenceTimeMs`、`lastScheduleTimeMs`、`lastDownloadTimeMs`，日志自动打印分段耗时\n- UDP 回调与主线程通过队列和标志同步，避免 Unity API 跨线程调用\n- Worker 创建与推理均可延迟/分帧执行，避免启动/推理卡顿\n\n## 项目结构\n```\nESP32-Unity/\n├── Assets/\n│   ├── Algorithm/           # EEG 推理与算法\n│   ├── Comunication/        # UDP 通信\n│   ├── Data_Display/        # EEG 可视化\n│   ├── Stimulus/            # SSVEP 刺激\n│   ├── Logic/               # 主逻辑\n│   ├── Scenes/              # Unity 场景\n│   ├── XR/                  # XR 支持\n│   └── YVRProjectSettings/  # YVR 配置\n├── ProjectSettings/         # Unity 项目设置\n├── Packages/                # 包管理\n└── README.md                # 项目说明\n```\n\n## 性能与诊断\n- 推理总耗时、分段耗时、平均耗时均可在 Inspector 和日志中查看\n- 控制台日志如：`耗时:0.39ms(S:0.1+D:0.3)`，便于定位瓶颈\n- 后端不可用自动回退并提示\n\n## 常见问题\n- UDP 连接失败：检查 IP/端口、防火墙、ESP32 配置\n- 数据显示异常：检查数据包格式、CRC 校验、显示参数\n- VR 设备连接问题：确认 YVR SDK 安装、设备驱动、XR 设置\n- 推理卡顿：建议使用分帧推理，检查后端选择\n\n## 扩展开发\n- 新算法：在 `Assets/Algorithm/` 新建脚本并集成到 UDP_1.cs\n- 新可视化：参考 EEGVisualizer.cs 创建新组件\n- 新刺激模式：参考 SSVEPStimulus.cs 实现自定义逻辑\n\n## Git 换行符 (LF/CRLF) 说明\n建议添加 `.gitattributes` 统一换行符：\n```\n* text=auto\n*.cs text eol=lf\n*.md text eol=lf\n```\n如需 Windows CRLF，可调整规则并设置 `core.autocrlf`。\n\n## 贡献与许可证\n- 欢迎提交 Issue 和 Pull Request\n- 本项目采用 MIT 许可证，详见 LICENSE 文件\n\n---\n**注意**：本系统仅用于研究和教育目的，实际医疗应用请遵循相关法规。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjin-cqu%2Fesp32-unity","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjin-cqu%2Fesp32-unity","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjin-cqu%2Fesp32-unity/lists"}