kinemotion 0.15.1__tar.gz → 0.15.3__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 (86) hide show
  1. {kinemotion-0.15.1 → kinemotion-0.15.3}/.github/ISSUE_TEMPLATE/bug_report.yml +1 -1
  2. {kinemotion-0.15.1 → kinemotion-0.15.3}/.github/pull_request_template.md +2 -1
  3. {kinemotion-0.15.1 → kinemotion-0.15.3}/CHANGELOG.md +21 -0
  4. {kinemotion-0.15.1 → kinemotion-0.15.3}/CLAUDE.md +10 -10
  5. {kinemotion-0.15.1 → kinemotion-0.15.3}/CONTRIBUTING.md +2 -2
  6. {kinemotion-0.15.1 → kinemotion-0.15.3}/PKG-INFO +9 -10
  7. {kinemotion-0.15.1 → kinemotion-0.15.3}/README.md +8 -9
  8. {kinemotion-0.15.1 → kinemotion-0.15.3}/docs/README.md +2 -1
  9. {kinemotion-0.15.1 → kinemotion-0.15.3}/docs/api/cmj.md +3 -2
  10. kinemotion-0.15.3/docs/api/dropjump.md +106 -0
  11. {kinemotion-0.15.1 → kinemotion-0.15.3}/docs/api/overview.md +22 -18
  12. kinemotion-0.15.3/docs/development/wallball-norep-detection.md +2412 -0
  13. {kinemotion-0.15.1 → kinemotion-0.15.3}/docs/guides/bulk-processing.md +12 -37
  14. {kinemotion-0.15.1 → kinemotion-0.15.3}/docs/guides/camera-setup.md +4 -4
  15. {kinemotion-0.15.1 → kinemotion-0.15.3}/docs/index.md +2 -2
  16. {kinemotion-0.15.1 → kinemotion-0.15.3}/docs/reference/parameters.md +45 -93
  17. {kinemotion-0.15.1 → kinemotion-0.15.3}/docs/technical/framerate.md +17 -25
  18. {kinemotion-0.15.1 → kinemotion-0.15.3}/pyproject.toml +1 -1
  19. {kinemotion-0.15.1 → kinemotion-0.15.3}/src/kinemotion/dropjump/cli.py +16 -10
  20. kinemotion-0.15.3/tests/test_cli_imports.py +57 -0
  21. {kinemotion-0.15.1 → kinemotion-0.15.3}/uv.lock +1 -1
  22. kinemotion-0.15.1/docs/api/dropjump.md +0 -81
  23. {kinemotion-0.15.1 → kinemotion-0.15.3}/.dockerignore +0 -0
  24. {kinemotion-0.15.1 → kinemotion-0.15.3}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  25. {kinemotion-0.15.1 → kinemotion-0.15.3}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  26. {kinemotion-0.15.1 → kinemotion-0.15.3}/.github/workflows/docs.yml +0 -0
  27. {kinemotion-0.15.1 → kinemotion-0.15.3}/.github/workflows/release.yml +0 -0
  28. {kinemotion-0.15.1 → kinemotion-0.15.3}/.gitignore +0 -0
  29. {kinemotion-0.15.1 → kinemotion-0.15.3}/.pre-commit-config.yaml +0 -0
  30. {kinemotion-0.15.1 → kinemotion-0.15.3}/.readthedocs.yml +0 -0
  31. {kinemotion-0.15.1 → kinemotion-0.15.3}/.tool-versions +0 -0
  32. {kinemotion-0.15.1 → kinemotion-0.15.3}/CODE_OF_CONDUCT.md +0 -0
  33. {kinemotion-0.15.1 → kinemotion-0.15.3}/Dockerfile +0 -0
  34. {kinemotion-0.15.1 → kinemotion-0.15.3}/GEMINI.md +0 -0
  35. {kinemotion-0.15.1 → kinemotion-0.15.3}/LICENSE +0 -0
  36. {kinemotion-0.15.1 → kinemotion-0.15.3}/SECURITY.md +0 -0
  37. {kinemotion-0.15.1 → kinemotion-0.15.3}/docs/api/core.md +0 -0
  38. {kinemotion-0.15.1 → kinemotion-0.15.3}/docs/development/errors-findings.md +0 -0
  39. {kinemotion-0.15.1 → kinemotion-0.15.3}/docs/development/validation-plan.md +0 -0
  40. {kinemotion-0.15.1 → kinemotion-0.15.3}/docs/guides/cmj-guide.md +0 -0
  41. {kinemotion-0.15.1 → kinemotion-0.15.3}/docs/reference/pose-systems.md +0 -0
  42. {kinemotion-0.15.1 → kinemotion-0.15.3}/docs/research/sports-biomechanics-pose-estimation.md +0 -0
  43. {kinemotion-0.15.1 → kinemotion-0.15.3}/docs/technical/imu-metadata.md +0 -0
  44. {kinemotion-0.15.1 → kinemotion-0.15.3}/docs/technical/real-time-analysis.md +0 -0
  45. {kinemotion-0.15.1 → kinemotion-0.15.3}/docs/technical/triple-extension.md +0 -0
  46. {kinemotion-0.15.1 → kinemotion-0.15.3}/docs/translations/es/camera-setup.md +0 -0
  47. {kinemotion-0.15.1 → kinemotion-0.15.3}/examples/bulk/README.md +0 -0
  48. {kinemotion-0.15.1 → kinemotion-0.15.3}/examples/bulk/bulk_processing.py +0 -0
  49. {kinemotion-0.15.1 → kinemotion-0.15.3}/examples/bulk/simple_example.py +0 -0
  50. {kinemotion-0.15.1 → kinemotion-0.15.3}/examples/programmatic_usage.py +0 -0
  51. {kinemotion-0.15.1 → kinemotion-0.15.3}/mkdocs.yml +0 -0
  52. {kinemotion-0.15.1 → kinemotion-0.15.3}/requirements-docs.txt +0 -0
  53. {kinemotion-0.15.1 → kinemotion-0.15.3}/samples/cmjs/README.md +0 -0
  54. {kinemotion-0.15.1 → kinemotion-0.15.3}/src/kinemotion/__init__.py +0 -0
  55. {kinemotion-0.15.1 → kinemotion-0.15.3}/src/kinemotion/api.py +0 -0
  56. {kinemotion-0.15.1 → kinemotion-0.15.3}/src/kinemotion/cli.py +0 -0
  57. {kinemotion-0.15.1 → kinemotion-0.15.3}/src/kinemotion/cmj/__init__.py +0 -0
  58. {kinemotion-0.15.1 → kinemotion-0.15.3}/src/kinemotion/cmj/analysis.py +0 -0
  59. {kinemotion-0.15.1 → kinemotion-0.15.3}/src/kinemotion/cmj/cli.py +0 -0
  60. {kinemotion-0.15.1 → kinemotion-0.15.3}/src/kinemotion/cmj/debug_overlay.py +0 -0
  61. {kinemotion-0.15.1 → kinemotion-0.15.3}/src/kinemotion/cmj/joint_angles.py +0 -0
  62. {kinemotion-0.15.1 → kinemotion-0.15.3}/src/kinemotion/cmj/kinematics.py +0 -0
  63. {kinemotion-0.15.1 → kinemotion-0.15.3}/src/kinemotion/core/__init__.py +0 -0
  64. {kinemotion-0.15.1 → kinemotion-0.15.3}/src/kinemotion/core/auto_tuning.py +0 -0
  65. {kinemotion-0.15.1 → kinemotion-0.15.3}/src/kinemotion/core/cli_utils.py +0 -0
  66. {kinemotion-0.15.1 → kinemotion-0.15.3}/src/kinemotion/core/debug_overlay_utils.py +0 -0
  67. {kinemotion-0.15.1 → kinemotion-0.15.3}/src/kinemotion/core/filtering.py +0 -0
  68. {kinemotion-0.15.1 → kinemotion-0.15.3}/src/kinemotion/core/pose.py +0 -0
  69. {kinemotion-0.15.1 → kinemotion-0.15.3}/src/kinemotion/core/smoothing.py +0 -0
  70. {kinemotion-0.15.1 → kinemotion-0.15.3}/src/kinemotion/core/video_io.py +0 -0
  71. {kinemotion-0.15.1 → kinemotion-0.15.3}/src/kinemotion/dropjump/__init__.py +0 -0
  72. {kinemotion-0.15.1 → kinemotion-0.15.3}/src/kinemotion/dropjump/analysis.py +0 -0
  73. {kinemotion-0.15.1 → kinemotion-0.15.3}/src/kinemotion/dropjump/debug_overlay.py +0 -0
  74. {kinemotion-0.15.1 → kinemotion-0.15.3}/src/kinemotion/dropjump/kinematics.py +0 -0
  75. {kinemotion-0.15.1 → kinemotion-0.15.3}/src/kinemotion/py.typed +0 -0
  76. {kinemotion-0.15.1 → kinemotion-0.15.3}/tests/__init__.py +0 -0
  77. {kinemotion-0.15.1 → kinemotion-0.15.3}/tests/test_adaptive_threshold.py +0 -0
  78. {kinemotion-0.15.1 → kinemotion-0.15.3}/tests/test_api.py +0 -0
  79. {kinemotion-0.15.1 → kinemotion-0.15.3}/tests/test_aspect_ratio.py +0 -0
  80. {kinemotion-0.15.1 → kinemotion-0.15.3}/tests/test_cmj_analysis.py +0 -0
  81. {kinemotion-0.15.1 → kinemotion-0.15.3}/tests/test_cmj_kinematics.py +0 -0
  82. {kinemotion-0.15.1 → kinemotion-0.15.3}/tests/test_com_estimation.py +0 -0
  83. {kinemotion-0.15.1 → kinemotion-0.15.3}/tests/test_contact_detection.py +0 -0
  84. {kinemotion-0.15.1 → kinemotion-0.15.3}/tests/test_filtering.py +0 -0
  85. {kinemotion-0.15.1 → kinemotion-0.15.3}/tests/test_kinematics.py +0 -0
  86. {kinemotion-0.15.1 → kinemotion-0.15.3}/tests/test_polyorder.py +0 -0
@@ -53,7 +53,7 @@ body:
53
53
  label: Command Used
54
54
  description: The exact command you ran (please remove any sensitive paths if needed).
55
55
  placeholder: |
56
- kinemotion dropjump-analyze video.mp4 --drop-height 0.40 --output debug.mp4
56
+ kinemotion dropjump-analyze video.mp4 --output debug.mp4
57
57
  render: bash
58
58
  validations:
59
59
  required: false
@@ -52,7 +52,8 @@ Related to #
52
52
 
53
53
  ```bash
54
54
  # Example test commands
55
- uv run kinemotion dropjump-analyze test_video.mp4 --drop-height 0.40
55
+ uv run kinemotion dropjump-analyze test_video.mp4
56
+ uv run kinemotion cmj-analyze test_video.mp4
56
57
  ```
57
58
 
58
59
  ## Code Quality Checklist
@@ -7,6 +7,27 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  <!-- version list -->
9
9
 
10
+ ## v0.15.3 (2025-11-10)
11
+
12
+ ### Bug Fixes
13
+
14
+ - **dropjump**: Correct API imports in CLI module
15
+ ([`b456d4c`](https://github.com/feniix/kinemotion/commit/b456d4c0a09234df70da3d67de0ed53c4fe55cfe))
16
+
17
+ ### Documentation
18
+
19
+ - **development**: Add HYROX wall ball no-rep detection implementation plan
20
+ ([`f38f5ae`](https://github.com/feniix/kinemotion/commit/f38f5ae21b2cb767fdf0156f193ce988d58fee7f))
21
+
22
+
23
+ ## v0.15.2 (2025-11-07)
24
+
25
+ ### Bug Fixes
26
+
27
+ - **docs**: Update documentation to match current auto-tuning API
28
+ ([`a07b40d`](https://github.com/feniix/kinemotion/commit/a07b40d9057438912a44fc4eb5b9b3e6e34a6d56))
29
+
30
+
10
31
  ## v0.15.1 (2025-11-06)
11
32
 
12
33
  ### Bug Fixes
@@ -13,13 +13,13 @@ Kinemotion: Video-based kinematic analysis for athletic performance using MediaP
13
13
  ```bash
14
14
  asdf install # Install Python 3.12.7 + uv
15
15
  uv sync # Install dependencies
16
- uv run kinemotion dropjump-analyze video.mp4 --drop-height 0.40
16
+ uv run kinemotion dropjump-analyze video.mp4
17
17
  uv run kinemotion cmj-analyze video.mp4
18
18
  ```
19
19
 
20
20
  **Development:**
21
21
  ```bash
22
- uv run pytest # Run all 70 tests
22
+ uv run pytest # Run all 75 tests
23
23
  uv run ruff check --fix && uv run pyright # Lint + type check
24
24
  ```
25
25
 
@@ -35,7 +35,7 @@ src/kinemotion/
35
35
  ├── dropjump/ # Drop jump: cli, analysis, kinematics, debug_overlay
36
36
  └── cmj/ # CMJ: cli, analysis, kinematics, joint_angles, debug_overlay
37
37
 
38
- tests/ # 70 tests total (61 drop jump, 9 CMJ)
38
+ tests/ # 75 tests total (61 drop jump, 9 CMJ, 5 CLI import)
39
39
  docs/ # CMJ_GUIDE, TRIPLE_EXTENSION, REAL_TIME_ANALYSIS, etc.
40
40
  ```
41
41
 
@@ -48,7 +48,7 @@ docs/ # CMJ_GUIDE, TRIPLE_EXTENSION, REAL_TIME_ANALYSIS, e
48
48
  | Starting | Elevated box | Floor level |
49
49
  | Algorithm | Forward search | Backward search from peak |
50
50
  | Velocity | Absolute (magnitude) | Signed (direction matters) |
51
- | Parameter | `--drop-height` required | No calibration needed |
51
+ | Parameters | Auto-tuned quality presets | Auto-tuned quality presets |
52
52
  | Key Metric | Ground contact time | Jump height from flight time |
53
53
 
54
54
  ## Critical Implementation Details
@@ -178,13 +178,13 @@ When writing new code, follow these principles to maintain low duplication:
178
178
  ### CLI
179
179
 
180
180
  ```bash
181
- # Drop jump (requires --drop-height)
182
- kinemotion dropjump-analyze video.mp4 --drop-height 0.40
181
+ # Drop jump (auto-tuned parameters)
182
+ kinemotion dropjump-analyze video.mp4
183
183
 
184
- # CMJ (no calibration needed)
184
+ # CMJ with debug video
185
185
  kinemotion cmj-analyze video.mp4 --output debug.mp4
186
186
 
187
- # Batch
187
+ # Batch processing
188
188
  kinemotion cmj-analyze videos/*.mp4 --batch --workers 4
189
189
  ```
190
190
 
@@ -193,11 +193,11 @@ kinemotion cmj-analyze videos/*.mp4 --batch --workers 4
193
193
  ```python
194
194
  # Drop jump
195
195
  from kinemotion import process_dropjump_video
196
- metrics = process_video("video.mp4", drop_height=0.40)
196
+ metrics = process_dropjump_video("video.mp4", quality="balanced")
197
197
 
198
198
  # CMJ
199
199
  from kinemotion import process_cmj_video
200
- metrics = process_cmj_video("video.mp4")
200
+ metrics = process_cmj_video("video.mp4", quality="balanced")
201
201
  ```
202
202
 
203
203
  ## Important Gotchas
@@ -83,10 +83,10 @@ We actively welcome pull requests! Here's how to submit one:
83
83
 
84
84
  ```bash
85
85
  # Run from source
86
- uv run kinemotion dropjump-analyze <video_path> --drop-height 0.40
86
+ uv run kinemotion dropjump-analyze <video_path>
87
87
 
88
88
  # With debug output
89
- uv run kinemotion dropjump-analyze <video_path> --drop-height 0.40 --output debug.mp4 --verbose
89
+ uv run kinemotion dropjump-analyze <video_path> --output debug.mp4 --verbose
90
90
  ```
91
91
 
92
92
  ## Code Quality Standards
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kinemotion
3
- Version: 0.15.1
3
+ Version: 0.15.3
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
@@ -125,8 +125,8 @@ Kinemotion supports two jump types with intelligent auto-tuning that automatical
125
125
  Analyzes reactive strength and ground contact time:
126
126
 
127
127
  ```bash
128
- # Drop-height is REQUIRED for accurate calibration
129
- kinemotion dropjump-analyze video.mp4 --drop-height 0.40
128
+ # Automatic parameter tuning based on video characteristics
129
+ kinemotion dropjump-analyze video.mp4
130
130
  ```
131
131
 
132
132
  ### Counter Movement Jump (CMJ) Analysis
@@ -176,9 +176,9 @@ Process multiple videos in parallel:
176
176
 
177
177
  ```bash
178
178
  # Drop jumps
179
- kinemotion dropjump-analyze videos/*.mp4 --batch --drop-height 0.40 --workers 4
179
+ kinemotion dropjump-analyze videos/*.mp4 --batch --workers 4
180
180
 
181
- # CMJ (no drop height needed)
181
+ # CMJ with output directories
182
182
  kinemotion cmj-analyze videos/*.mp4 --batch --workers 4 \
183
183
  --json-output-dir results/ \
184
184
  --csv-summary summary.csv
@@ -194,9 +194,8 @@ Use kinemotion as a library for automated pipelines and custom analysis.
194
194
  from kinemotion import process_dropjump_video
195
195
 
196
196
  # Process a single video
197
- metrics = process_video(
197
+ metrics = process_dropjump_video(
198
198
  video_path="athlete_jump.mp4",
199
- drop_height=0.40, # 40cm drop box
200
199
  quality="balanced",
201
200
  verbose=True
202
201
  )
@@ -214,11 +213,11 @@ print(f"Flight time: {metrics.flight_time * 1000:.1f} ms")
214
213
  from kinemotion import DropJumpVideoConfig, process_dropjump_videos_bulk
215
214
 
216
215
  configs = [
217
- VideoConfig("video1.mp4", drop_height=0.40),
218
- VideoConfig("video2.mp4", drop_height=0.30, quality="accurate"),
216
+ DropJumpVideoConfig("video1.mp4", quality="balanced"),
217
+ DropJumpVideoConfig("video2.mp4", quality="accurate"),
219
218
  ]
220
219
 
221
- results = process_videos_bulk(configs, max_workers=4)
220
+ results = process_dropjump_videos_bulk(configs, max_workers=4)
222
221
 
223
222
  # CMJ bulk processing
224
223
  from kinemotion import CMJVideoConfig, process_cmj_videos_bulk
@@ -96,8 +96,8 @@ Kinemotion supports two jump types with intelligent auto-tuning that automatical
96
96
  Analyzes reactive strength and ground contact time:
97
97
 
98
98
  ```bash
99
- # Drop-height is REQUIRED for accurate calibration
100
- kinemotion dropjump-analyze video.mp4 --drop-height 0.40
99
+ # Automatic parameter tuning based on video characteristics
100
+ kinemotion dropjump-analyze video.mp4
101
101
  ```
102
102
 
103
103
  ### Counter Movement Jump (CMJ) Analysis
@@ -147,9 +147,9 @@ Process multiple videos in parallel:
147
147
 
148
148
  ```bash
149
149
  # Drop jumps
150
- kinemotion dropjump-analyze videos/*.mp4 --batch --drop-height 0.40 --workers 4
150
+ kinemotion dropjump-analyze videos/*.mp4 --batch --workers 4
151
151
 
152
- # CMJ (no drop height needed)
152
+ # CMJ with output directories
153
153
  kinemotion cmj-analyze videos/*.mp4 --batch --workers 4 \
154
154
  --json-output-dir results/ \
155
155
  --csv-summary summary.csv
@@ -165,9 +165,8 @@ Use kinemotion as a library for automated pipelines and custom analysis.
165
165
  from kinemotion import process_dropjump_video
166
166
 
167
167
  # Process a single video
168
- metrics = process_video(
168
+ metrics = process_dropjump_video(
169
169
  video_path="athlete_jump.mp4",
170
- drop_height=0.40, # 40cm drop box
171
170
  quality="balanced",
172
171
  verbose=True
173
172
  )
@@ -185,11 +184,11 @@ print(f"Flight time: {metrics.flight_time * 1000:.1f} ms")
185
184
  from kinemotion import DropJumpVideoConfig, process_dropjump_videos_bulk
186
185
 
187
186
  configs = [
188
- VideoConfig("video1.mp4", drop_height=0.40),
189
- VideoConfig("video2.mp4", drop_height=0.30, quality="accurate"),
187
+ DropJumpVideoConfig("video1.mp4", quality="balanced"),
188
+ DropJumpVideoConfig("video2.mp4", quality="accurate"),
190
189
  ]
191
190
 
192
- results = process_videos_bulk(configs, max_workers=4)
191
+ results = process_dropjump_videos_bulk(configs, max_workers=4)
193
192
 
194
193
  # CMJ bulk processing
195
194
  from kinemotion import CMJVideoConfig, process_cmj_videos_bulk
@@ -41,6 +41,7 @@ Welcome to the kinemotion documentation. This directory contains guides, technic
41
41
 
42
42
  - **[Validation Plan](development/validation-plan.md)** - Testing and validation strategy
43
43
  - **[Errors & Findings](development/errors-findings.md)** - Known issues and debugging information
44
+ - **[Wall Ball No-Rep Detection](development/wallball-norep-detection.md)** - Future feature implementation plan for HYROX wall ball analysis
44
45
 
45
46
  ### 🌍 Translations
46
47
 
@@ -100,4 +101,4 @@ Ensure cross-references use relative paths and follow conventional commits forma
100
101
 
101
102
  ______________________________________________________________________
102
103
 
103
- **Last Updated:** November 6, 2025
104
+ **Last Updated:** November 7, 2025
@@ -9,8 +9,9 @@ from kinemotion import process_cmj_video
9
9
 
10
10
  metrics = process_cmj_video(
11
11
  video_path="cmj.mp4",
12
- output_path="debug.mp4", # optional
13
- smoothing=True
12
+ quality="balanced", # fast, balanced, or accurate
13
+ output_video="debug.mp4", # optional
14
+ verbose=True
14
15
  )
15
16
 
16
17
  print(f"Jump height: {metrics.jump_height:.2f}m")
@@ -0,0 +1,106 @@
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_dropjump_video
9
+
10
+ metrics = process_dropjump_video(
11
+ video_path="dropjump.mp4",
12
+ quality="balanced", # fast, balanced, or accurate
13
+ output_video="debug.mp4", # optional
14
+ verbose=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_dropjump_video
25
+ options:
26
+ show_root_heading: true
27
+ show_source: false
28
+
29
+ ::: kinemotion.api.process_dropjump_videos_bulk
30
+ options:
31
+ show_root_heading: true
32
+ show_source: false
33
+
34
+ ## Configuration
35
+
36
+ ::: kinemotion.api.DropJumpVideoConfig
37
+ options:
38
+ show_root_heading: true
39
+ show_source: false
40
+
41
+ ## Results
42
+
43
+ ::: kinemotion.api.DropJumpVideoResult
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
+ ### quality
58
+
59
+ Analysis quality preset that determines processing speed and accuracy. The system automatically tunes parameters based on video characteristics and the selected preset.
60
+
61
+ Options:
62
+
63
+ - `"fast"` - Quick processing, lower precision
64
+ - `"balanced"` - Default, good for most cases
65
+ - `"accurate"` - Research-grade, slower processing
66
+
67
+ Default: `"balanced"`
68
+
69
+ ```python
70
+ metrics = process_dropjump_video("video.mp4", quality="accurate")
71
+ ```
72
+
73
+ ### output_video
74
+
75
+ Path to write debug video with overlay visualization. If not provided, no debug video is created.
76
+
77
+ ```python
78
+ metrics = process_dropjump_video(
79
+ "video.mp4",
80
+ quality="balanced",
81
+ output_video="debug.mp4"
82
+ )
83
+ ```
84
+
85
+ ### json_output
86
+
87
+ Path to write JSON metrics output. If not provided, metrics are only returned as a Python object.
88
+
89
+ ```python
90
+ metrics = process_dropjump_video(
91
+ "video.mp4",
92
+ json_output="metrics.json"
93
+ )
94
+ ```
95
+
96
+ ### Expert Parameters
97
+
98
+ For advanced users, you can override auto-tuned parameters:
99
+
100
+ - `smoothing_window` - Override auto-tuned smoothing window size
101
+ - `velocity_threshold` - Override velocity threshold for ground contact detection
102
+ - `min_contact_frames` - Override minimum contact frames
103
+ - `visibility_threshold` - Override visibility threshold
104
+ - `detection_confidence` - Override pose detection confidence
105
+ - `tracking_confidence` - Override pose tracking confidence
106
+ - `drop_start_frame` - Manually specify frame where drop begins
@@ -8,10 +8,10 @@ Kinemotion provides a Python API for video-based kinematic analysis. The API is
8
8
 
9
9
  Process drop jump videos and extract kinematic metrics:
10
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
11
+ - `process_dropjump_video()` - Analyze a single drop jump video
12
+ - `process_dropjump_videos_bulk()` - Batch process multiple drop jump videos
13
+ - `DropJumpVideoConfig` - Configuration for drop jump analysis
14
+ - `DropJumpVideoResult` - Results from drop jump analysis
15
15
  - `DropJumpMetrics` - Kinematic metrics for drop jumps
16
16
 
17
17
  See [Drop Jump API](dropjump.md) for detailed documentation.
@@ -34,31 +34,35 @@ See [CMJ API](cmj.md) for detailed documentation.
34
34
  from kinemotion import process_dropjump_video, process_cmj_video
35
35
 
36
36
  # Drop jump analysis
37
- drop_metrics = process_video("dropjump.mp4", drop_height=0.40)
37
+ drop_metrics = process_dropjump_video("dropjump.mp4", quality="balanced")
38
38
 
39
39
  # CMJ analysis
40
- cmj_metrics = process_cmj_video("cmj.mp4")
40
+ cmj_metrics = process_cmj_video("cmj.mp4", quality="balanced")
41
41
  ```
42
42
 
43
43
  ## Batch Processing
44
44
 
45
45
  ```python
46
- from kinemotion import process_dropjump_videos_bulk, process_cmj_videos_bulk
46
+ from kinemotion import (
47
+ DropJumpVideoConfig,
48
+ CMJVideoConfig,
49
+ process_dropjump_videos_bulk,
50
+ process_cmj_videos_bulk
51
+ )
47
52
 
48
53
  # 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
- )
54
+ configs = [
55
+ DropJumpVideoConfig("video1.mp4", quality="balanced"),
56
+ DropJumpVideoConfig("video2.mp4", quality="accurate"),
57
+ ]
58
+ results = process_dropjump_videos_bulk(configs, max_workers=4)
55
59
 
56
60
  # 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
- )
61
+ cmj_configs = [
62
+ CMJVideoConfig("cmj1.mp4", quality="balanced"),
63
+ CMJVideoConfig("cmj2.mp4", quality="accurate"),
64
+ ]
65
+ cmj_results = process_cmj_videos_bulk(cmj_configs, max_workers=4)
62
66
  ```
63
67
 
64
68
  ## Core Utilities