[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-94672":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":15,"stars30d":15,"stars90d":15,"forks30d":15,"starsTrendScore":15,"compositeScore":16,"rankGlobal":10,"rankLanguage":10,"license":17,"archived":18,"fork":18,"defaultBranch":19,"hasWiki":20,"hasPages":18,"topics":21,"createdAt":10,"pushedAt":10,"updatedAt":29,"readmeContent":30,"aiSummary":31,"trendingCount":15,"starSnapshotCount":15,"syncStatus":13,"lastSyncTime":32,"discoverSource":33},94672,"bandminton","Yixuan-Wu39\u002Fbandminton","Yixuan-Wu39","Open-source wearable badminton motion analysis with lightweight on-device machine learning.","",null,"JavaScript",103,2,1,0,41.43,"MIT License",false,"main",true,[22,23,24,25,26,27,28],"accelerometer","badminton","fitness-tracking","machine-learning","motion-analysis","wearable","xiaomi","2026-08-24 04:01:22","# Bandminton\n\n[![Test](https:\u002F\u002Fgithub.com\u002FYixuan-Wu39\u002Fbandminton\u002Factions\u002Fworkflows\u002Ftest.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002FYixuan-Wu39\u002Fbandminton\u002Factions\u002Fworkflows\u002Ftest.yml)\n[![License: MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-yellow.svg)](LICENSE)\n\n**Open, safety-conscious badminton motion analysis for Xiaomi Vela wearables.**\n\nBandminton is a lightweight Vela JS Quick App and data toolchain for exploring\nbadminton swing structure on constrained wearables. It is designed around a\nsimple principle: classify the *shape and direction* of a motion trajectory,\nthen analyse personal swing intensity separately.\n\nThe project currently targets right-handed use and four structural classes:\n\n- **Forehand overhead** (`forehand_overhead`)\n- **Backhand overhead** (`backhand_overhead`)\n- **Forehand underhand** (`forehand_underhand`)\n- **Backhand underhand** (`backhand_underhand`)\n\nIt does **not** claim to measure racket-head speed, shuttle speed, calories,\nmedical metrics, or professional coaching quality.\n\n## What is in this repository\n\n- A Vela JS main application for on-device swing feedback and session portraits.\n- A separate collector application that records continuous, labelled\n  accelerometer segments without forcing on-device single-swing splits.\n- Reproducible Node.js scripts for data recovery, de-duplication, feature\n  extraction, model training, validation, and on-band model packing.\n- A lightweight, on-device trajectory model and state machine.\n- Tests, device manifests, and release-safety documentation.\n\nThe Android receiver, raw volunteer recordings, signed builds, and proprietary\nSDK binaries are deliberately excluded from the public repository.\n\n## Portability and localisation\n\nThe current implementation is Xiaomi Vela-specific, but the core design is not:\ncontinuous signed three-axis acceleration, candidate-motion gating, trajectory\nfeatures, a compact classifier, and session-level aggregation can be ported to\nother smartwatch and fitness-band platforms. A port must still be treated as a\nnew device-validation effort. Sampling rate, axis conventions, timestamps,\nsensor calibration, application lifecycle, display constraints, power behaviour,\nand permission models vary by vendor and can materially affect recognition.\n\nThe wearable UI is intentionally Chinese in this first release. Xiaomi's band\necosystem and the project's initial real-device users are primarily Chinese, so\nthe on-device interface prioritises clear Chinese use during installation,\ncollection, and training. The engineering entry points, data contracts, model\ndocumentation, and contribution process are maintained in English to support\ninternational review and ports. Localised UI translations are welcome when they\nare tested on the target device.\n\n## Future sensor integration\n\nThe present classifier uses accelerometer trajectories only. This is a deliberate\nbaseline rather than a claim that additional sensors are unnecessary.\n\n- **Gyroscope integration:** where a wearable exposes reliable, documented,\n  time-synchronised gyroscope samples, a future port can evaluate angular\n  velocity and orientation-change features alongside acceleration. The target is\n  improved motion-context and rejection behaviour, especially for structurally\n  similar wrist paths. Gyroscope data will not be assumed available across\n  Xiaomi or other vendors, and any fusion model must be calibrated and evaluated\n  per device family before release.\n- **Heart-rate integration:** where continuous exercise heart-rate access is\n  officially supported, heart rate may be used as optional session-load context\n  (for example, time in a relative intensity range). It will not be used as an\n  input to determine a swing class, as a medical measurement, or as the basis\n  of a calorie claim. Availability, sampling cadence, wear-state quality,\n  consent, privacy handling, and battery cost must be verified for each\n  platform before this capability is enabled.\n\n## Current validation status\n\nAn internal evaluation associated with the initial right-handed trajectory\nmodel reported **90.8% accuracy** and **90.7% macro F1** in controlled air\nswings. It used leave-one-recording-out validation over 130 labelled swing\nwindows from 13 recordings. This is a development signal, not a claim about\nreal matches, other users, left-handed wear, or every Xiaomi wearable. Read\nthe [model card](docs\u002FMODEL_CARD.md) before quoting or comparing this result.\n\n## Safety and compatibility\n\nBandminton is a normal Vela Quick App, not firmware. It never flashes device\nsoftware, accesses system partitions, or starts accelerometer collection until\nthe wearer taps **Start**. Still, third-party RPK installation has device and\nfirmware compatibility risk. Only Xiaomi Smart Band 9 Pro has a project\nvalidation path; other packages remain unverified until community testing.\n\nRead [Safety and Testing](docs\u002Fsafety-and-testing.md) and\n[Device Adaptation](docs\u002Fdevice-adaptation.md) before sideloading an RPK.\nFor the engineering path behind the current system, read the\n[development history](docs\u002FDEVELOPMENT_HISTORY.md).\n\n## Development\n\nPrerequisites:\n\n- Node.js 16 or newer\n- pnpm\n- Xiaomi AIoT Toolkit \u002F AIoT IDE for Vela builds\n\n```powershell\npnpm install\npnpm test\npnpm run build:band9pro\n```\n\nThe JSC build script stages the project into an ASCII-only temporary directory\nbefore invoking the Vela toolchain. This avoids known Windows path issues with\nnon-ASCII workspace paths.\n\nUseful commands:\n\n```powershell\npnpm run build:band9pro\npnpm run build:band10pro\npnpm run build:band9\npnpm run build:band10\npnpm run build:collector\npnpm run ml:pipeline -- \"C:\\path\\to\\training-manifest.json\"\npnpm run ml:check -- \"C:\\path\\to\\training-manifest.json\"\n```\n\n## Project direction\n\nSee [Roadmap](docs\u002FROADMAP.md), [Maintenance Policy](docs\u002FMAINTAINING.md),\n[Architecture](docs\u002FARCHITECTURE.md), and [Contributing](CONTRIBUTING.md).\n\n## License\n\nBandminton source code is available under the [MIT License](LICENSE).\n\n## Status\n\nThis is an active experimental project. The main goals are reproducible\nevaluation, conservative claims, safe device testing, and community-led\nvalidation across real hardware.\n","Bandminton 是一个面向羽毛球运动的开源可穿戴设备动作分析工具，专为资源受限的智能手环（如小米Vela平台）设计。它基于三轴加速度计数据，在设备端轻量运行机器学习模型，实时识别四种基础挥拍动作类型（正手\u002F反手高远球、正手\u002F反手挑球），并支持会话级强度分析。项目采用模块化工具链，涵盖数据采集、特征提取、模型训练与嵌入式部署，强调隐私安全与本地计算。适用于业余羽毛球爱好者进行自主动作记录与习惯追踪，不提供专业级生物力学或医疗指标。","2026-08-13 02:30:12","CREATED_QUERY"]