BikeControl (SwiftControl)
Use Zwift Click, Zwift Play, Shimano Di2, or any Bluetooth controller with MyWhoosh, Rouvy, Zwift, and more. Free to try on iOS, Android, Windows, and macOS.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
AI-powered climbing technique analysis
翻訳待ち
Loading the full README.
Read the full README ↗AI-powered climbing technique analysis. Upload a bouldering video, get feedback like having a coach in your pocket.
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Next.js │────▶│ FastAPI │────▶│ MediaPipe │
│ Frontend │ │ Backend │ │ Pose │
└─────────────┘ └─────────────┘ └─────────────┘
│
▼
┌─────────────┐
│ Claude │
│ Coach │
└─────────────┘
Run the entire stack with a single command:
# 1. Set your API key
cp .env.example .env
# Edit .env and add your ANTHROPIC_API_KEY
# 2. Start everything
docker compose up
# Or run in background
docker compose up -d
To stop:
docker compose down
# To also remove volumes
docker compose down -v
cd backend
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# Set environment variables
export ANTHROPIC_API_KEY=your_key_here
# Run server
uvicorn main:app --reload
cd frontend
npm install
npm run dev
| Method | Endpoint | Description |
|---|---|---|
| POST | /analyze | Upload video for analysis |
| GET | /job/{id} | Get job status |
| GET | /job/{id}/result | Get analysis results |
| GET | /video/{id} | Download annotated video |
| DELETE | /job/{id} | Delete job and files |
See also: docs/heuristics.md for the full list of backend heuristics and research citations.
Ratio of direct distance to total distance traveled by hips. Higher = more controlled movement.
Measures micro-adjustments after foot placements. Lower jitter = "silent feet".
Tracks shoulder-hip alignment. Higher score = better core engagement.
Analyzes consistency of move/pause patterns. Low variance = deliberate climbing.
# Using Railway
railway login
railway init
railway up
cd frontend
vercel
Set NEXT_PUBLIC_API_URL to your backend URL.
ANTHROPIC_API_KEY - For coach feedback generationUPLOAD_DIR - Video upload directory (default: /tmp/betaview/uploads)OUTPUT_DIR - Processed video directory (default: /tmp/betaview/outputs)NEXT_PUBLIC_API_URL - Backend API URLMIT
PRs welcome! Please read CONTRIBUTING.md first.
Set CORS_ORIGINS on the backend to a comma-separated list of exact frontend
origins, for example https://your-domain.example. The default permits only
local development on port 3000. Do not include paths, trailing slashes or
wildcards. Browser credentials are disabled because the API does not use cookie
authentication. Compose forwards this setting from its environment.
CORS controls browser access; it does not authenticate callers or stop direct
HTTP clients. Existing upload quotas and size limits remain separate controls.
Run the focused regression tests with cd backend && python -m unittest test_cors_config after installing FastAPI and httpx.