kinemotion 0.12.3__tar.gz → 0.14.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of kinemotion might be problematic. Click here for more details.

Files changed (84) hide show
  1. kinemotion-0.14.0/.github/workflows/docs.yml +65 -0
  2. {kinemotion-0.12.3 → kinemotion-0.14.0}/.gitignore +3 -0
  3. kinemotion-0.14.0/.readthedocs.yml +29 -0
  4. {kinemotion-0.12.3 → kinemotion-0.14.0}/CHANGELOG.md +24 -0
  5. {kinemotion-0.12.3 → kinemotion-0.14.0}/CLAUDE.md +41 -2
  6. {kinemotion-0.12.3 → kinemotion-0.14.0}/PKG-INFO +2 -2
  7. {kinemotion-0.12.3 → kinemotion-0.14.0}/README.md +1 -1
  8. kinemotion-0.14.0/docs/README.md +103 -0
  9. kinemotion-0.14.0/docs/api/cmj.md +87 -0
  10. kinemotion-0.14.0/docs/api/core.md +81 -0
  11. kinemotion-0.14.0/docs/api/dropjump.md +81 -0
  12. kinemotion-0.14.0/docs/api/overview.md +73 -0
  13. kinemotion-0.14.0/docs/guides/camera-setup.md +966 -0
  14. kinemotion-0.14.0/docs/index.md +54 -0
  15. kinemotion-0.14.0/docs/reference/pose-systems.md +257 -0
  16. kinemotion-0.14.0/docs/research/sports-biomechanics-pose-estimation.md +1028 -0
  17. kinemotion-0.14.0/docs/translations/es/camera-setup.md +966 -0
  18. kinemotion-0.14.0/mkdocs.yml +99 -0
  19. {kinemotion-0.12.3 → kinemotion-0.14.0}/pyproject.toml +4 -1
  20. {kinemotion-0.12.3 → kinemotion-0.14.0}/uv.lock +253 -1
  21. kinemotion-0.12.3/docs/CAMERA_SETUP.md +0 -440
  22. kinemotion-0.12.3/docs/CAMERA_SETUP_ES.md +0 -440
  23. {kinemotion-0.12.3 → kinemotion-0.14.0}/.dockerignore +0 -0
  24. {kinemotion-0.12.3 → kinemotion-0.14.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  25. {kinemotion-0.12.3 → kinemotion-0.14.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  26. {kinemotion-0.12.3 → kinemotion-0.14.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  27. {kinemotion-0.12.3 → kinemotion-0.14.0}/.github/pull_request_template.md +0 -0
  28. {kinemotion-0.12.3 → kinemotion-0.14.0}/.github/workflows/release.yml +0 -0
  29. {kinemotion-0.12.3 → kinemotion-0.14.0}/.pre-commit-config.yaml +0 -0
  30. {kinemotion-0.12.3 → kinemotion-0.14.0}/.tool-versions +0 -0
  31. {kinemotion-0.12.3 → kinemotion-0.14.0}/CODE_OF_CONDUCT.md +0 -0
  32. {kinemotion-0.12.3 → kinemotion-0.14.0}/CONTRIBUTING.md +0 -0
  33. {kinemotion-0.12.3 → kinemotion-0.14.0}/Dockerfile +0 -0
  34. {kinemotion-0.12.3 → kinemotion-0.14.0}/GEMINI.md +0 -0
  35. {kinemotion-0.12.3 → kinemotion-0.14.0}/LICENSE +0 -0
  36. {kinemotion-0.12.3 → kinemotion-0.14.0}/SECURITY.md +0 -0
  37. /kinemotion-0.12.3/docs/ERRORS_FINDINGS.md → /kinemotion-0.14.0/docs/development/errors-findings.md +0 -0
  38. /kinemotion-0.12.3/docs/VALIDATION_PLAN.md → /kinemotion-0.14.0/docs/development/validation-plan.md +0 -0
  39. /kinemotion-0.12.3/docs/BULK_PROCESSING.md → /kinemotion-0.14.0/docs/guides/bulk-processing.md +0 -0
  40. /kinemotion-0.12.3/docs/CMJ_GUIDE.md → /kinemotion-0.14.0/docs/guides/cmj-guide.md +0 -0
  41. /kinemotion-0.12.3/docs/PARAMETERS.md → /kinemotion-0.14.0/docs/reference/parameters.md +0 -0
  42. /kinemotion-0.12.3/docs/FRAMERATE.md → /kinemotion-0.14.0/docs/technical/framerate.md +0 -0
  43. /kinemotion-0.12.3/docs/IMU_METADATA_PRESERVATION.md → /kinemotion-0.14.0/docs/technical/imu-metadata.md +0 -0
  44. /kinemotion-0.12.3/docs/REAL_TIME_ANALYSIS.md → /kinemotion-0.14.0/docs/technical/real-time-analysis.md +0 -0
  45. /kinemotion-0.12.3/docs/TRIPLE_EXTENSION.md → /kinemotion-0.14.0/docs/technical/triple-extension.md +0 -0
  46. {kinemotion-0.12.3 → kinemotion-0.14.0}/examples/bulk/README.md +0 -0
  47. {kinemotion-0.12.3 → kinemotion-0.14.0}/examples/bulk/bulk_processing.py +0 -0
  48. {kinemotion-0.12.3 → kinemotion-0.14.0}/examples/bulk/simple_example.py +0 -0
  49. {kinemotion-0.12.3 → kinemotion-0.14.0}/examples/programmatic_usage.py +0 -0
  50. {kinemotion-0.12.3 → kinemotion-0.14.0}/samples/cmjs/README.md +0 -0
  51. {kinemotion-0.12.3 → kinemotion-0.14.0}/src/kinemotion/__init__.py +0 -0
  52. {kinemotion-0.12.3 → kinemotion-0.14.0}/src/kinemotion/api.py +0 -0
  53. {kinemotion-0.12.3 → kinemotion-0.14.0}/src/kinemotion/cli.py +0 -0
  54. {kinemotion-0.12.3 → kinemotion-0.14.0}/src/kinemotion/cmj/__init__.py +0 -0
  55. {kinemotion-0.12.3 → kinemotion-0.14.0}/src/kinemotion/cmj/analysis.py +0 -0
  56. {kinemotion-0.12.3 → kinemotion-0.14.0}/src/kinemotion/cmj/cli.py +0 -0
  57. {kinemotion-0.12.3 → kinemotion-0.14.0}/src/kinemotion/cmj/debug_overlay.py +0 -0
  58. {kinemotion-0.12.3 → kinemotion-0.14.0}/src/kinemotion/cmj/joint_angles.py +0 -0
  59. {kinemotion-0.12.3 → kinemotion-0.14.0}/src/kinemotion/cmj/kinematics.py +0 -0
  60. {kinemotion-0.12.3 → kinemotion-0.14.0}/src/kinemotion/core/__init__.py +0 -0
  61. {kinemotion-0.12.3 → kinemotion-0.14.0}/src/kinemotion/core/auto_tuning.py +0 -0
  62. {kinemotion-0.12.3 → kinemotion-0.14.0}/src/kinemotion/core/cli_utils.py +0 -0
  63. {kinemotion-0.12.3 → kinemotion-0.14.0}/src/kinemotion/core/debug_overlay_utils.py +0 -0
  64. {kinemotion-0.12.3 → kinemotion-0.14.0}/src/kinemotion/core/filtering.py +0 -0
  65. {kinemotion-0.12.3 → kinemotion-0.14.0}/src/kinemotion/core/pose.py +0 -0
  66. {kinemotion-0.12.3 → kinemotion-0.14.0}/src/kinemotion/core/smoothing.py +0 -0
  67. {kinemotion-0.12.3 → kinemotion-0.14.0}/src/kinemotion/core/video_io.py +0 -0
  68. {kinemotion-0.12.3 → kinemotion-0.14.0}/src/kinemotion/dropjump/__init__.py +0 -0
  69. {kinemotion-0.12.3 → kinemotion-0.14.0}/src/kinemotion/dropjump/analysis.py +0 -0
  70. {kinemotion-0.12.3 → kinemotion-0.14.0}/src/kinemotion/dropjump/cli.py +0 -0
  71. {kinemotion-0.12.3 → kinemotion-0.14.0}/src/kinemotion/dropjump/debug_overlay.py +0 -0
  72. {kinemotion-0.12.3 → kinemotion-0.14.0}/src/kinemotion/dropjump/kinematics.py +0 -0
  73. {kinemotion-0.12.3 → kinemotion-0.14.0}/src/kinemotion/py.typed +0 -0
  74. {kinemotion-0.12.3 → kinemotion-0.14.0}/tests/__init__.py +0 -0
  75. {kinemotion-0.12.3 → kinemotion-0.14.0}/tests/test_adaptive_threshold.py +0 -0
  76. {kinemotion-0.12.3 → kinemotion-0.14.0}/tests/test_api.py +0 -0
  77. {kinemotion-0.12.3 → kinemotion-0.14.0}/tests/test_aspect_ratio.py +0 -0
  78. {kinemotion-0.12.3 → kinemotion-0.14.0}/tests/test_cmj_analysis.py +0 -0
  79. {kinemotion-0.12.3 → kinemotion-0.14.0}/tests/test_cmj_kinematics.py +0 -0
  80. {kinemotion-0.12.3 → kinemotion-0.14.0}/tests/test_com_estimation.py +0 -0
  81. {kinemotion-0.12.3 → kinemotion-0.14.0}/tests/test_contact_detection.py +0 -0
  82. {kinemotion-0.12.3 → kinemotion-0.14.0}/tests/test_filtering.py +0 -0
  83. {kinemotion-0.12.3 → kinemotion-0.14.0}/tests/test_kinematics.py +0 -0
  84. {kinemotion-0.12.3 → kinemotion-0.14.0}/tests/test_polyorder.py +0 -0
@@ -0,0 +1,65 @@
1
+ name: Documentation
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+ release:
9
+ types: [published]
10
+ workflow_dispatch:
11
+
12
+ jobs:
13
+ build:
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+
18
+ - name: Set up Python
19
+ uses: actions/setup-python@v5
20
+ with:
21
+ python-version: "3.12"
22
+
23
+ - name: Install uv
24
+ uses: astral-sh/setup-uv@v3
25
+ with:
26
+ enable-cache: true
27
+
28
+ - name: Install dependencies
29
+ run: |
30
+ uv sync --frozen
31
+
32
+ - name: Build documentation
33
+ run: |
34
+ uv run mkdocs build --strict
35
+
36
+ - name: Upload docs artifact
37
+ uses: actions/upload-artifact@v4
38
+ with:
39
+ name: docs
40
+ path: site/
41
+
42
+ deploy:
43
+ if: github.event_name == 'release'
44
+ needs: build
45
+ runs-on: ubuntu-latest
46
+ permissions:
47
+ contents: write
48
+ steps:
49
+ - uses: actions/checkout@v4
50
+
51
+ - name: Set up Python
52
+ uses: actions/setup-python@v5
53
+ with:
54
+ python-version: "3.12"
55
+
56
+ - name: Install uv
57
+ uses: astral-sh/setup-uv@v3
58
+
59
+ - name: Install dependencies
60
+ run: |
61
+ uv sync --frozen
62
+
63
+ - name: Deploy to GitHub Pages
64
+ run: |
65
+ uv run mkdocs gh-deploy --force
@@ -50,6 +50,9 @@ htmlcov/
50
50
  *.csv
51
51
  !pyproject.toml
52
52
 
53
+ # Documentation build output
54
+ site/
55
+
53
56
  # Logs
54
57
  *.log
55
58
  combined.log
@@ -0,0 +1,29 @@
1
+ # Read the Docs configuration file
2
+ # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
3
+
4
+ version: 2
5
+
6
+ # Build documentation with MkDocs
7
+ mkdocs:
8
+ configuration: mkdocs.yml
9
+ fail_on_warning: false
10
+
11
+ # Build environment
12
+ build:
13
+ os: ubuntu-22.04
14
+ tools:
15
+ python: "3.12"
16
+ jobs:
17
+ post_install:
18
+ # Install uv for faster dependency resolution
19
+ - pip install uv
20
+ # Install project dependencies including mkdocs
21
+ - uv sync --frozen
22
+
23
+ # Python configuration
24
+ python:
25
+ install:
26
+ - method: pip
27
+ path: .
28
+ extra_requirements:
29
+ - dev
@@ -7,6 +7,30 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  <!-- version list -->
9
9
 
10
+ ## v0.14.0 (2025-11-06)
11
+
12
+ ### Features
13
+
14
+ - **docs**: Add MkDocs documentation with auto-generated API reference
15
+ ([`cb5cd31`](https://github.com/feniix/kinemotion/commit/cb5cd313e43c6ba0c95c8e77b5651e7c86c73902))
16
+
17
+
18
+ ## v0.13.0 (2025-11-06)
19
+
20
+ ### Documentation
21
+
22
+ - Add sports biomechanics pose estimation research documentation
23
+ ([`745d273`](https://github.com/feniix/kinemotion/commit/745d273da294d49dd83f8fe488f5ede38189361a))
24
+
25
+ - Update camera setup guides for 45° angle and dual iPhone configuration
26
+ ([`373a858`](https://github.com/feniix/kinemotion/commit/373a858e81c74da6a85be8c00d7fc0c20ac42e85))
27
+
28
+ ### Features
29
+
30
+ - **docs**: Reorganize documentation and add 45° camera setup guidance
31
+ ([`0e8f992`](https://github.com/feniix/kinemotion/commit/0e8f992a7854a662b65574f589306bc13529cd5e))
32
+
33
+
10
34
  ## v0.12.3 (2025-11-06)
11
35
 
12
36
  ### Bug Fixes
@@ -224,8 +224,47 @@ metrics = process_cmj_video("video.mp4")
224
224
 
225
225
  ## Documentation
226
226
 
227
- **User guides:** docs/CMJ_GUIDE.md, docs/CAMERA_SETUP.md, docs/PARAMETERS.md
228
- **Technical:** docs/TRIPLE_EXTENSION.md, docs/REAL_TIME_ANALYSIS.md
227
+ **User guides:** docs/guides/cmj-guide.md, docs/guides/camera-setup.md, docs/guides/bulk-processing.md
228
+ **Reference:** docs/reference/parameters.md, docs/reference/pose-systems.md
229
+ **Technical:** docs/technical/triple-extension.md, docs/technical/real-time-analysis.md
230
+ **Research:** docs/research/sports-biomechanics-pose-estimation.md
231
+
232
+ **See [docs/README.md](docs/README.md) for complete documentation navigation.**
233
+
234
+ ### Documentation Organization
235
+
236
+ Documentation follows the [Diátaxis framework](https://diataxis.fr/) - a systematic approach that organizes content by user needs:
237
+
238
+ **Framework categories:**
239
+ 1. **Tutorials/Guides** (learning-oriented) → `docs/guides/`
240
+ - Goal: Help users accomplish specific tasks
241
+ - Examples: Camera setup, CMJ analysis, bulk processing
242
+ - Characteristic: Step-by-step instructions
243
+
244
+ 2. **Reference** (information-oriented) → `docs/reference/`
245
+ - Goal: Provide technical descriptions and specifications
246
+ - Examples: CLI parameters, pose system comparisons
247
+ - Characteristic: Structured for quick lookup
248
+
249
+ 3. **Explanation** (understanding-oriented) → `docs/technical/`, `docs/research/`
250
+ - Goal: Clarify and illuminate topics
251
+ - Examples: Triple extension biomechanics, pose estimation research
252
+ - Characteristic: Background knowledge, theory
253
+
254
+ 4. **Development** (contributor-oriented) → `docs/development/`
255
+ - Goal: Support project contributors
256
+ - Examples: Validation plans, error findings
257
+ - Characteristic: Internal processes, debugging
258
+
259
+ **Additional categories:**
260
+ - `docs/translations/` - Non-English documentation (e.g., Spanish)
261
+
262
+ **When adding new documentation:**
263
+ - **How-to content?** → `guides/`
264
+ - **Parameter specs or quick lookups?** → `reference/`
265
+ - **Implementation details or theory?** → `technical/` or `research/`
266
+ - **Testing or debugging?** → `development/`
267
+ - **Translation?** → `translations/{language-code}/`
229
268
 
230
269
  ## Commit Format
231
270
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kinemotion
3
- Version: 0.12.3
3
+ Version: 0.14.0
4
4
  Summary: Video-based kinematic analysis for athletic performance
5
5
  Project-URL: Homepage, https://github.com/feniix/kinemotion
6
6
  Project-URL: Repository, https://github.com/feniix/kinemotion
@@ -323,7 +323,7 @@ For advanced users who need manual control:
323
323
  - `--detection-confidence <float>`: Override MediaPipe detection confidence
324
324
  - `--tracking-confidence <float>`: Override MediaPipe tracking confidence
325
325
 
326
- > **📖 For detailed parameter explanations, see [docs/PARAMETERS.md](docs/PARAMETERS.md)**
326
+ > **📖 For detailed parameter explanations, see [docs/reference/parameters.md](docs/reference/parameters.md)**
327
327
  >
328
328
  > **Note:** Most users never need expert parameters - auto-tuning handles optimization automatically!
329
329
 
@@ -294,7 +294,7 @@ For advanced users who need manual control:
294
294
  - `--detection-confidence <float>`: Override MediaPipe detection confidence
295
295
  - `--tracking-confidence <float>`: Override MediaPipe tracking confidence
296
296
 
297
- > **📖 For detailed parameter explanations, see [docs/PARAMETERS.md](docs/PARAMETERS.md)**
297
+ > **📖 For detailed parameter explanations, see [docs/reference/parameters.md](docs/reference/parameters.md)**
298
298
  >
299
299
  > **Note:** Most users never need expert parameters - auto-tuning handles optimization automatically!
300
300
 
@@ -0,0 +1,103 @@
1
+ # Kinemotion Documentation
2
+
3
+ Welcome to the kinemotion documentation. This directory contains guides, technical documentation, and research for video-based kinematic analysis of athletic jumps.
4
+
5
+ ## Quick Navigation
6
+
7
+ ### 🚀 Getting Started
8
+
9
+ - **[Camera Setup Guide](guides/camera-setup.md)** - How to position your camera for optimal analysis
10
+ - Single iPhone at 45° (standard setup)
11
+ - Dual iPhone stereo (advanced setup)
12
+ - [Versión en Español](translations/es/camera-setup.md)
13
+
14
+ ### 📖 User Guides
15
+
16
+ - **[CMJ Guide](guides/cmj-guide.md)** - Counter-movement jump analysis guide
17
+ - **[Bulk Processing](guides/bulk-processing.md)** - Processing multiple videos efficiently
18
+ - **[Parameters Reference](reference/parameters.md)** - CLI parameters and options
19
+
20
+ ### 📊 Reference
21
+
22
+ - **[Pose Systems Quick Reference](reference/pose-systems.md)** - Comparison of pose estimation systems
23
+ - **[Parameters](reference/parameters.md)** - Complete CLI parameter documentation
24
+
25
+ ### 🔬 Research & Validation
26
+
27
+ - **[Sports Biomechanics Pose Estimation](research/sports-biomechanics-pose-estimation.md)** - Comprehensive research analysis on pose detection systems for sports biomechanics
28
+ - Pose2Sim validation (3-4° accuracy)
29
+ - Stereo MediaPipe validation (30.1mm RMSE)
30
+ - AthletePose3D dataset
31
+ - System comparisons and recommendations
32
+
33
+ ### ⚙️ Technical Documentation
34
+
35
+ - **[Triple Extension](technical/triple-extension.md)** - Biomechanics of triple extension in jumps
36
+ - **[Framerate](technical/framerate.md)** - Frame rate considerations for analysis
37
+ - **[IMU Metadata](technical/imu-metadata.md)** - Video metadata preservation
38
+ - **[Real-Time Analysis](technical/real-time-analysis.md)** - Future real-time processing capabilities
39
+
40
+ ### 👨‍💻 Development
41
+
42
+ - **[Validation Plan](development/validation-plan.md)** - Testing and validation strategy
43
+ - **[Errors & Findings](development/errors-findings.md)** - Known issues and debugging information
44
+
45
+ ### 🌍 Translations
46
+
47
+ - **[Español (Spanish)](translations/es/)**
48
+ - [Guía de Configuración de Cámara](translations/es/camera-setup.md)
49
+
50
+ ______________________________________________________________________
51
+
52
+ ## Documentation Organization
53
+
54
+ This documentation follows a structured organization:
55
+
56
+ - **guides/** - User-facing how-to guides for setup and usage
57
+ - **reference/** - Quick lookup reference materials
58
+ - **technical/** - Implementation details and technical explanations
59
+ - **research/** - Academic research and validation studies
60
+ - **development/** - Developer and contributor resources
61
+ - **translations/** - Non-English documentation
62
+
63
+ ## Quick Links by Audience
64
+
65
+ ### For Athletes & Coaches
66
+
67
+ Start here:
68
+
69
+ 1. [Camera Setup Guide](guides/camera-setup.md) - Critical first step
70
+ 1. [CMJ Guide](guides/cmj-guide.md) - Understanding CMJ analysis
71
+ 1. [Parameters Reference](reference/parameters.md) - Adjusting analysis settings
72
+
73
+ ### For Researchers
74
+
75
+ 1. [Sports Biomechanics Pose Estimation](research/sports-biomechanics-pose-estimation.md) - Research analysis
76
+ 1. [Pose Systems Quick Reference](reference/pose-systems.md) - System comparisons
77
+ 1. [Validation Plan](development/validation-plan.md) - Validation methodology
78
+
79
+ ### For Developers
80
+
81
+ 1. [Triple Extension](technical/triple-extension.md) - Biomechanics implementation
82
+ 1. [IMU Metadata](technical/imu-metadata.md) - Video processing details
83
+ 1. [Validation Plan](development/validation-plan.md) - Testing strategy
84
+ 1. Main [CLAUDE.md](../CLAUDE.md) - Complete project documentation
85
+
86
+ ______________________________________________________________________
87
+
88
+ ## Contributing to Documentation
89
+
90
+ When adding new documentation:
91
+
92
+ - **User guides** → `guides/` (how-to content)
93
+ - **Reference materials** → `reference/` (quick lookups, parameters, specs)
94
+ - **Technical details** → `technical/` (implementation, algorithms, biomechanics)
95
+ - **Research** → `research/` (validation studies, academic content)
96
+ - **Development** → `development/` (testing, debugging, contributor info)
97
+ - **Translations** → `translations/{language-code}/`
98
+
99
+ Ensure cross-references use relative paths and follow conventional commits format when committing changes.
100
+
101
+ ______________________________________________________________________
102
+
103
+ **Last Updated:** November 6, 2025
@@ -0,0 +1,87 @@
1
+ # CMJ API
2
+
3
+ The CMJ API provides functions for analyzing counter movement jump videos and extracting kinematic metrics including triple extension analysis.
4
+
5
+ ## Quick Example
6
+
7
+ ```python
8
+ from kinemotion import process_cmj_video
9
+
10
+ metrics = process_cmj_video(
11
+ video_path="cmj.mp4",
12
+ output_path="debug.mp4", # optional
13
+ smoothing=True
14
+ )
15
+
16
+ print(f"Jump height: {metrics.jump_height:.2f}m")
17
+ print(f"Flight time: {metrics.flight_time:.3f}s")
18
+ print(f"Countermovement depth: {metrics.countermovement_depth:.3f}m")
19
+ print(f"Triple extension: {metrics.triple_extension_percentage:.1f}%")
20
+ ```
21
+
22
+ ## Main Functions
23
+
24
+ ::: kinemotion.api.process_cmj_video
25
+ options:
26
+ show_root_heading: true
27
+ show_source: false
28
+
29
+ ::: kinemotion.api.process_cmj_videos_bulk
30
+ options:
31
+ show_root_heading: true
32
+ show_source: false
33
+
34
+ ## Configuration
35
+
36
+ ::: kinemotion.api.CMJVideoConfig
37
+ options:
38
+ show_root_heading: true
39
+ show_source: false
40
+
41
+ ## Results
42
+
43
+ ::: kinemotion.api.CMJVideoResult
44
+ options:
45
+ show_root_heading: true
46
+ show_source: false
47
+
48
+ ## Metrics
49
+
50
+ ::: kinemotion.cmj.kinematics.CMJMetrics
51
+ options:
52
+ show_root_heading: true
53
+ show_source: false
54
+
55
+ ## Key Differences from Drop Jump
56
+
57
+ ### No Calibration Required
58
+
59
+ Unlike drop jumps, CMJ analysis doesn't require a `drop_height` parameter. All measurements are relative to the starting position.
60
+
61
+ ### Backward Search Algorithm
62
+
63
+ CMJ detection uses a backward search algorithm starting from the peak height, making it more robust than forward search.
64
+
65
+ ### Signed Velocity
66
+
67
+ CMJ analysis uses signed velocity (direction matters) to distinguish upward vs downward motion phases.
68
+
69
+ ### Lateral View Required
70
+
71
+ CMJ analysis requires a lateral (side) view for accurate depth and triple extension measurements. Front view will not work due to parallax errors.
72
+
73
+ ## Triple Extension Analysis
74
+
75
+ The CMJ API includes detailed triple extension analysis:
76
+
77
+ ```python
78
+ metrics = process_cmj_video("cmj.mp4")
79
+
80
+ # Triple extension metrics
81
+ print(f"Hip extension: {metrics.hip_extension_angle:.1f}°")
82
+ print(f"Knee extension: {metrics.knee_extension_angle:.1f}°")
83
+ print(f"Ankle plantar flexion: {metrics.ankle_plantar_flexion_angle:.1f}°")
84
+ print(f"Overall triple extension: {metrics.triple_extension_percentage:.1f}%")
85
+ ```
86
+
87
+ See [Triple Extension Technical Documentation](../technical/triple-extension.md) for biomechanics details.
@@ -0,0 +1,81 @@
1
+ # Core Utilities
2
+
3
+ Lower-level utilities for advanced usage and custom analysis pipelines.
4
+
5
+ ## Pose Detection
6
+
7
+ ::: kinemotion.core.pose.PoseTracker
8
+ options:
9
+ show_root_heading: true
10
+ show_source: false
11
+
12
+ ::: kinemotion.core.pose.compute_center_of_mass
13
+ options:
14
+ show_root_heading: true
15
+ show_source: false
16
+
17
+ ## Smoothing & Filtering
18
+
19
+ ::: kinemotion.core.smoothing.smooth_landmarks
20
+ options:
21
+ show_root_heading: true
22
+ show_source: false
23
+
24
+ ::: kinemotion.core.smoothing.smooth_landmarks_advanced
25
+ options:
26
+ show_root_heading: true
27
+ show_source: false
28
+
29
+ ## Video Processing
30
+
31
+ ::: kinemotion.core.video_io.VideoProcessor
32
+ options:
33
+ show_root_heading: true
34
+ show_source: false
35
+
36
+ ## Auto-Tuning
37
+
38
+ ::: kinemotion.core.auto_tuning.auto_tune_parameters
39
+ options:
40
+ show_root_heading: true
41
+ show_source: false
42
+
43
+ ::: kinemotion.core.auto_tuning.analyze_video_sample
44
+ options:
45
+ show_root_heading: true
46
+ show_source: false
47
+
48
+ ::: kinemotion.core.auto_tuning.QualityPreset
49
+ options:
50
+ show_root_heading: true
51
+ show_source: false
52
+
53
+ ## Usage Example
54
+
55
+ ```python
56
+ from kinemotion.core.pose import PoseTracker
57
+ from kinemotion.core.smoothing import smooth_landmarks
58
+ from kinemotion.core.video_io import VideoProcessor
59
+
60
+ # Initialize pose tracker
61
+ tracker = PoseTracker(
62
+ min_detection_confidence=0.5,
63
+ min_tracking_confidence=0.5
64
+ )
65
+
66
+ # Process video
67
+ video = VideoProcessor("video.mp4")
68
+ landmarks = []
69
+
70
+ for frame in video:
71
+ result = tracker.process_frame(frame)
72
+ if result:
73
+ landmarks.append(result)
74
+
75
+ # Apply smoothing
76
+ smoothed = smooth_landmarks(
77
+ landmarks,
78
+ window_length=13,
79
+ polyorder=3
80
+ )
81
+ ```
@@ -0,0 +1,81 @@
1
+ # Drop Jump API
2
+
3
+ The drop jump API provides functions for analyzing drop jump videos and extracting kinematic metrics.
4
+
5
+ ## Quick Example
6
+
7
+ ```python
8
+ from kinemotion import process_video
9
+
10
+ metrics = process_video(
11
+ video_path="dropjump.mp4",
12
+ drop_height=0.40, # meters
13
+ output_path="debug.mp4", # optional
14
+ smoothing=True
15
+ )
16
+
17
+ print(f"Ground contact time: {metrics.ground_contact_time:.3f}s")
18
+ print(f"Flight time: {metrics.flight_time:.3f}s")
19
+ print(f"RSI: {metrics.reactive_strength_index:.2f}")
20
+ ```
21
+
22
+ ## Main Functions
23
+
24
+ ::: kinemotion.api.process_video
25
+ options:
26
+ show_root_heading: true
27
+ show_source: false
28
+
29
+ ::: kinemotion.api.process_videos_bulk
30
+ options:
31
+ show_root_heading: true
32
+ show_source: false
33
+
34
+ ## Configuration
35
+
36
+ ::: kinemotion.api.VideoConfig
37
+ options:
38
+ show_root_heading: true
39
+ show_source: false
40
+
41
+ ## Results
42
+
43
+ ::: kinemotion.api.VideoResult
44
+ options:
45
+ show_root_heading: true
46
+ show_source: false
47
+
48
+ ## Metrics
49
+
50
+ ::: kinemotion.dropjump.kinematics.DropJumpMetrics
51
+ options:
52
+ show_root_heading: true
53
+ show_source: false
54
+
55
+ ## Key Parameters
56
+
57
+ ### drop_height
58
+
59
+ **Required.** The height of the drop box in meters. This is critical for accurate velocity calculations.
60
+
61
+ ```python
62
+ metrics = process_video("video.mp4", drop_height=0.40) # 40cm box
63
+ ```
64
+
65
+ ### smoothing
66
+
67
+ Apply Savitzky-Golay smoothing to landmark positions before analysis. Reduces noise but may slightly delay event detection.
68
+
69
+ Default: `True`
70
+
71
+ ### output_path
72
+
73
+ Path to write debug video with overlay visualization. If not provided, no debug video is created.
74
+
75
+ ```python
76
+ metrics = process_video(
77
+ "video.mp4",
78
+ drop_height=0.40,
79
+ output_path="debug.mp4"
80
+ )
81
+ ```
@@ -0,0 +1,73 @@
1
+ # API Overview
2
+
3
+ Kinemotion provides a Python API for video-based kinematic analysis. The API is organized around two main jump types:
4
+
5
+ ## Main Functions
6
+
7
+ ### Drop Jump Analysis
8
+
9
+ Process drop jump videos and extract kinematic metrics:
10
+
11
+ - `process_video()` - Analyze a single drop jump video
12
+ - `process_videos_bulk()` - Batch process multiple drop jump videos
13
+ - `VideoConfig` - Configuration for drop jump analysis
14
+ - `VideoResult` - Results from drop jump analysis
15
+ - `DropJumpMetrics` - Kinematic metrics for drop jumps
16
+
17
+ See [Drop Jump API](dropjump.md) for detailed documentation.
18
+
19
+ ### CMJ Analysis
20
+
21
+ Process counter movement jump videos and extract kinematic metrics:
22
+
23
+ - `process_cmj_video()` - Analyze a single CMJ video
24
+ - `process_cmj_videos_bulk()` - Batch process multiple CMJ videos
25
+ - `CMJVideoConfig` - Configuration for CMJ analysis
26
+ - `CMJVideoResult` - Results from CMJ analysis
27
+ - `CMJMetrics` - Kinematic metrics for CMJs
28
+
29
+ See [CMJ API](cmj.md) for detailed documentation.
30
+
31
+ ## Basic Usage
32
+
33
+ ```python
34
+ from kinemotion import process_video, process_cmj_video
35
+
36
+ # Drop jump analysis
37
+ drop_metrics = process_video("dropjump.mp4", drop_height=0.40)
38
+
39
+ # CMJ analysis
40
+ cmj_metrics = process_cmj_video("cmj.mp4")
41
+ ```
42
+
43
+ ## Batch Processing
44
+
45
+ ```python
46
+ from kinemotion import process_videos_bulk, process_cmj_videos_bulk
47
+
48
+ # Batch drop jump analysis
49
+ results = process_videos_bulk(
50
+ video_paths=["video1.mp4", "video2.mp4"],
51
+ drop_height=0.40,
52
+ output_dir="results/",
53
+ workers=4
54
+ )
55
+
56
+ # Batch CMJ analysis
57
+ cmj_results = process_cmj_videos_bulk(
58
+ video_paths=["cmj1.mp4", "cmj2.mp4"],
59
+ output_dir="results/",
60
+ workers=4
61
+ )
62
+ ```
63
+
64
+ ## Core Utilities
65
+
66
+ For advanced usage, you can access lower-level utilities:
67
+
68
+ - Pose detection and tracking
69
+ - Velocity computation
70
+ - Smoothing and filtering
71
+ - Video I/O with rotation handling
72
+
73
+ See [Core Utilities](core.md) for detailed documentation.