Skyderby
스카이다이브·베이스점프 GPS 데이터를 비행 분석·전국 순위·점수로 변환하고 무료로 시작합니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Formula 1 telemetry and analytics.
Lap-by-lap driver comparison, tyre strategy modelling, ML driver ratings, and an AI race analyst.
Live app ·
API
Most F1 sites give you tables. RaceDelta computes the differences between drivers and explains where they come from.
Root Directory race-delta-backend
Dockerfile Path ./Dockerfile
Health Check /api/healthREADME 전문 보기 ↗Most F1 sites give you tables. RaceDelta computes the differences between drivers and explains where they come from.
Any two drivers, four ways:
| Mode | What it answers |
|---|---|
| Season | Head-to-head on the latest race, plus cumulative points across the year |
| Race | One Grand Prix, lap by lap |
| Track | Every visit to a single circuit |
| Conditions | Wet, dry, safety car, VSC, hot track (≥40 °C), cool track (<25 °C) |
Tyre degradation per compound, stint analysis, pit-stop timing, and a pace model that predicts lap times from stint state. Uses XGBoost when available and falls back to a linear model when it isn't.
Ask questions in plain language ("who's the strongest contender", "what's Antonelli's driving style"). The model answers through tool calls against the same endpoints the UI uses, and shows which tools it called. Runs on NVIDIA NIM or the Anthropic API; without a key it degrades to an offline intent mode.
Live standings, race calendar, session results, per-round analytics with weather telemetry, tyre stint timelines and position-change charts.
| Source | Used for |
|---|---|
| FastF1 | Lap timing, telemetry, weather, track status |
| OpenF1 | Live driver roster, sessions, meetings, stints |
| Jolpica | Standings and schedule — the successor to the retired Ergast API |
The deployed instance ships with a pre-ingested snapshot of the 2026 season: 12 races, 14,101 laps, 762 stints.
Backend
cd race-delta-backend
python -m venv venv && venv/Scripts/activate # Linux/macOS: source venv/bin/activate
pip install -r requirements.txt
cp .env.example .env # then fill in the values you need
python app.py # http://127.0.0.1:8000
The schema is created automatically at startup. To populate the database with a season:
python ingest_local.py
Frontend
cd race-delta-frontend
npm install
echo "VITE_API_BASE=http://127.0.0.1:8000" > .env.local
npm run dev # http://localhost:5173
Backend, all optional except in production:
| Variable | Default | Notes |
|---|---|---|
DATABASE_URL | sqlite:///racedelta.db | Postgres works too |
CORS_ORIGINS | * in dev, empty in production | Comma-separated, no trailing slashes. Production allows nothing until you set it. |
FLASK_ENV | development | production turns off debug and shortens standings computation |
NVIDIA_API_KEY / ANTHROPIC_API_KEY | — | Enables the AI Analyst; NVIDIA takes precedence |
ADMIN_TOKEN | — | Admin ingestion endpoints stay disabled unless set |
RACEDELTA_CACHE_DIR | .cache | Persistent JSON cache with stale-while-revalidate |
FASTF1_CACHE_DIR | ./fastf1_cache | FastF1's on-disk session cache |
Frontend:
| Variable | Notes |
|---|---|
VITE_API_BASE | Backend origin, no trailing slash. Baked in at build time — changing it requires a rebuild. |
Backend — Docker, on any container host. The included Dockerfile is sized for a 512 MB / 0.1 CPU instance: one gunicorn worker with eight threads, and the computed cache plus the season database baked into the image so a cold start serves real data without refetching.
Root Directory race-delta-backend
Dockerfile Path ./Dockerfile
Health Check /api/health
Frontend — any static host. Root directory race-delta-frontend, Vite preset. vercel.json supplies the SPA rewrite that React Router needs for deep links.
Refresh the shipped season data with:
cd race-delta-backend && python ingest_local.py
git add -f data/racedelta.db && git commit -m "chore: refresh season data"
Frontend — React 18, Vite, Tailwind, React Router, Recharts, Plotly, Chart.js, Framer Motion
Backend — Flask, SQLAlchemy, FastF1, pandas, NumPy, scikit-learn, XGBoost (optional), gunicorn
race-delta-backend/
app/
routes/ core, compare, lab, admin, openf1
services/ f1_service, ingestor, feature_store, strategy_lab,
driver_intelligence, race_analyst, compare_lab, cache_store
models.py 10 tables: races, race_sessions, laps, stints,
driver_race_features, drivers, constructors, ...
scripts/ Jolpica/Ergast standings and team lookups
data/ pre-ingested season database
.cache/ precomputed API responses shipped with the image
race-delta-frontend/
src/routes/ Home, Compare, Drivers, Teams, Lab, Strategy, Analyst, Race
src/components/ Navbar, cards, charts, comparison tables
src/api/client.js single source of truth for API access
/api/compare/track-map loads full telemetry and is memory-hungry; it needs more than 512 MB.