xKabbe / ascendify

Ascendify is an advanced tool for analyzing bouldering movements using video pose detection. It extracts pose data, calculates movement metrics, and offers real-time feedback to enhance climbing performance. Features include data visualization, machine learning integration, and actionable insights.
MIT License
0 stars 0 forks source link

Static Badge

ShieldsIO Badge ShieldsIO Badge ShieldsIO Badge ShieldsIO Badge ShieldsIO Badge ShieldsIO Badge

ShieldsIO Badge ShieldsIO Badge ShieldsIO Badge ShieldsIO Badge ShieldsIO Badge

PyBoulder is an open-source tool designed for analyzing and improving bouldering techniques through video analysis. The project leverages computer vision and pose detection technologies to provide valuable insights into climbing movements. Whether you're a climber looking to refine your technique or a coach seeking to assess performance, PyBoulder offers an easy-to-use interface and detailed metrics to help you achieve your goals.

Features

Getting Started

Prerequisites

Before you begin, ensure you have the following prerequisites installed:

Installation

  1. Clone the repository to your local machine:
    git clone https://github.com/xKabbe/pyboulder.git
  2. Set up and activate a virtual environment:

    # On linux
    python -m venv path/to/venv
    source path/to/venv/bin/activate
    
    # On windows
    python -m venv path/to/venv
    source path/to/venv/Scripts/activate
  3. Install project in editable mode:
    pip install -e .
  4. Install the production required dependencies:
    pip install -r requirements.txt
  5. Install the testing required dependencies:
    pip install -r requirements-dev.txt

Usage

Running Application

To run PyBoulder, use the following command:

pyboulder

This will start the application and allow you to load and analyze climbing videos.

Running Tests

PyBoulder uses pytest for testing. Here are some common commands:

Command Description
pytest Run all tests in the current directory and its subdirectories.
pytest test_module.py Run tests in a specific module.
pytest test_module.py::test_fn Run a specific test function in a module.
pytest -k expression Run tests that match the given keyword expression.
pytest -m marker Run tests that have a specific marker.
pytest --headless Run tests in headless mode (doesn't show browser window).
pytest --fixtures Show available fixtures.
pytest --cov=your_module Measure code coverage for your module. Requires the pytest-cov plugin.
pytest --junitxml=result.xml Generate JUnit-style XML reports.
pytest --html=report.html Generate an interactive HTML report. Requires the pytest-html plugin.
pytest --durations=n Show n slowest test durations.
pytest --markers Show available markers.
pytest -h Display help message and exit.

MkDocs Documentation

PyBoulder uses MkDocs for documentation. Here are some common commands:

Command Description
mkdocs serve This command will start a local development server, and you can access the documentation at http://127.0.0.1:8000/.
As you make changes to the documentation files, MkDocs will automatically update the rendered content in your browser
mkdocs build This command will build the documentation site
mkdocs -h This command will print the help message and exit

License

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

Contact

For any questions or support, please reach out to Steven "Kabbe" Karbjinsky via Email.