Skip to content

yo-WASSUP/Good-GYM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

35 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Good-GYM: AI Fitness Assistant ๐Ÿ’ช

Good-GYM Logo

GitHub stars GitHub forks GitHub license

AI Fitness Assistant

Download on the App Store

English | ไธญๆ–‡

LinkedIn introduction

๐Ÿ†• Changelog

  • 2025-06-07: Major update! Dropped YOLO models and all GPU support. Now uses only RTMPose for pose detection, and runs on CPU only. Simpler, more compatible, and easier to use.
  • 2025-06-12๏ผšOptimize exercise_counters.py for counting accuracy, code structure optimization
  • 2025-11-14: Reverted asynchronous pose detection due to accuracy issues, restored synchronous pose detection. Fixed crash when switching from statistics mode back to detection mode.
  • 2025-11-15: New exercise database feature! All exercise configurations are now managed in data/exercises.json file. You can easily add, modify, or remove exercise types without modifying code.
  • 2026-03-04: Add optional GPU acceleration support, now supports NVIDIA GPUs
  • 2026-03-28: Add mobile application support, now supports IOS

๐Ÿ”ฎ Future Development

  • Multi-language interface
  • Improve pose detection accuracy
  • Add support for more exercise types
  • Add custom exercise types template
  • Recognizing Motion Accuracy
  • Mobile Application Support
  • Motion Error Correction Indication
  • Add voice feedback

๐Ÿ“ฑ Try Good-GYM on iOS

Good-GYM iOS App Good-GYM App Store

Download on the App Store


ๆผ”็คบ

ๆผ”็คบ

๐ŸŒŸ Features

  • Real-time Exercise Counting - Automatically counts your repetitions
  • Multiple Exercise Support - Including squats, push-ups, sit-ups, bicep curls, and many more
  • Advanced Pose Detection - Powered by RTMPose for accurate tracking
  • CPU & GPU Support - Works on CPU by default, with optional GPU acceleration
  • Visual Feedback - Live skeleton visualization with angle measurements
  • Workout Statistics - Track your progress over time
  • User-friendly Interface - Clean PyQt5 GUI with intuitive controls
  • Works with any webcam - No special hardware required
  • Runs locally - Complete privacy

๐Ÿ“ฆ Direct Download

๐Ÿ“ฑ iOS App

Download on the App Store

๐Ÿ’ป Windows Desktop

๐Ÿ“ Usage Guide

๐ŸŽฏ Custom Exercise Types

All exercise types are now stored in the data/exercises.json file. You can easily add, modify, or remove exercise types without modifying code!

How to Add a New Exercise Type

  1. Keypoint Index Reference

    • The system uses COCO 17 keypoint format:
                     โ—‹ 0
                    /|\
             1 โ—     |     โ— 2
            3 โ—      |      โ— 4
                     |
           5 โ—โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ— 6
             |       |       |
             |       |       |
           7 โ—       |       โ— 8
             |       |       |
             |       |       |
           9 โ—       |       โ— 10
                     |
          11 โ—โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ— 12
             |               |
             |               |
          13 โ—               โ— 14
             |               |
             |               |
          15 โ—               โ— 16
      
       Index โ”‚ Keypoint    Index โ”‚ Keypoint
       โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€  โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
         0   โ”‚ Nose          9  โ”‚ L.Wrist
         1   โ”‚ L.Eye        10  โ”‚ R.Wrist
         2   โ”‚ R.Eye        11  โ”‚ L.Hip
         3   โ”‚ L.Ear        12  โ”‚ R.Hip
         4   โ”‚ R.Ear        13  โ”‚ L.Knee
         5   โ”‚ L.Shoulder   14  โ”‚ R.Knee
         6   โ”‚ R.Shoulder   15  โ”‚ L.Ankle
         7   โ”‚ L.Elbow      16  โ”‚ R.Ankle
         8   โ”‚ R.Elbow
      
  2. Configuration Parameters

    • down_angle: Angle threshold when lowering (degrees)
    • up_angle: Angle threshold when raising (degrees)
    • keypoints.left: Left side three keypoint indices [pt1, pt2, pt3] for angle calculation
    • keypoints.right: Right side three keypoint indices [pt1, pt2, pt3] for angle calculation
    • is_leg_exercise: Whether it's a leg exercise (true/false), affects counting logic
    • angle_point: Keypoint indices [pt1, pt2, pt3] for displaying angle lines on video
  3. Example: Adding a New Exercise

    "my_custom_exercise": {
      "name_zh": "ๆˆ‘็š„่‡ชๅฎšไน‰่ฟๅŠจ",
      "name_en": "My Custom Exercise",
      "down_angle": 120,
      "up_angle": 170,
      "keypoints": {
        "left": [5, 7, 9],
        "right": [6, 8, 10]
      },
      "is_leg_exercise": false,
      "angle_point": [6, 8, 10]
    }
  4. Restart the Application

๐Ÿ“‹ Requirements

  • Python 3.9
  • Webcam
  • Windows/Mac/Linux: Works on CPU by default. Optional GPU acceleration available for source deployments.

๐Ÿš€ Environment Setup

Installation

  1. Clone and install

    git clone https://github.com/yo-WASSUP/Good-GYM.git
    cd Good-GYM
    
    # Create virtual environment
    python -m venv venv
    # Activate (Windows)
    .\venv\Scripts\activate
    # or (Mac/Linux)
    source venv/bin/activate
    
    # Install dependencies
    pip install -r requirements.txt
  2. Run the application

    python run.py

GPU Acceleration (Optional)

If you have an NVIDIA GPU, you can enable GPU-accelerated inference for better performance.

Prerequisites: NVIDIA GPU + NVIDIA Driver installed

Resource Usage:

  • CUDA runtime libraries require ~3 GB disk space
  • Models use only ~200 MB VRAM โ€” any NVIDIA GPU with 2GB+ VRAM will work
# 1. Replace onnxruntime with the GPU version
pip uninstall onnxruntime
pip install onnxruntime-gpu

# 2. Install CUDA runtime libraries via pip (no need to install CUDA Toolkit manually)
pip install nvidia-cudnn-cu12 nvidia-cublas-cu12 nvidia-cuda-runtime-cu12 nvidia-cufft-cu12 nvidia-curand-cu12 nvidia-cusolver-cu12 nvidia-cusparse-cu12 nvidia-cuda-nvrtc-cu12

The application will auto-detect GPU availability at startup. You can toggle GPU on/off via the "GPU Acceleration" switch in the control panel.

Note: The pre-packaged EXE only supports CPU mode. GPU acceleration is only available when running from source.

๐Ÿ–ผ๏ธ Screenshots

Desktop

Screenshot 1

Screenshot 2

Screenshot 3

Screenshot 4

Screenshot 5

iOS App

Training History Goals Settings App Store

๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Thanks to RTMPose open source pose detection model: https://github.com/Tau-J/rtmlib

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

โญ Star History

Star History Chart

About

AI-powered fitness assistant for real-time pose estimation, exercise counting, and workout feedback.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Contributors

Languages