{"id":50749956,"url":"https://github.com/tysoncung/reactions-app","last_synced_at":"2026-06-11T00:31:02.683Z","repository":{"id":325892728,"uuid":"1102760892","full_name":"tysoncung/reactions-app","owner":"tysoncung","description":"Gesture-controlled video effects for Windows - Add animated reactions to your video calls","archived":false,"fork":false,"pushed_at":"2025-11-24T05:08:29.000Z","size":75,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-24T05:19:28.797Z","etag":null,"topics":["computer-vision","gesture-recognition","mediapipe","microsoft-teams","opencv","pyqt5","video-effects","virtual-camera","windows","zoom"],"latest_commit_sha":null,"homepage":null,"language":"Python","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/tysoncung.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2025-11-24T02:20:54.000Z","updated_at":"2025-11-24T05:08:25.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/tysoncung/reactions-app","commit_stats":null,"previous_names":["tysoncung/reactions-app"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/tysoncung/reactions-app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tysoncung%2Freactions-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tysoncung%2Freactions-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tysoncung%2Freactions-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tysoncung%2Freactions-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tysoncung","download_url":"https://codeload.github.com/tysoncung/reactions-app/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tysoncung%2Freactions-app/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34177445,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-10T02:00:07.152Z","response_time":89,"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":["computer-vision","gesture-recognition","mediapipe","microsoft-teams","opencv","pyqt5","video-effects","virtual-camera","windows","zoom"],"created_at":"2026-06-11T00:31:01.491Z","updated_at":"2026-06-11T00:31:02.674Z","avatar_url":"https://github.com/tysoncung.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🎭 Camera Reactions for Windows\n\n\u003e Bring Apple's Camera Reactions feature to Windows! Add gesture-controlled animated effects to your video calls with just your hands.\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)\n[![Platform: Windows](https://img.shields.io/badge/platform-Windows-blue.svg)](https://www.microsoft.com/windows)\n[![Build Status](https://img.shields.io/badge/build-passing-brightgreen.svg)]()\n\n![Demo](assets/demo.gif)\n\n## ✨ Features\n\n- **Real-time Hand Gesture Recognition** - Detects 6+ hand gestures using Google MediaPipe\n- **Animated Visual Effects** - Beautiful 3D-style animations that overlay your video feed\n- **Virtual Camera Integration** - Works seamlessly with Zoom, Teams, Meet, Discord, and more\n- **Low Latency Performance** - Optimized for 30+ FPS even on modest hardware\n- **Customizable Settings** - Enable/disable individual gestures, adjust sensitivity, preview effects\n- **Privacy Focused** - All processing happens locally on your device\n\n## 🎯 Supported Gestures\n\n| Gesture | Effect | Description |\n|---------|--------|-------------|\n| 👍 Thumbs Up | Thumbs up animation | Single thumbs up gesture |\n| 👎 Thumbs Down | Thumbs down animation | Single thumbs down gesture |\n| 👍👍 Two Thumbs Up | Confetti \u0026 Fireworks | Both hands showing thumbs up |\n| ✌️ Peace Sign | Floating Balloons | Two fingers up (V sign) |\n| 💗 Heart Hands | Hearts animation | Hands forming heart shape |\n| ✊ Raised Fist | Laser Beams | Closed fist raised up |\n\n## 📋 Requirements\n\n### System Requirements\n- **OS**: Windows 10/11 (64-bit)\n- **RAM**: 4GB minimum, 8GB recommended\n- **CPU**: Intel i5 or equivalent (supports AVX)\n- **Webcam**: Any USB or built-in webcam (720p minimum)\n- **GPU**: Optional - CUDA-capable GPU for better performance\n\n### Software Dependencies\n- Python 3.8 or higher\n- DirectShow-compatible virtual camera driver\n\n## 🚀 Quick Start\n\n### Installation\n\n#### Option 1: Installer (Recommended)\n1. Download the latest installer from [Releases](https://github.com/yourusername/reactions-app/releases)\n2. Run `CameraReactions-Setup.exe`\n3. Follow the installation wizard\n4. Launch from Start Menu\n\n#### Option 2: From Source\n```bash\n# Clone the repository\ngit clone https://github.com/yourusername/reactions-app.git\ncd reactions-app\n\n# Create virtual environment\npython -m venv venv\nvenv\\Scripts\\activate\n\n# Install dependencies\npip install -r requirements.txt\n\n# Install virtual camera driver\npython scripts/install_virtual_camera.py\n\n# Run the application\npython src/main.py\n```\n\n### First Run Setup\n\n1. **Start the Application**\n   - Launch \"Camera Reactions\" from Start Menu or run `python src/main.py`\n\n2. **Select Your Webcam**\n   - Choose your physical webcam from the dropdown\n\n3. **Configure Video Apps**\n   - In Zoom/Teams/Meet, select \"Camera Reactions Virtual Camera\" as your camera source\n\n4. **Test Gestures**\n   - Use the preview window to test each gesture\n   - Adjust sensitivity if needed (Settings → Gesture Sensitivity)\n\n5. **Start Your Call**\n   - Perform gestures in front of your camera to trigger effects!\n\n## 📖 Usage Guide\n\n### Basic Usage\n\n1. **Launch the app** before starting your video call\n2. **Select the virtual camera** in your video conferencing app:\n   - **Zoom**: Settings → Video → Camera → \"Camera Reactions Virtual Camera\"\n   - **Teams**: Settings → Devices → Camera → \"Camera Reactions Virtual Camera\"\n   - **Google Meet**: Settings → Video → Camera → \"Camera Reactions Virtual Camera\"\n   - **Discord**: User Settings → Voice \u0026 Video → Camera → \"Camera Reactions Virtual Camera\"\n\n3. **Perform gestures** in front of your webcam to trigger effects\n\n### Configuration\n\nAccess settings via the system tray icon or main window:\n\n- **Gesture Sensitivity**: Adjust detection threshold (50-95% confidence)\n- **Effect Duration**: How long animations play (1-5 seconds)\n- **Enable/Disable Gestures**: Toggle individual gestures on/off\n- **Camera Settings**: Resolution, FPS, brightness/contrast\n- **Hotkeys**: Optional keyboard shortcuts to trigger effects manually\n\n### Tips for Best Results\n\n- **Lighting**: Ensure good, even lighting on your hands\n- **Distance**: Keep hands 1-2 feet from camera\n- **Background**: Solid backgrounds work best for hand detection\n- **Hold Gesture**: Hold each gesture for 1-2 seconds for reliable detection\n- **Single Person**: Works best with one person in frame\n\n## 🏗️ Architecture\n\n```\n┌─────────────────────────────────────────────────────────┐\n│                    User Interface                       │\n│              (Settings, Preview, Tray Icon)             │\n└────────────────────┬────────────────────────────────────┘\n                     │\n┌────────────────────▼────────────────────────────────────┐\n│                Main Application                         │\n│         (Orchestration \u0026 State Management)              │\n└─┬──────────────┬──────────────┬────────────────────────┘\n  │              │              │\n  ▼              ▼              ▼\n┌─────────┐  ┌─────────┐  ┌──────────────┐\n│ Webcam  │  │ Gesture │  │  Animation   │\n│ Capture │─▶│Detector │─▶│   Engine     │\n│(OpenCV) │  │(MediaP.)│  │ (OpenGL/CV)  │\n└─────────┘  └─────────┘  └──────┬───────┘\n                                  │\n                                  ▼\n                         ┌────────────────┐\n                         │Virtual Camera  │\n                         │   Output       │\n                         │  (DirectShow)  │\n                         └────────────────┘\n```\n\n### Key Components\n\n- **Gesture Detector** (`src/gesture_detector.py`) - MediaPipe-based hand tracking and gesture classification\n- **Animation Engine** (`src/animation_engine.py`) - Renders effects with OpenGL/OpenCV\n- **Virtual Camera** (`src/virtual_camera.py`) - DirectShow virtual camera driver interface\n- **UI Manager** (`src/ui/main_window.py`) - PyQt5-based user interface\n- **Config Manager** (`src/config.py`) - Settings persistence and management\n\n## 🧪 Development\n\n### Project Structure\n\n```\nreactions-app/\n├── src/\n│   ├── main.py                 # Application entry point\n│   ├── gesture_detector.py     # Hand gesture recognition\n│   ├── animation_engine.py     # Effect rendering\n│   ├── virtual_camera.py       # Virtual camera integration\n│   ├── config.py               # Configuration management\n│   ├── ui/\n│   │   ├── main_window.py      # Main UI window\n│   │   ├── settings_dialog.py  # Settings interface\n│   │   └── preview_widget.py   # Camera preview\n│   └── effects/\n│       ├── hearts.py           # Heart animation\n│       ├── confetti.py         # Confetti effect\n│       ├── balloons.py         # Balloon effect\n│       ├── thumbs.py           # Thumbs up/down\n│       └── lasers.py           # Laser beam effect\n├── assets/\n│   ├── icons/                  # Application icons\n│   ├── animations/             # Animation sprites/models\n│   └── sounds/                 # Optional sound effects\n├── tests/\n│   ├── test_gesture_detector.py\n│   ├── test_animation_engine.py\n│   └── test_virtual_camera.py\n├── docs/\n│   ├── API.md                  # API documentation\n│   ├── ARCHITECTURE.md         # Architecture details\n│   └── GESTURES.md             # Gesture detection guide\n├── scripts/\n│   ├── install_virtual_camera.py\n│   ├── build_installer.py\n│   └── benchmark.py\n├── .github/\n│   ├── workflows/\n│   │   ├── build.yml\n│   │   └── test.yml\n│   ├── ISSUE_TEMPLATE/\n│   └── PULL_REQUEST_TEMPLATE.md\n├── requirements.txt\n├── setup.py\n├── CONTRIBUTING.md\n├── CHANGELOG.md\n└── LICENSE\n```\n\n### Running Tests\n\n```bash\n# Run all tests\npytest tests/\n\n# Run with coverage\npytest --cov=src tests/\n\n# Run specific test\npytest tests/test_gesture_detector.py\n```\n\n### Building from Source\n\n```bash\n# Install development dependencies\npip install -r requirements-dev.txt\n\n# Run linting\nflake8 src/\nblack src/\n\n# Type checking\nmypy src/\n\n# Build installer\npython scripts/build_installer.py\n```\n\n## 🤝 Contributing\n\nWe welcome contributions! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.\n\n### Quick Contribution Guide\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Make your changes\n4. Run tests (`pytest tests/`)\n5. Commit your changes (`git commit -m 'Add amazing feature'`)\n6. Push to branch (`git push origin feature/amazing-feature`)\n7. Open a Pull Request\n\n## 📝 License\n\nThis project is licensed under the MIT License - see [LICENSE](LICENSE) file for details.\n\n## 🙏 Acknowledgments\n\n- [Google MediaPipe](https://google.github.io/mediapipe/) - Hand tracking and gesture recognition\n- [OpenCV](https://opencv.org/) - Computer vision library\n- [pyvirtualcam](https://github.com/letmaik/pyvirtualcam) - Virtual camera driver\n- [PyQt5](https://www.riverbankcomputing.com/software/pyqt/) - User interface framework\n- Inspired by [Apple's Camera Reactions](https://support.apple.com/en-au/105117#reactions)\n\n## 🐛 Known Issues\n\n- Virtual camera may not appear immediately in some apps (restart app to refresh)\n- High CPU usage on systems without GPU acceleration (enable GPU in settings)\n- Occasional false positives with complex hand backgrounds (improve lighting)\n\nSee [Issues](https://github.com/yourusername/reactions-app/issues) for full list and workarounds.\n\n## 🗺️ Roadmap\n\n- [ ] Additional gesture support (rock/paper/scissors, finger counting)\n- [ ] Custom animation upload\n- [ ] Multi-language support\n- [ ] macOS and Linux ports\n- [ ] Mobile app integration\n- [ ] AI-based gesture customization\n- [ ] Performance profiling dashboard\n\n## 📞 Support\n\n- **Documentation**: [docs/](docs/)\n- **Issues**: [GitHub Issues](https://github.com/yourusername/reactions-app/issues)\n- **Discussions**: [GitHub Discussions](https://github.com/yourusername/reactions-app/discussions)\n- **Email**: support@reactions-app.com\n\n## ⭐ Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=yourusername/reactions-app\u0026type=Date)](https://star-history.com/#yourusername/reactions-app\u0026Date)\n\n---\n\nMade with ❤️ by the Camera Reactions Team\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftysoncung%2Freactions-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftysoncung%2Freactions-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftysoncung%2Freactions-app/lists"}