{"id":15138871,"url":"https://github.com/mercuso/headpat-vr","last_synced_at":"2025-10-23T15:31:45.375Z","repository":{"id":238725229,"uuid":"776957733","full_name":"Mercuso/headpat-vr","owner":"Mercuso","description":"Device that brings tactile feelings of VR head pats using mechanical force applied by brushes","archived":false,"fork":false,"pushed_at":"2025-01-06T22:22:27.000Z","size":51,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-01-30T19:12:12.052Z","etag":null,"topics":["arduino","esp8266","haptic-feedback","headpats","osc","python","vrchat"],"latest_commit_sha":null,"homepage":"","language":"HTML","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/Mercuso.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2024-03-24T22:31:59.000Z","updated_at":"2025-01-09T04:32:10.000Z","dependencies_parsed_at":"2024-05-07T18:56:57.515Z","dependency_job_id":"ef0e35f8-0300-46d2-a376-97a2b1ae0fb4","html_url":"https://github.com/Mercuso/headpat-vr","commit_stats":{"total_commits":22,"total_committers":1,"mean_commits":22.0,"dds":0.0,"last_synced_commit":"2b13602e26a579d8f95a38a6c5423f6015916209"},"previous_names":["mercuso/headpat-vr"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mercuso%2Fheadpat-vr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mercuso%2Fheadpat-vr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mercuso%2Fheadpat-vr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mercuso%2Fheadpat-vr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Mercuso","download_url":"https://codeload.github.com/Mercuso/headpat-vr/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237852384,"owners_count":19376668,"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","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":["arduino","esp8266","haptic-feedback","headpats","osc","python","vrchat"],"created_at":"2024-09-26T08:00:27.600Z","updated_at":"2025-10-23T15:31:39.964Z","avatar_url":"https://github.com/Mercuso.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# HeadpatVR\n\n[**Youtube overview**](https://youtu.be/_8gu3-EAek4)\n\n[![headpat-vr video](https://github.com/user-attachments/assets/1d326cb8-603f-4faa-afb7-9dde99af52e4)](https://youtu.be/_8gu3-EAek4)\n\nDevice that brings tactile feelings of VR head pats using mechanical force applied by brushes  \n\u003e [!WARNING]\n\u003e This project is in the development phase. The types of peripherial parts (fasteners, springs, printable parts) can be changed for further improvements\n## Introduction\nFeel VR head pats in real life!  \nThis device monitors hand collisions with a head in VRChat the sensation of cuddles on a head in real life using brushes controlled by servo motors  \nThe current fastening system is compatible only with BOBOVR M2/M3 head straps for Meta Quest 2 and 3. However, there are plans to develop a universal solution for the most common head straps in the future\n\nInspired by a [similar project that uses vibrating motors](https://github.com/danielfvm/Patstrap)  \nWhy another version?\nI found vibrations on a head too unpleasant and decided to try to reproduce head pats in another way  \n\n## Project parts\n### Desktop application\nThis repository includes only the application that should be launched on the PC alongside VRChat. The server application communicates with VRChat application using the OSC protocol (you can find more details about VRChat OSC [here](https://docs.vrchat.com/docs/osc-overview))  \nIt has UI implemented as a webpage, which opens automatically when the application is launched. The UI helps track the device's status, monitor the current intensity level on each side, and send test signals  \n\n### Firmware  \nThe source code is available [here](https://github.com/Mercuso/headpat-vr-esp)  \nThe code is written based on Arduino framework  \n\n### Hardware\n- 2 servo motors\n- ESP-WROOM-32 38pin board\n- esp-32 expansion board\n- fasteners\n- silicone brushes\n- mount system for the motors\n- mount system for esp-32 expansion board\n- power supply\n\nThe detailed list of parts with description can be found [here](docs/PARTS.md)\n\n## Setup\n\n### Firmware\nThe documentation and source code of the firmware can be found [here](https://github.com/Mercuso/headpat-vr-esp)\nYou need PlatformIO IDE to compile and upload it to your esp32-based board  \n\n### Hardware\nSince there are only 3 electronic components, the wiring is simple  \n![wiring](https://github.com/user-attachments/assets/2473b2b2-1a3f-42c4-86a9-93c490f48358)\n\nYou can use a regular power bank as a power supply by connecting it to the expansion board. Make sure that the board jumper is in the right position (in the 5V position)  \nThis is the minimal device setup to do basic tests  \n\nThe motors with brushes and the board should be mounted on the VR headset with the help of additional printable plastic parts    \nThe latest assembly instructions can be found here:  \n- [Controller board basement assembly](docs/MC_CASE_ASSEMBLY.md)\n- [Motors mount assembly](docs/HEAD_MOUNT_ASSEMBLY.md)\n\n### Desktop application\nThe latets binary file can be downloaded from the [Releases](https://github.com/Mercuso/headpat-vr/releases) section\nAlternatively, you can build it locally. Download repository, install Python and execute the `build.bat` file. The executable file will be located in the `dist` folder\n\n### Preparing VRChat avatar\nFollow the instructions described in the Patstrap project documentation's VRChat section:  \nhttps://github.com/danielfvm/Patstrap?tab=readme-ov-file#vrchat\n\n### Settings in VRChat\n[Enable OSC support in VRChat](https://docs.vrchat.com/docs/osc-overview#enabling-it)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmercuso%2Fheadpat-vr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmercuso%2Fheadpat-vr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmercuso%2Fheadpat-vr/lists"}