How chiranat/jubjeeb works
Jubjeeb is a Windows hand-gesture and Thai voice control application. Its primary workflow captures webcam frames, detects and smooths hand landmarks, recognizes gestures, then translates them into mouse, keyboard, media, and desktop actions. A separate GUI manages camera and microphone controls and settings; voice recognition can also open or close the camera. The README documents dataset collection and model training as preparation for gesture inference. Several UI and training relationships are documented or indexed rather than shown in full source excerpts, so uncertain runtime links are omitted.
Main entry points: app.py GUI application · system.py GUI system controller · hand_tracking.py Hand tracking · main.py CLI application
Components 22
Control runtime
- CLI application
src/main.py - Mouse and actions
src/mouse_controller.py - Runtime configuration
config.py
Gesture processing
- Hand tracking
src/hand_tracking.py - Landmark smoothing
src/kalman_filter.py - Gesture recognition
src/gesture_recognizer.py
Desktop interface
- GUI application
src/gui/app.py - GUI system controller
src/gui/system.py - Camera handling
src/gui/camera.py - Camera utilities
src/gui/camera_utils.py - Settings window
src/gui/windows/settings.py - Gesture manual
src/gui/windows/manual.py - Settings manager
src/gui/settings_manager.py - User settings file
Voice commands
- Voice controller
src/voice_controller.py
Model preparation
- Gesture data collection
utils/data_collection.py - Model training
utils/train_model.py
Other components
- User
- Webcam
- Microphone
- Windows controls
- Google speech recognition
Connections 29
- User → CLI application: starts
README.md - Webcam → CLI application: provides frames
README.md - CLI application → Hand tracking: processes frames
README.md - Hand tracking → Landmark smoothing: smooths landmarks
README.md - Hand tracking → Gesture recognition: supplies landmarks
README.md - Gesture recognition → Mouse and actions: executes actions
README.md - Mouse and actions → Windows controls: controls
src/mouse_controller.py - CLI application → Runtime configuration: reads settings
src/main.py - User → GUI application: uses
src/gui/app.py - GUI application → GUI system controller: initializes
src/gui/app.py - GUI system controller → Hand tracking: creates
src/gui/system.py - GUI system controller → Mouse and actions: creates
src/gui/system.py - GUI system controller → Gesture recognition: creates
src/gui/system.py - GUI system controller → Voice controller: creates
src/gui/system.py - GUI application → Camera handling: imports
src/gui/app.py - GUI application → Settings window: opens
src/gui/app.py - GUI application → Gesture manual: opens
src/gui/app.py - Settings window → Camera utilities: uses
src/gui/windows/settings.py - Settings window → Settings manager: reads and writes
src/gui/windows/settings.py - GUI application → Settings manager: loads settings
src/gui/app.py - Settings manager → User settings file: reads and writes
src/gui/settings_manager.py - Gesture manual → Runtime configuration: displays gestures
src/gui/windows/manual.py - Microphone → Voice controller: provides audio
README.md - Voice controller → Google speech recognition: recognizes speech
src/voice_controller.py - Voice controller → GUI application: requests camera action
src/voice_controller.py - User → Gesture data collection: records gestures
README.md - Gesture data collection → Hand tracking: collects landmarks
utils/data_collection.py - User → Model training: trains model
README.md - Model training → Gesture recognition: produces inference model
README.md