kinemotion 0.41.3__tar.gz → 0.42.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.
- kinemotion-0.42.0/.basic-memory/api/cloud-run-cpu-specifications-investigation.md +38 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/project-management/performance-optimization-pose-tracker-pool-timing-instrumentation-complete.md +50 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/CHANGELOG.md +16 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/PKG-INFO +1 -1
- {kinemotion-0.41.3 → kinemotion-0.42.0}/backend/src/kinemotion_backend/app.py +11 -4
- {kinemotion-0.41.3 → kinemotion-0.42.0}/frontend/src/App.tsx +3 -1
- {kinemotion-0.41.3 → kinemotion-0.42.0}/frontend/src/components/UploadForm.tsx +23 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/frontend/src/hooks/useAnalysis.ts +7 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/frontend/src/index.css +33 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/pyproject.toml +1 -1
- {kinemotion-0.41.3 → kinemotion-0.42.0}/uv.lock +1 -1
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/README.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/api/api-reference-quick-commands.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/api/supabase-authentication-setup-guide.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/authentication/auth-provider-comparison-december-2025.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/authentication/auth-providers-comparison-december-2025.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/authentication/supabase-authentication-quick-start.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/authentication/supabase-authentication-setup-guide.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/authentication/supabase-authentication-technical-guide.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/authentication/supabase-google-oauth-setup-guide.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/authentication/supabase-production-setup-guide.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/authentication/supabase-quick-start-guide.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/biomechanics/camera-angle-empirical-validation-results-45-superior-for-media-pipe.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/biomechanics/camera-perspective-analysis-45deg-vs-lateral.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/biomechanics/cmj-landing-detection-window-validation.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/biomechanics/cmj-physiological-bounds-for-validation.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/biomechanics/cmj-validation-implementation-complete.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/biomechanics/drop-jump-vs-cmj-key-differences.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/biomechanics/technical-implementation-45deg-perspective-correction.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/codebase/codebase-architecture-overview.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/codebase/validation-architecture-visual-hierarchy-after-refactoring.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/codebase/validation-code-duplication-evidence.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/codebase/validation-module-architecture-analysis.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/codebase/validation-refactoring-complete-architecture-improvement.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/deployment/automated-deployment-setup-git-hub-actions-with-workload-identity-federation.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/deployment/backend-repository-split-migration-guide.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/deployment/backend-repository-split-step-by-step-execution-guide.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/deployment/cloud-run-security-least-privilege-service-account-setup.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/deployment/cors-and-memory-issues-production-debugging-guide.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/deployment/current-kinemotion-architecture-correct-deployment-setup.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/deployment/frontend-repository-split-migration-guide.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/deployment/frontend-repository-split-step-by-step-execution-guide.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/deployment/production-deployment-guide-vercel-google-cloud-run.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/deployment/quick-deployment-commands-vercel-and-cloud-run.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/deployment/vercel-monorepo-deployment-best-practice.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/athlete-pose3d-and-cross-platform-determinism-investigation-complete.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/athlete-pose3d-final-strategy-accuracy-and-robustness.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/athlete-pose3d-media-pipe-enhancement-plan.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/athlete-pose3d-phase-1-implementation-complete.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/backend-authentication-and-logging-status.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/backend-code-coverage-analysis.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/backend-code-duplication-analysis.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/backend-kinemotion-decoupling-strategy.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/backend-sonar-cloud-integration-status.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/basic-memory-naming-hook-analysis.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/ci-caching-issue-investigation-deep-squat-test-failure.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/ci-vs-local-test-failure-investigation.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/claude-code-hook-configuration.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/cmj-phase-detection-testing-gap-analysis.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/comprehensive-timing-instrumentation.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/cross-platform-determinism-analysis-final-results.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/development-standards-quality-gates.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/drop-jump-detection-complete-fix-all-metrics-within-target.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/drop-jump-detection-failure-analysis-per-video-breakdown.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/drop-jump-fix-drop-start-successful-landing-and-takeoff-remain.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/frontend-dependencies-analysis-nov-2025.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/google-oauth-setup-script-final-review-production-ready.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/google-oauth-setup-script-review-issues-and-recommendations.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/hook-complete-audit-summary.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/hook-configuration-audit.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/hook-quick-reference.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/keyboard-interrupt-test-suite-failure-analysis.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/non-deterministic-analysis-root-cause-and-solution.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/p0-p1-p2-test-suite-fixes-final-report.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/pose-detection-baseline-evaluation-results.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/pose-detection-optimization-complete-success-summary.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/pose-detection-parameter-optimization-framework.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/structured-logging-implementation-complete.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/structured-logging-implementation.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/supabase-dashboard-navigation-december-2025.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/test-coverage-asymmetry-analysis-cmj-vs-drop-jump.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/test-coverage-equivalence-achievement-summary.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/test-suite-comprehensive-review-december-2025.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/test-suite-comprehensive-review-structure-and-gaps.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/test-suite-p0-p1-p2-fixes-complete-report.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/test-suite-p0-p1-p2-fixes-progress-report.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/unused-and-experimental-features-strategy.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/unused-code-detection-prompt-template.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/unused-code-identification-and-decorator-application-december-2025.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/unused-code-verification-final-pass-december-2025.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/using-multiple-mcp-reasoning-servers-simultaneously.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/velocity-threshold-empirical-validation-study.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/vercel-authentication-options-for-user-id-tracking.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/project-management/documentation-audit-december-2025.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/project-management/issue-12-mvp-scaffolding-complete.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/project-management/issue-12-unblocked-tasks-breakdown.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/project-management/issue-12-use-real-metrics-now.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/project-management/kinemotion-project-setup-complete.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/project-management/kinemotion-supabase-production-configuration.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/project-management/mcp-sequential-thinking-alternatives-analysis.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/project-management/project-state-summary-december-2025.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/project-management/specialized-subagents-routing-guide.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/project-management/supabase-setup-instructions-for-kinemotion.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/project-management/version-mismatch-analysis-kinemotion-0370-vs-0300.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/strategy/deployment-decision-analysis-for-kinemotion.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/strategy/mvp-feedback-collection-plan.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/strategy/mvp-first-strategic-direction.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/strategy/mvp-validation-checkpoints.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/strategy/pose2sim-migration-evaluation-and-strategy.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/strategy/strategic-priority-tasks-current-roadmap.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/strategy/third-party-auth-providers-with-free-tiers-december-2025.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.claude/agents/biomechanics-specialist.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.claude/agents/computer-vision-engineer.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.claude/agents/devops-cicd-engineer.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.claude/agents/frontend-developer.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.claude/agents/ml-data-scientist.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.claude/agents/project-manager.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.claude/agents/python-backend-developer.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.claude/agents/qa-test-engineer.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.claude/agents/technical-writer.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.claude/settings.local.json +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.cursor/mcp.json +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.dockerignore +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.envrc +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.gitattributes +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.github/dependabot.yml +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.github/pull_request_template.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.github/workflows/deploy-backend.yml +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.github/workflows/docs.yml +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.github/workflows/release.yml +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.github/workflows/security.yml +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.github/workflows/test.yml +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.gitignore +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.mcp.json +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.pre-commit-config.yaml +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.readthedocs.yml +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.serena/.gitignore +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.serena/memories/backend-cors-fastapi-middleware-order.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.serena/memories/camera-perspective-validation-study.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.serena/memories/code_style_and_conventions.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.serena/memories/current-project-architecture.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.serena/memories/deployment-checklist-and-known-issues.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.serena/memories/deployment-setup-complete.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.serena/memories/github-project-setup-summary.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.serena/memories/mvp-first-strategy.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.serena/memories/mvp-roadmap-and-priorities.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.serena/memories/project_overview.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.serena/memories/specialist-agents-routing.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.serena/memories/suggested_commands.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.serena/project.yml +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.tool-versions +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/.vercelignore +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/CLAUDE.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/CODE_OF_CONDUCT.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/CONTRIBUTING.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/Dockerfile +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/GEMINI.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/LICENSE +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/README.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/SECURITY.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/backend/.dockerignore +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/backend/.env.example +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/backend/Dockerfile +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/backend/README.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/backend/docs/fly-deployment.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/backend/docs/implementation-summary.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/backend/docs/setup.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/backend/docs/tests.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/backend/pyproject.toml +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/backend/src/kinemotion_backend/__init__.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/backend/src/kinemotion_backend/auth.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/backend/src/kinemotion_backend/logging_config.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/backend/src/kinemotion_backend/middleware.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/backend/tests/README.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/backend/tests/__init__.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/backend/tests/conftest.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/backend/tests/test_api_endpoints.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/backend/tests/test_error_handling.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/backend/tests/test_health.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/backend/tests/test_r2_integration.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/backend/tests/test_validation.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/README.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/api/cmj.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/api/core.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/api/dropjump.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/api/overview.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/development/agents-guide.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/development/errors-findings.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/development/test-suite-review-december-2025.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/development/testing-standards.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/development/testing.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/development/type-hints.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/development/validation-plan.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/development/validation-roadmap.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/development/wallball-norep-detection.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/guides/bulk-processing.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/guides/camera-setup.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/guides/cloud-run-deployment.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/guides/cmj-guide.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/guides/cmj-recording-protocol-es.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/guides/cmj-recording-protocol.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/guides/deployment-checklist.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/guides/local-testing.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/guides/setup-issue-12.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/index.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/quick-start.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/reference/cloud-run-quick-reference.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/reference/json-output-format.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/reference/json-structure-comparison.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/reference/parameters.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/reference/pose-systems.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/paper-downloader/HOW-TO-FIND-DOIS.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/paper-downloader/README.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/paper-downloader/dois.txt +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/paper-downloader/download.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/paper-downloader/pyproject.toml +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/paper-downloader/uv.lock +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/sports-biomechanics-pose-estimation.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/MANUAL-DOWNLOAD-GUIDE.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/README.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/convert_pdfs.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/markdown/athlete-monitoring/2001_Foster_Session-RPE-Training-Monitoring.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/markdown/athlete-monitoring/2015_Buchheit_GPS-Accelerometers-Stride-Stiffness.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/markdown/athlete-monitoring/2018_Flatt_HRV-Recovery-Swimmers.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/markdown/athlete-monitoring/2018_Saw_Training-Camps-Monitoring.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/markdown/athlete-monitoring/2018_Ward_Putting-i-in-Team.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/markdown/injury-prevention/2011_Petersen_Nordic-Hamstring-Prevention.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/markdown/injury-prevention/2011_Wilk_Shoulder-GIRD-Baseball-Pitchers.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/markdown/injury-prevention/2012_Hewit_Multidirectional-Leg-Asymmetry.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/markdown/injury-prevention/2015_Ford_Hip-Neuromuscular-Exercise-Valgus.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/markdown/injury-prevention/2015_Mosler_Hip-Groin-Pain-Factors.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/markdown/injury-prevention/2015_Sconce_Nordic-Hamstring-Validity.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/markdown/injury-prevention/2016_Mendez-Villanueva_Hamstring-MRI-Regional.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/markdown/injury-prevention/2016_Read_Youth-Soccer-Injury-Risk.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/markdown/injury-prevention/2017_Mason-Mackay_Ankle-Dorsiflexion-Landing.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/markdown/injury-prevention/2017_Mendiguchia_Hamstring-Treatment-Algorithm.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/markdown/injury-prevention/2018_Balsalobre-Fernandez_Ankle-Dorsiflexion-App.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/markdown/injury-prevention/2018_Bramah_Pathological-Gait-Running-Injuries.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/markdown/injury-prevention/2020_Fidai_Fatigue-Knee-Valgus-Youth.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/markdown/jump-performance/2011_Harper_10-to-5-Jump-Test.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/markdown/jump-performance/2012_Samozino_Optimal-Force-Velocity-Profile.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/markdown/jump-performance/2014_Samozino_FV-Imbalance.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/markdown/jump-performance/2016_Jimenez-Reyes_Force-Velocity-Training.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/markdown/jump-performance/2016_Morin-Samozino_Power-Force-Velocity-Profiles.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/markdown/jump-performance/2018_Garcia-Ramos_Two-Point-Method-Optimization.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/markdown/jump-performance/2022_Wells_Golf-Clubhead-CMJ.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/markdown/running-biomechanics/2005_Morin_Running-Stiffness-Measurement.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/markdown/running-biomechanics/2015_Balsalobre-Fernandez_Strength-Training-Running-Economy.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/markdown/running-biomechanics/2016_Balsalobre-Fernandez_iPhone-Running-Mechanics.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/markdown/running-biomechanics/2016_Moore_Economical-Running-Technique.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/markdown/running-biomechanics/2020_Filter_Curve-Sprint-Test-Soccer.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/markdown/running-biomechanics/2020_Harper_Horizontal-Deceleration-Radar.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/markdown/running-biomechanics/2021_vanOeveren_Running-Biomechanics-Synthesis.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/markdown/running-biomechanics/2024_Bramah_Sprint-Mechanics-Assessment-Score.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/markdown/smartphone-technology/2015_Balsalobre-Fernandez_iPhone-Vertical-Jump.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/markdown/smartphone-technology/2022_Bishop_MyJumpLab-Validation.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/markdown/velocity-based-training/2011_Jidovtseff_Load-Velocity-1RM-Prediction.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/markdown/velocity-based-training/2016_Conceicao_Movement-Velocity-Lower-Limb.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/markdown/velocity-based-training/2016_Pareja-Blanco_Velocity-Loss-Training.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/markdown/velocity-based-training/2017_Balsalobre-Fernandez_Barbell-Velocity-1RM.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/markdown/velocity-based-training/2020_Balsalobre-Fernandez_Barbell-Trajectory-Snatch.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/markdown/velocity-based-training/2023_Balsalobre-Fernandez_AI-Barbell-Velocity.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/online-references-for-papers.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/pdfs/athlete-monitoring/2001_Foster_Session-RPE-Training-Monitoring.pdf +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/pdfs/athlete-monitoring/2015_Buchheit_GPS-Accelerometers-Stride-Stiffness.pdf +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/pdfs/athlete-monitoring/2018_Flatt_HRV-Recovery-Swimmers.pdf +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/pdfs/athlete-monitoring/2018_Saw_Training-Camps-Monitoring.pdf +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/pdfs/athlete-monitoring/2018_Ward_Putting-i-in-Team.pdf +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/pdfs/injury-prevention/2011_Petersen_Nordic-Hamstring-Prevention.pdf +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/pdfs/injury-prevention/2011_Wilk_Shoulder-GIRD-Baseball-Pitchers.pdf +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/pdfs/injury-prevention/2012_Hewit_Multidirectional-Leg-Asymmetry.pdf +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/pdfs/injury-prevention/2015_Ford_Hip-Neuromuscular-Exercise-Valgus.pdf +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/pdfs/injury-prevention/2015_Mosler_Hip-Groin-Pain-Factors.pdf +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/pdfs/injury-prevention/2015_Sconce_Nordic-Hamstring-Validity.pdf +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/pdfs/injury-prevention/2016_Mendez-Villanueva_Hamstring-MRI-Regional.pdf +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/pdfs/injury-prevention/2016_Read_Youth-Soccer-Injury-Risk.pdf +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/pdfs/injury-prevention/2017_Mason-Mackay_Ankle-Dorsiflexion-Landing.pdf +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/pdfs/injury-prevention/2017_Mendiguchia_Hamstring-Treatment-Algorithm.pdf +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/pdfs/injury-prevention/2018_Balsalobre-Fernandez_Ankle-Dorsiflexion-App.pdf +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/pdfs/injury-prevention/2018_Bramah_Pathological-Gait-Running-Injuries.pdf +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/pdfs/injury-prevention/2020_Fidai_Fatigue-Knee-Valgus-Youth.pdf +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/pdfs/jump-performance/2011_Harper_10-to-5-Jump-Test.pdf +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/pdfs/jump-performance/2012_Samozino_Optimal-Force-Velocity-Profile.pdf +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/pdfs/jump-performance/2014_Samozino_FV-Imbalance.pdf +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/pdfs/jump-performance/2016_Jimenez-Reyes_Force-Velocity-Training.pdf +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/pdfs/jump-performance/2016_Morin-Samozino_Power-Force-Velocity-Profiles.pdf +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/pdfs/jump-performance/2018_Garcia-Ramos_Two-Point-Method-Optimization.pdf +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/pdfs/jump-performance/2022_Wells_Golf-Clubhead-CMJ.pdf +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/pdfs/running-biomechanics/2005_Morin_Running-Stiffness-Measurement.pdf +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/pdfs/running-biomechanics/2015_Balsalobre-Fernandez_Strength-Training-Running-Economy.pdf +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/pdfs/running-biomechanics/2016_Balsalobre-Fernandez_iPhone-Running-Mechanics.pdf +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/pdfs/running-biomechanics/2016_Moore_Economical-Running-Technique.pdf +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/pdfs/running-biomechanics/2020_Filter_Curve-Sprint-Test-Soccer.pdf +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/pdfs/running-biomechanics/2020_Harper_Horizontal-Deceleration-Radar.pdf +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/pdfs/running-biomechanics/2021_vanOeveren_Running-Biomechanics-Synthesis.pdf +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/pdfs/running-biomechanics/2024_Bramah_Sprint-Mechanics-Assessment-Score.pdf +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/pdfs/smartphone-technology/2015_Balsalobre-Fernandez_iPhone-Vertical-Jump.pdf +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/pdfs/smartphone-technology/2022_Bishop_MyJumpLab-Validation.pdf +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/pdfs/velocity-based-training/2011_Jidovtseff_Load-Velocity-1RM-Prediction.pdf +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/pdfs/velocity-based-training/2016_Conceicao_Movement-Velocity-Lower-Limb.pdf +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/pdfs/velocity-based-training/2016_Pareja-Blanco_Velocity-Loss-Training.pdf +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/pdfs/velocity-based-training/2017_Balsalobre-Fernandez_Barbell-Velocity-1RM.pdf +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/pdfs/velocity-based-training/2020_Balsalobre-Fernandez_Barbell-Trajectory-Snatch.pdf +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/research/thirdparty/pdfs/velocity-based-training/2023_Balsalobre-Fernandez_AI-Barbell-Velocity.pdf +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/strategy/1-STRATEGIC_SUMMARY.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/strategy/2-STRATEGIC_ANALYSIS.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/strategy/MVP_FEEDBACK_COLLECTION.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/strategy/MVP_VALIDATION_CHECKPOINTS.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/strategy/README.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/strategy/STYLE_GUIDE.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/strategy/agent-assessments/BACKEND_ARCHITECTURE/01-executive-summary.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/strategy/agent-assessments/BACKEND_ARCHITECTURE/02-technical-assessment.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/strategy/agent-assessments/BACKEND_ARCHITECTURE/03-refactoring-roadmap.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/strategy/agent-assessments/BACKEND_ARCHITECTURE/README.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/strategy/agent-assessments/BIOMECHANICS/01-executive-summary.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/strategy/agent-assessments/BIOMECHANICS/02-technical-assessment.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/strategy/agent-assessments/BIOMECHANICS/03-reference-guide.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/strategy/agent-assessments/BIOMECHANICS/README.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/strategy/agent-assessments/COMPUTER_VISION/01-executive-summary.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/strategy/agent-assessments/COMPUTER_VISION/02-real-time-architecture.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/strategy/agent-assessments/COMPUTER_VISION/03-implementation-checklist.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/strategy/agent-assessments/COMPUTER_VISION/README.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/strategy/agent-assessments/CONSOLIDATED/01-agent-consensus.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/strategy/agent-assessments/CONSOLIDATED/02-critical-findings.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/strategy/agent-assessments/CONSOLIDATED/03-roadmap-adjustments.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/strategy/agent-assessments/CONSOLIDATED/04-decision-points.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/strategy/agent-assessments/CONSOLIDATED/README.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/strategy/agent-assessments/CONSOLIDATED/risk-register.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/strategy/agent-assessments/CONSOLIDATED/timeline-roadmap.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/strategy/agent-assessments/DEVOPS_CI_CD/01-executive-summary.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/strategy/agent-assessments/DEVOPS_CI_CD/02-infrastructure-assessment.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/strategy/agent-assessments/DEVOPS_CI_CD/03-implementation-roadmap.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/strategy/agent-assessments/DEVOPS_CI_CD/README.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/strategy/agent-assessments/ML_DATA_SCIENCE/01-executive-summary.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/strategy/agent-assessments/ML_DATA_SCIENCE/02-technical-assessment.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/strategy/agent-assessments/ML_DATA_SCIENCE/03-parameter-specifications.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/strategy/agent-assessments/ML_DATA_SCIENCE/README.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/strategy/agent-assessments/QA_TESTING/01-executive-summary.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/strategy/agent-assessments/QA_TESTING/02-roadmap-assessment.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/strategy/agent-assessments/QA_TESTING/03-testing-checklists.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/strategy/agent-assessments/QA_TESTING/README.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/strategy/agent-assessments/TECHNICAL_WRITING/01-executive-summary.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/strategy/agent-assessments/TECHNICAL_WRITING/02-documentation-strategy.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/strategy/agent-assessments/TECHNICAL_WRITING/03-action-plan.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/strategy/agent-assessments/TECHNICAL_WRITING/README.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/strategy/pose2sim-migration-evaluation.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/technical/framerate.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/technical/implementation-details.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/technical/imu-metadata.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/technical/real-time-analysis.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/technical/triple-extension.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/translations/es/camera-setup.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/validation/determinism-test.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/validation/known-height-validation.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/docs/validation-status.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/examples/bulk/README.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/examples/bulk/bulk_processing.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/examples/bulk/simple_example.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/examples/programmatic_usage.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/frontend/.editorconfig +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/frontend/.env.example +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/frontend/.gitattributes +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/frontend/.gitignore +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/frontend/.yarn/releases/yarn-4.12.0.cjs +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/frontend/.yarnrc.yml +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/frontend/README.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/frontend/index.html +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/frontend/package.json +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/frontend/src/components/Auth.tsx +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/frontend/src/components/ErrorBoundary.tsx +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/frontend/src/components/ErrorDisplay.tsx +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/frontend/src/components/LoadingSpinner.tsx +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/frontend/src/components/RecentUploads.tsx +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/frontend/src/components/ResultsDisplay.tsx +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/frontend/src/components/ResultsSkeleton.tsx +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/frontend/src/hooks/useAuth.ts +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/frontend/src/hooks/useBackendVersion.ts +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/frontend/src/hooks/useRecentUploads.ts +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/frontend/src/lib/supabase.ts +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/frontend/src/main.tsx +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/frontend/src/types/api.ts +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/frontend/src/vite-env.d.ts +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/frontend/vercel.json +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/frontend/vite.config.ts +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/frontend/yarn.lock +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/justfile +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/local_dev.sh +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/mkdocs.yml +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/presentation/.gitignore +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/presentation/README.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/presentation/demos/.gitignore +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/presentation/demos/README.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/presentation/demos/api_demo.ipynb +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/presentation/demos/batch_processing_demo.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/presentation/demos/sample_data/.gitkeep +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/presentation/presentation_guide.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/presentation/revealjs/.gitignore +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/presentation/revealjs/Makefile +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/presentation/revealjs/README.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/presentation/revealjs/slides.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/presentation/speaker_script.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/requirements-docs.txt +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/samples/cmjs/README.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/scripts/README.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/scripts/SCRIPTS_QUICKREF.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/scripts/analyze_determinism_variance.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/scripts/basic-memory-utils.sh +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/scripts/debug_contact_states.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/scripts/debug_detection.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/scripts/find_unused_features.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/scripts/generate_test_data.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/scripts/optimize_detection_params.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/scripts/plot_cmj_velocities.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/scripts/plot_validation_results.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/scripts/plot_velocities.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/scripts/prepare_ground_truth.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/scripts/project/README.md +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/scripts/project/add-issue.sh +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/scripts/project/batch-set-fields.sh +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/scripts/project/helpers.sh +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/scripts/project/list.sh +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/scripts/project/set-field.sh +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/scripts/project/set-status.sh +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/scripts/project/summary.sh +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/scripts/project.sh +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/scripts/setup-github-deploy.sh +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/scripts/setup-google-oauth.sh +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/scripts/setup-supabase-local.sh +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/scripts/setup-supabase-production.sh +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/scripts/test_acceleration_standing.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/scripts/test_determinism.sh +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/scripts/test_drop_start_debug.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/scripts/validate_known_heights.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/sonar-project.properties +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/src/kinemotion/__init__.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/src/kinemotion/api.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/src/kinemotion/cli.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/src/kinemotion/cmj/__init__.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/src/kinemotion/cmj/analysis.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/src/kinemotion/cmj/cli.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/src/kinemotion/cmj/debug_overlay.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/src/kinemotion/cmj/joint_angles.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/src/kinemotion/cmj/kinematics.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/src/kinemotion/cmj/metrics_validator.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/src/kinemotion/cmj/validation_bounds.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/src/kinemotion/core/__init__.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/src/kinemotion/core/auto_tuning.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/src/kinemotion/core/cli_utils.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/src/kinemotion/core/debug_overlay_utils.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/src/kinemotion/core/determinism.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/src/kinemotion/core/experimental.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/src/kinemotion/core/filtering.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/src/kinemotion/core/formatting.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/src/kinemotion/core/metadata.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/src/kinemotion/core/pose.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/src/kinemotion/core/quality.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/src/kinemotion/core/smoothing.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/src/kinemotion/core/timing.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/src/kinemotion/core/validation.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/src/kinemotion/core/video_io.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/src/kinemotion/dropjump/__init__.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/src/kinemotion/dropjump/analysis.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/src/kinemotion/dropjump/cli.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/src/kinemotion/dropjump/debug_overlay.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/src/kinemotion/dropjump/kinematics.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/src/kinemotion/dropjump/metrics_validator.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/src/kinemotion/dropjump/validation_bounds.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/src/kinemotion/py.typed +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/tests/__init__.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/tests/cli/__init__.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/tests/cli/test_cmj.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/tests/cli/test_dropjump.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/tests/cli/test_imports.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/tests/cmj/__init__.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/tests/cmj/test_analysis.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/tests/cmj/test_api.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/tests/cmj/test_joint_angles.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/tests/cmj/test_kinematics.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/tests/cmj/test_physiological_bounds.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/tests/conftest.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/tests/core/__init__.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/tests/core/test_auto_tuning.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/tests/core/test_filtering.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/tests/core/test_formatting.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/tests/core/test_metadata.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/tests/core/test_pose.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/tests/core/test_quality.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/tests/core/test_smoothing.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/tests/core/test_timing.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/tests/core/test_validation.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/tests/core/test_video_io.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/tests/dropjump/__init__.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/tests/dropjump/test_adaptive_threshold.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/tests/dropjump/test_analysis.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/tests/dropjump/test_api.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/tests/dropjump/test_contact_detection.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/tests/dropjump/test_kinematics.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/tests/dropjump/test_physiological_bounds.py +0 -0
- {kinemotion-0.41.3 → kinemotion-0.42.0}/tests/dropjump/test_validation_integration.py +0 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Cloud Run CPU Specifications Investigation
|
|
3
|
+
type: note
|
|
4
|
+
permalink: api/cloud-run-cpu-specifications-investigation
|
|
5
|
+
tags:
|
|
6
|
+
- cloud-run
|
|
7
|
+
- infrastructure
|
|
8
|
+
- cpu-specs
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Cloud Run 1 CPU & 4GB RAM Configuration
|
|
12
|
+
|
|
13
|
+
### Key Finding: Cloud Run Abstracts Infrastructure Details
|
|
14
|
+
|
|
15
|
+
Cloud Run does **not** publicly expose specific CPU processor details (family, generation, clock speed) for its container instances. This is by design - Cloud Run prioritizes abstraction over infrastructure visibility.
|
|
16
|
+
|
|
17
|
+
### What We Know:
|
|
18
|
+
- **Default CPU limit**: 1 CPU
|
|
19
|
+
- **Max memory with 1 CPU**: 4 GiB (matches user config)
|
|
20
|
+
- **Allocation model**: vCPU (virtual CPU, not pinned to physical core)
|
|
21
|
+
- **Underlying platform**: Runs on Google Cloud infrastructure (likely shares hardware with Compute Engine)
|
|
22
|
+
|
|
23
|
+
### Compute Engine CPU Options (for reference):
|
|
24
|
+
Cloud Run doesn't let you choose, but Compute Engine uses:
|
|
25
|
+
- **Intel Xeon processors** (Skylake through Granite Rapids generations)
|
|
26
|
+
- Base frequencies: 1.9 - 3.1 GHz depending on generation
|
|
27
|
+
- Turbo frequencies: 2.6 - 4.2 GHz
|
|
28
|
+
- **AMD EPYC processors** (Rome through Turin generations)
|
|
29
|
+
- Base frequencies: 2.25 - 2.7 GHz
|
|
30
|
+
- Max boost: 3.3 - 4.1 GHz
|
|
31
|
+
|
|
32
|
+
### To Determine Actual Hardware:
|
|
33
|
+
1. **CPU info from OS**: `lscpu` or `/proc/cpuinfo` inside container (reveals actual hypervisor CPU)
|
|
34
|
+
2. **Runtime profiling**: Use CPU benchmarks to infer processor type
|
|
35
|
+
3. **Google docs**: No official specification available - intentionally abstracted
|
|
36
|
+
|
|
37
|
+
### Practical Implication:
|
|
38
|
+
You cannot guarantee a specific processor family or clock speed in Cloud Run. Google allocates based on availability and load balancing across their infrastructure.
|
|
@@ -221,3 +221,53 @@ if json_output:
|
|
|
221
221
|
- **Linting**: 0 errors (ruff)
|
|
222
222
|
- **Duplicat code**: < 3% (maintained)
|
|
223
223
|
- **Git commits**: Conventional format with full context
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
## Production Validation (2025-12-10)
|
|
227
|
+
|
|
228
|
+
### Request Analysis
|
|
229
|
+
- **Request ID**: f2316e09-cc7d-4a53-98db-27a343dac7e0
|
|
230
|
+
- **Total Duration**: 278.8 seconds (278,249.09 ms)
|
|
231
|
+
- **Status**: ✅ Success (200 OK)
|
|
232
|
+
|
|
233
|
+
### Confirmed Timing Breakdown
|
|
234
|
+
|
|
235
|
+
| Stage | Duration | % of Total |
|
|
236
|
+
|-------|----------|-----------|
|
|
237
|
+
| Debug video generation | 254.8s | 91.4% |
|
|
238
|
+
| Pose tracking | 15.5s | 5.6% |
|
|
239
|
+
| R2 debug video upload | 3.4s | 1.2% |
|
|
240
|
+
| R2 results upload | 0.9s | 0.3% |
|
|
241
|
+
| Smoothing | 0.3s | 0.1% |
|
|
242
|
+
| Parameter auto-tuning | 2.8ms | <0.1% |
|
|
243
|
+
| Other stages | 3.9s | 1.4% |
|
|
244
|
+
|
|
245
|
+
### Validation Results
|
|
246
|
+
|
|
247
|
+
✅ **PoseTracker Pool**: Successfully reused across request - no re-initialization overhead
|
|
248
|
+
✅ **Timing Instrumentation**: Capturing 100% of processing pipeline
|
|
249
|
+
✅ **Root Cause Identified**: Debug video generation is 91.4% of total time (expected)
|
|
250
|
+
✅ **All Time Accounted For**: Previous 370-second gap is now fully instrumented
|
|
251
|
+
|
|
252
|
+
### Analysis
|
|
253
|
+
|
|
254
|
+
The performance fixes are working correctly in production:
|
|
255
|
+
|
|
256
|
+
1. **Pool Efficiency**: MediaPipe Pose model not reloaded per request
|
|
257
|
+
2. **Complete Visibility**: All stages now measured with proper timing
|
|
258
|
+
3. **Expected Cost**: Debug video rendering is inherently expensive:
|
|
259
|
+
- Processes every frame in sequence
|
|
260
|
+
- Renders pose skeleton + landmarks overlay
|
|
261
|
+
- Encodes to video format
|
|
262
|
+
- Uploads to cloud storage (3.4s network time)
|
|
263
|
+
|
|
264
|
+
### Next Steps
|
|
265
|
+
|
|
266
|
+
The timing is now fully visible. Future optimization opportunities:
|
|
267
|
+
|
|
268
|
+
1. **Async debug video generation** - Could return results immediately while rendering continues
|
|
269
|
+
2. **Parallel uploads** - R2 upload could happen while generating video
|
|
270
|
+
3. **Optional debug video** - Make debug video generation opt-in for faster responses
|
|
271
|
+
4. **Frame sampling** - Render every Nth frame for faster preview generation
|
|
272
|
+
|
|
273
|
+
However, the current performance is acceptable for the use case. All 278 seconds are accounted for and the PoseTracker pool optimization is delivering value by eliminating tracker re-initialization costs.
|
|
@@ -7,6 +7,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
<!-- version list -->
|
|
9
9
|
|
|
10
|
+
## v0.42.0 (2025-12-10)
|
|
11
|
+
|
|
12
|
+
### Documentation
|
|
13
|
+
|
|
14
|
+
- Add some more docs about cpu settings
|
|
15
|
+
([`ebd0f5b`](https://github.com/feniix/kinemotion/commit/ebd0f5b2c9e1b25a9c95d04b32c35f27560f3584))
|
|
16
|
+
|
|
17
|
+
- Performance-optimization-pose-tracker-pool
|
|
18
|
+
([`c1b2e76`](https://github.com/feniix/kinemotion/commit/c1b2e7665371e8384261044a4f3e10202df78dc2))
|
|
19
|
+
|
|
20
|
+
### Features
|
|
21
|
+
|
|
22
|
+
- Add debug toggle for optional video overlay generation
|
|
23
|
+
([`afd0b49`](https://github.com/feniix/kinemotion/commit/afd0b496d3c33d9428c71d417b9cb4b18a5dd9cc))
|
|
24
|
+
|
|
25
|
+
|
|
10
26
|
## v0.41.3 (2025-12-10)
|
|
11
27
|
|
|
12
28
|
### Bug Fixes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: kinemotion
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.42.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
|
|
@@ -507,6 +507,7 @@ async def analyze_video(
|
|
|
507
507
|
file: UploadFile = File(...), # noqa: B008
|
|
508
508
|
jump_type: str = Form("cmj"), # noqa: B008
|
|
509
509
|
quality: str = Form("balanced"), # noqa: B008
|
|
510
|
+
debug: str = Form("false"), # noqa: B008
|
|
510
511
|
referer: str | None = Header(None), # noqa: B008
|
|
511
512
|
x_test_password: str | None = Header(None), # noqa: B008
|
|
512
513
|
) -> JSONResponse:
|
|
@@ -520,6 +521,7 @@ async def analyze_video(
|
|
|
520
521
|
file: Video file to analyze (multipart/form-data)
|
|
521
522
|
jump_type: Type of jump ("drop_jump" or "cmj")
|
|
522
523
|
quality: Analysis quality preset ("fast", "balanced", or "accurate")
|
|
524
|
+
debug: Debug overlay flag ("true" or "false", default "false")
|
|
523
525
|
|
|
524
526
|
Returns:
|
|
525
527
|
JSON response with metrics or error details
|
|
@@ -572,9 +574,14 @@ async def analyze_video(
|
|
|
572
574
|
save_duration = time.time() - save_start
|
|
573
575
|
logger.info("timing_video_file_save", duration_ms=round(save_duration * 1000))
|
|
574
576
|
|
|
575
|
-
#
|
|
576
|
-
|
|
577
|
-
|
|
577
|
+
# Convert debug string to boolean
|
|
578
|
+
enable_debug = debug.lower() == "true"
|
|
579
|
+
|
|
580
|
+
# Create temporary path for debug video output (only if debug enabled)
|
|
581
|
+
temp_debug_video_path = None
|
|
582
|
+
if enable_debug:
|
|
583
|
+
with tempfile.NamedTemporaryFile(suffix=".mp4", delete=False) as temp_debug:
|
|
584
|
+
temp_debug_video_path = temp_debug.name
|
|
578
585
|
|
|
579
586
|
# Upload to R2 if client available
|
|
580
587
|
if r2_client:
|
|
@@ -611,7 +618,7 @@ async def analyze_video(
|
|
|
611
618
|
temp_video_path,
|
|
612
619
|
jump_type,
|
|
613
620
|
quality,
|
|
614
|
-
output_video=temp_debug_video_path,
|
|
621
|
+
output_video=temp_debug_video_path if enable_debug else None,
|
|
615
622
|
timer=timer,
|
|
616
623
|
pose_tracker=pose_tracker,
|
|
617
624
|
) # type: ignore[arg-type]
|
|
@@ -11,7 +11,7 @@ import { useBackendVersion } from './hooks/useBackendVersion'
|
|
|
11
11
|
|
|
12
12
|
function App() {
|
|
13
13
|
const { user, loading: authLoading, signOut } = useAuth()
|
|
14
|
-
const { file, jumpType, loading, uploadProgress, metrics, error, setFile, setJumpType, analyze, retry } = useAnalysis()
|
|
14
|
+
const { file, jumpType, loading, uploadProgress, metrics, error, enableDebug, setFile, setJumpType, setEnableDebug, analyze, retry } = useAnalysis()
|
|
15
15
|
const { recentUploads, addRecentUpload, clearRecentUploads } = useRecentUploads()
|
|
16
16
|
const { backendVersion, kinemotionVersion } = useBackendVersion()
|
|
17
17
|
|
|
@@ -70,9 +70,11 @@ function App() {
|
|
|
70
70
|
file={file}
|
|
71
71
|
jumpType={jumpType}
|
|
72
72
|
loading={loading}
|
|
73
|
+
enableDebug={enableDebug}
|
|
73
74
|
recentUploads={recentUploads}
|
|
74
75
|
onFileChange={setFile}
|
|
75
76
|
onJumpTypeChange={setJumpType}
|
|
77
|
+
onEnableDebugChange={setEnableDebug}
|
|
76
78
|
onAnalyze={handleAnalyze}
|
|
77
79
|
onClearHistory={clearRecentUploads}
|
|
78
80
|
/>
|
|
@@ -6,9 +6,11 @@ interface UploadFormProps {
|
|
|
6
6
|
file: File | null
|
|
7
7
|
jumpType: 'cmj' | 'dropjump'
|
|
8
8
|
loading: boolean
|
|
9
|
+
enableDebug: boolean
|
|
9
10
|
recentUploads: RecentUpload[]
|
|
10
11
|
onFileChange: (file: File | null) => void
|
|
11
12
|
onJumpTypeChange: (jumpType: 'cmj' | 'dropjump') => void
|
|
13
|
+
onEnableDebugChange: (enable: boolean) => void
|
|
12
14
|
onAnalyze: () => void
|
|
13
15
|
onClearHistory?: () => void
|
|
14
16
|
}
|
|
@@ -19,9 +21,11 @@ function UploadForm({
|
|
|
19
21
|
file,
|
|
20
22
|
jumpType,
|
|
21
23
|
loading,
|
|
24
|
+
enableDebug,
|
|
22
25
|
recentUploads,
|
|
23
26
|
onFileChange,
|
|
24
27
|
onJumpTypeChange,
|
|
28
|
+
onEnableDebugChange,
|
|
25
29
|
onAnalyze,
|
|
26
30
|
onClearHistory,
|
|
27
31
|
}: UploadFormProps) {
|
|
@@ -157,6 +161,25 @@ function UploadForm({
|
|
|
157
161
|
</select>
|
|
158
162
|
</div>
|
|
159
163
|
|
|
164
|
+
<div className="form-group checkbox-group">
|
|
165
|
+
<label htmlFor="enable-debug" className="checkbox-label">
|
|
166
|
+
<input
|
|
167
|
+
id="enable-debug"
|
|
168
|
+
type="checkbox"
|
|
169
|
+
checked={enableDebug}
|
|
170
|
+
onChange={(e) => onEnableDebugChange(e.target.checked)}
|
|
171
|
+
disabled={loading}
|
|
172
|
+
className="checkbox-input"
|
|
173
|
+
/>
|
|
174
|
+
<span>Enable debug video overlay</span>
|
|
175
|
+
</label>
|
|
176
|
+
<p className="checkbox-hint">
|
|
177
|
+
{enableDebug
|
|
178
|
+
? 'Debug video will be generated and available for download (~4-5 min slower)'
|
|
179
|
+
: 'Results only (faster analysis ~20 seconds)'}
|
|
180
|
+
</p>
|
|
181
|
+
</div>
|
|
182
|
+
|
|
160
183
|
<button
|
|
161
184
|
className="analyze-button"
|
|
162
185
|
onClick={onAnalyze}
|
|
@@ -9,11 +9,13 @@ interface UseAnalysisState {
|
|
|
9
9
|
uploadProgress: number
|
|
10
10
|
metrics: AnalysisResponse | null
|
|
11
11
|
error: string | null
|
|
12
|
+
enableDebug: boolean
|
|
12
13
|
}
|
|
13
14
|
|
|
14
15
|
interface UseAnalysisActions {
|
|
15
16
|
setFile: (file: File | null) => void
|
|
16
17
|
setJumpType: (jumpType: JumpType) => void
|
|
18
|
+
setEnableDebug: (enable: boolean) => void
|
|
17
19
|
analyze: () => Promise<void>
|
|
18
20
|
retry: () => Promise<void>
|
|
19
21
|
reset: () => void
|
|
@@ -30,6 +32,7 @@ export function useAnalysis(): UseAnalysisState & UseAnalysisActions {
|
|
|
30
32
|
const [uploadProgress, setUploadProgress] = useState(0)
|
|
31
33
|
const [metrics, setMetrics] = useState<AnalysisResponse | null>(null)
|
|
32
34
|
const [error, setError] = useState<string | null>(null)
|
|
35
|
+
const [enableDebug, setEnableDebug] = useState(false)
|
|
33
36
|
|
|
34
37
|
const analyze = async () => {
|
|
35
38
|
if (!file) {
|
|
@@ -47,6 +50,7 @@ export function useAnalysis(): UseAnalysisState & UseAnalysisActions {
|
|
|
47
50
|
// Convert frontend format (cmj/dropjump) to backend format (cmj/drop_jump)
|
|
48
51
|
const backendJumpType = jumpType === 'dropjump' ? 'drop_jump' : jumpType
|
|
49
52
|
formData.append('jump_type', backendJumpType)
|
|
53
|
+
formData.append('debug', enableDebug ? 'true' : 'false')
|
|
50
54
|
|
|
51
55
|
try {
|
|
52
56
|
// Use environment variable for API URL in production, or relative proxy in development
|
|
@@ -134,6 +138,7 @@ export function useAnalysis(): UseAnalysisState & UseAnalysisActions {
|
|
|
134
138
|
setUploadProgress(0)
|
|
135
139
|
setMetrics(null)
|
|
136
140
|
setError(null)
|
|
141
|
+
setEnableDebug(false)
|
|
137
142
|
}
|
|
138
143
|
|
|
139
144
|
return {
|
|
@@ -144,9 +149,11 @@ export function useAnalysis(): UseAnalysisState & UseAnalysisActions {
|
|
|
144
149
|
uploadProgress,
|
|
145
150
|
metrics,
|
|
146
151
|
error,
|
|
152
|
+
enableDebug,
|
|
147
153
|
// Actions
|
|
148
154
|
setFile,
|
|
149
155
|
setJumpType,
|
|
156
|
+
setEnableDebug,
|
|
150
157
|
analyze,
|
|
151
158
|
retry,
|
|
152
159
|
reset,
|
|
@@ -603,6 +603,39 @@ body {
|
|
|
603
603
|
transform: translateY(-1px);
|
|
604
604
|
}
|
|
605
605
|
|
|
606
|
+
/* Checkbox group */
|
|
607
|
+
.checkbox-group {
|
|
608
|
+
margin-bottom: 1.5rem;
|
|
609
|
+
}
|
|
610
|
+
|
|
611
|
+
.checkbox-label {
|
|
612
|
+
display: flex;
|
|
613
|
+
align-items: center;
|
|
614
|
+
gap: 0.75rem;
|
|
615
|
+
cursor: pointer;
|
|
616
|
+
font-weight: 500;
|
|
617
|
+
margin-bottom: 0.5rem;
|
|
618
|
+
}
|
|
619
|
+
|
|
620
|
+
.checkbox-input {
|
|
621
|
+
width: 18px;
|
|
622
|
+
height: 18px;
|
|
623
|
+
cursor: pointer;
|
|
624
|
+
accent-color: var(--primary-color);
|
|
625
|
+
}
|
|
626
|
+
|
|
627
|
+
.checkbox-input:disabled {
|
|
628
|
+
opacity: 0.5;
|
|
629
|
+
cursor: not-allowed;
|
|
630
|
+
}
|
|
631
|
+
|
|
632
|
+
.checkbox-hint {
|
|
633
|
+
margin: 0.5rem 0 0 1.75rem;
|
|
634
|
+
font-size: 0.85rem;
|
|
635
|
+
color: var(--text-secondary);
|
|
636
|
+
font-weight: normal;
|
|
637
|
+
}
|
|
638
|
+
|
|
606
639
|
/* Animations */
|
|
607
640
|
@keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
|
|
608
641
|
.animate-fade-in { animation: fadeIn 0.4s ease-out forwards; }
|
|
File without changes
|
|
File without changes
|
{kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/api/supabase-authentication-setup-guide.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/authentication/supabase-quick-start-guide.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/codebase/codebase-architecture-overview.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/backend-code-coverage-analysis.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/claude-code-hook-configuration.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/hook-complete-audit-summary.md
RENAMED
|
File without changes
|
{kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/development/hook-configuration-audit.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/strategy/mvp-feedback-collection-plan.md
RENAMED
|
File without changes
|
{kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/strategy/mvp-first-strategic-direction.md
RENAMED
|
File without changes
|
{kinemotion-0.41.3 → kinemotion-0.42.0}/.basic-memory/strategy/mvp-validation-checkpoints.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|