BikeControl (SwiftControl)
使用 Zwift Click、Zwift Play、Shimano Di2,或任何藍牙控制器搭配 MyWhoosh、Rouvy、Zwift 等。可於 iOS、Android、Windows 與 macOS 免費試用。
AI 翻譯
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗Measure jump height from video, frame by frame, in the browser.
Airtime turns a clip of a jump into flight time, contact time and jump height. Open a local video, step to the frame the feet leave the ground and the frame they touch down, and Airtime does the math (h = g·t²/8), including for slow-motion footage.
Airtime has two pages:
/ is a time tool for a clip you just took: mark an in point and an out point and read the time and frame count between them. It saves nothing./alpha is the full app described below: jump marking, analysis, saved sessions and trends. It's still in alpha.Privacy first: videos are loaded from your device into the browser using local object URLs. Airtime does not include an upload API or application backend.
Open the deployed Airtime site in a modern desktop or mobile browser, then choose Open video or drag a video onto the player.
Requirements:
git clone https://github.com/andresaclan/airtime.git
cd airtime
bun install
bun run dev -- --open
The development server starts at http://localhost:5173.
Airtime is built around an approach jump: three marks give contact time, flight time, jump height and RSI. A marking guide under the video shows which step you're on and lights up the button that marks it.
R to slow down) until you're near your last step before the jump, then pause., and . to the first frame your plant foot touches the ground and press Landing (L).T).L). The analysis panel shows the jump.⌘S / Ctrl+S to save. Open the same file later to pick up where you left off.Hide the guide with Hide; bring it back from the keyboard shortcuts dialog (?).
Press ? in the app to see these at any time.
| Shortcut | Action |
|---|---|
Space or K | Play or pause |
, / . | Step one frame backward / forward |
Shift + ← / → | Step one frame backward / forward |
R | Cycle playback speed 1× / ½× / ¼× |
↑ / ↓ | Volume up / down |
M | Mute or unmute |
T | Mark takeoff on this frame |
L | Mark landing on this frame |
[ / ] | Jump to previous / next mark |
Backspace / Delete | Delete the mark at the playhead |
⌘ / Ctrl + Z | Undo a mark change |
⌘ / Ctrl + Shift + Z | Redo a mark change |
A | Show or hide the analysis panel |
⌘ / Ctrl + S | Save the session to this browser |
← / →, Home / End | Scrub the timeline when it has focus |
Airtime accepts common video extensions such as MP4, M4V, MOV, WebM, MKV, AVI, WMV, FLV, MPEG, 3GP, and OGV. Actual playback depends on the codecs supported by the browser and operating system.
Source frame-rate parsing is currently implemented for ISO Base Media File Format containers, including MP4, M4V, and MOV. Other formats can still play when supported by the browser, and their frame rate is measured during playback. If that fails too, Airtime won't mark the video rather than guess its frame rate.
For best results:
requestVideoFrameCallback support for the most accurate runtime playback detection.Airtime is designed for local review:
If you use a hosted deployment, the hosting provider may still collect normal website and infrastructure metadata. See the deployment configuration and hosting provider policies for those details.
Install dependencies with Bun:
bun install
Useful commands:
bun run dev -- --open # Start the Vite development server
bun run check # Run Svelte and TypeScript diagnostics
bun run test # Run unit tests
bun run lint # Check formatting and ESLint rules
bun run format # Format the repository
bun run build # Create the static production build
bun run preview # Preview the production build locally
The project uses:
@sveltejs/adapter-staticBefore opening a pull request, run:
bun run check
bun run test
bun run lint
bun run build
These checks also run in GitHub Actions for pull requests targeting main.
src/
├── lib/
│ ├── components/ # Video viewer, controls, scrubber, analysis panel, dialogs
│ ├── session/ # Saved sessions (IndexedDB), fingerprinting, export/import
│ └── video/ # Frame-rate detection, timecode, marks and jump analysis
└── routes/
├── +page.svelte # The time tool: in and out points, nothing saved
├── alpha/+page.svelte # The full app and its local file lifecycle
└── layout.css # Application theme and shared styles
Airtime is built as a static SvelteKit site:
bun run build