Common issues and solutions for Hand Gesture Control System.
Symptoms:
- Click "Start Camera" but nothing happens
- Black screen in video area
- No error message
Solutions:
-
Build First (Most Common)
npm run build npm run electron
Or use the shortcut:
npm run electron # This builds automatically -
Check Build Output
- Ensure
dist/folder exists - Check
dist/index.htmlis present - Verify
dist/bundle.jsexists
- Ensure
-
Check Console Errors
- Press F12 in Electron window
- Look for errors in Console tab
- Common errors:
- "Cannot find module" → Run build
- "MediaPipe failed" → Check internet connection
- "Camera permission denied" → Check Windows settings
-
Camera Permissions (Windows)
- Open Windows Settings
- Go to Privacy → Camera
- Enable "Allow apps to access your camera"
- Enable for desktop apps
-
Close Other Apps
- Close Zoom, Skype, Teams, etc.
- Only one app can use camera at a time
Symptoms:
ERROR:gpu_process_host.cc(991)] GPU process exited unexpectedly
Solution: Already fixed! The app disables GPU acceleration automatically.
If still occurs:
# Edit electron/main.js and ensure this line exists:
app.disableHardwareAcceleration();Solution:
npm install
npm run build
npm run electronCauses:
- Build not completed
- Wrong path in electron/main.js
- Missing dist folder
Solutions:
- Delete
dist/folder - Run
npm run build - Check for build errors
- Run
npm run electron
Solution:
- Click the camera icon in browser address bar
- Select "Always allow"
- Refresh page
Solution:
- Development: Use
npm start(localhost is allowed) - Production: Deploy with HTTPS
Solutions:
- Check internet connection
- Try offline mode:
- Download model manually
- Place in
src/models/ - Enable offline in config
Solutions:
-
Lighting
- Use bright, even lighting
- Avoid backlighting
- Natural daylight is best
-
Hand Position
- Keep hand 50-100cm from camera
- Ensure full hand is visible
- No gloves or coverings
-
Background
- Use plain background
- Avoid busy patterns
- Contrast with hand color
-
Adjust Thresholds Edit
src/js/config/gestureConfig.js:swipe: { velocityThreshold: 0.3, // Lower = more sensitive debounceMs: 200 // Lower = faster detection }
Solutions:
-
Increase Thresholds
swipe: { velocityThreshold: 0.7, // Higher = less sensitive debounceMs: 500 // Higher = slower detection }
-
Enable More Smoothing
swipe: { smoothingWindow: 10 // Higher = smoother }
Swipe Not Detected:
- Move hand faster
- Move at least 10cm
- Keep movement straight
Pinch Not Detected:
- Bring fingers closer together
- Hold pinch firmly
- Check
distanceThresholdin config
Static Gesture Not Detected:
- Hold gesture longer (1-2 seconds)
- Ensure correct finger positions
- Check
holdDurationin config
Solutions:
-
Reduce Resolution Edit
src/js/config/systemConfig.js:camera: { resolution: { width: 640, height: 480 } // Lower resolution }
-
Disable Visualization
- Click "Toggle Visualization" button
- Or edit config:
visualization: { enabled: false }
-
Close Other Apps
- Close browser tabs
- Close resource-intensive apps
- Check Task Manager
-
Reduce Max Hands
mediapipe: { maxNumHands: 1 // Detect only 1 hand }
Solutions:
- Lower FPS target
- Reduce camera resolution
- Disable visualization
- Use only needed gestures
Solutions:
# Clear cache
npm cache clean --force
# Delete node_modules
rmdir /s /q node_modules # Windows
rm -rf node_modules # Mac/Linux
# Reinstall
npm installSolutions:
- Check Node.js version (16+ required)
- Update npm:
npm install -g npm@latest - Check for syntax errors in code
- Delete
dist/and rebuild
Solutions:
# Install electron-builder globally
npm install -g electron-builder
# Try building again
npm run build:winIssue: Antivirus Blocking
- Add exception for the app
- Temporarily disable antivirus
- Run as administrator
Issue: Camera Not Found
- Check Device Manager
- Update camera drivers
- Test camera in Camera app
Issue: Camera Permission
- System Preferences → Security & Privacy → Camera
- Enable for Terminal/Electron
Issue: Code Signing
- Required for distribution
- Use developer certificate
Issue: Camera Not Working
# Check camera device
ls /dev/video*
# Test with v4l2
v4l2-ctl --list-devices
# Grant permissions
sudo usermod -a -G video $USER-
Check Console
- Press F12
- Look for errors
- Copy error messages
-
Check Logs
- Look in gesture log
- Check for error messages
- Note when issue occurs
-
Gather Information
- OS version
- Browser/Electron version
- Camera model
- Error messages
- Steps to reproduce
-
Get Help
- Read all documentation
- Search existing issues
- Open new GitHub issue with details
- README.md - Main documentation
- QUICKSTART.md - Quick setup
- ELECTRON_GUIDE.md - Electron details
- GESTURE_GUIDE.md - Gesture instructions
- DEVELOPER_GUIDE.md - Development guide
- Always build before running Electron
- Use good lighting for best results
- Start with simple gestures (open palm)
- Adjust thresholds to your preference
- Check console for helpful error messages
- Test in web mode first (easier to debug)
Quick Fix Checklist:
- Run
npm install - Run
npm run build - Check camera permissions
- Close other camera apps
- Use good lighting
- Check console for errors
- Try web mode first (
npm start)