camera: index: 0 width: 1280 height: 720 mirror: true backend: auto model: path: models/gesture_recognizer.task num_hands: 2 min_hand_detection_confidence: 0.65 min_hand_presence_confidence: 0.65 min_tracking_confidence: 0.60 recognition: canned_score_threshold: 0.70 open_palm_score_threshold: 0.62 geometry_confirmed_score_threshold: 0.60 canned_margin_threshold: 0.12 min_hand_span: 0.12 action_hold_ms: 600 min_action_frames: 8 arm_hold_ms: 1000 two_hand_hold_ms: 1000 slot_hold_ms: 500 confirm_hold_ms: 700 hand_loss_stop_ms: 120 armed_idle_timeout_ms: 3000 max_continuous_motion_ms: 1500 neutral_release_ms: 350 mapping: point_up: SEAT_UP point_down: SEAT_DOWN point_right: SEAT_FORWARD point_left: SEAT_BACKWARD thumb_up: BACKREST_FORWARD thumb_down: BACKREST_BACKWARD gun_up: LEGREST_EXTEND gun_down: LEGREST_RETRACT # Compatibility fallback when the camera cannot hold a stable finger-gun pose. victory_right: LEGREST_EXTEND victory_left: LEGREST_RETRACT seat: initial_positions: horizontal: 50.0 height: 50.0 legrest: 0.0 backrest: 50.0 manual_rate_percent_per_second: 18.0 mode_rate_percent_per_second: 12.0 storage: modes_file: data/modes.json events_file: data/events.jsonl gesture_mappings_file: data/gesture_mappings.json ui: window_name: Seat Gesture Control draw_landmarks: true show_fps: true validation_width: 1600 validation_height: 900 fullscreen: false