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.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기KomplexMojo/NordicAim
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Photograph your target. Confirm shot placement. Run analysis. Spot trends.
Free. Runs on your iPhone. Nothing leaves your phone.
NordicAim reads the paper target you just shot at 50 m and tells you what happened.README 전문 보기 ↗NordicAim reads the paper target you just shot at 50 m and tells you what happened.
You always have the last word. Every hole and the alignment can be corrected by hand, and the score updates.
Two printed sheets are supported today: the sighting sheet and the Olympic 50 m rifle target used for precision work, shot with a .22 at 50 m.
The score is only as good as the hole-finding behind it, so that is where the work went. Everything below runs on your phone, with no upload and no waiting on a server.
It is not perfect, and it does not pretend to be. Suggested holes score nothing until you confirm them, and you can add, move or remove any shot. The engine does the tedious part, and you always have the last word.
Each athlete installs NordicAim on their own phone in about ten seconds. There is no account to create and nothing to set up for the squad.
Results move between athletes and coaches as summary images, and as coach images that sum up your recent sessions. Every image states which scoring rule was used and how many shots were found, so a coach reading it knows exactly what the numbers mean. If the squad compares scores, agree on one scoring rule in Settings first.
There is no shared team account or dashboard. Each phone keeps its own history.
The first load downloads the image analysis engine, so do it on Wi-Fi before you head to the range. There is no App Store and no Apple account involved.
Your sessions live on the phone. Deleting the Home Screen app deletes them, so use Settings, Back up now every so often and keep the file in Files or iCloud Drive. NordicAim reminds you when it has been a while.
Something look off? Tap a target's picture on the results screen to add, move or remove a hole, or nudge the alignment. The score updates as you go.
When the session is done, NordicAim builds one summary image: your name and club if you set them in Settings, the session, the shooting and lighting conditions, every target with its score and group, and the session analysis. It is your brag sheet, and it is made to be shared. Tap Share and send it from the iPhone share sheet to your Strava or Garmin Connect activity as a photo, or to a coach or the squad chat.
You choose what to share and when. NordicAim does not connect to Strava or Garmin, and nothing is posted for you. The image leaves your phone only when you share it, and your photos never do.
The Analysis screen, on the bottom bar beside Patterns, shows how you are moving with one point per session: score or hit rate, group size, accuracy and point of impact, with a dashed trend line from three sessions on the score, group size and accuracy.
Goals lets you set where you want your prone and standing score, group size, accuracy and biathlon hits to be, draws each goal on its chart, and says whether the sessions since have hit it. Each session's results and summary image show whether it met the goals you had at the time.
The Board ranks shooters by the average of their best 5 precision targets, one board for prone and one for standing. There is no server: you share your signed submission as a file and import other shooters', so each phone keeps its own board. Every target is scored again on the phone that receives it, targets corrected by hand are marked (and flagged when the correction moved the score more than 10 points). Anyone can open a target to see its automatic score beside a corrected one.
Sessions, Patterns, Analysis and Goals can each be narrowed to one season: winter, spring, summer or fall.
Want the whole routine, from installing to comparing against your history? See the workflow, step by step.
New to it? The guide covers getting good photos, reading the results, corrections, patterns, goals, the Board and backup in more detail.
NordicAim was built with Claude, and a cross-model security and code review has been performed on it: an independent review run in Cursor, by a different model from the one that wrote the code. Every finding is logged as a GitHub issue, so what was found, and what was done about it, is public. The privacy design is easy to check for yourself: no server, no runtime network calls, and a content security policy that enforces it.
NordicAim is an early release, built in the open with biathletes who shoot. If a score looks wrong, a screen is confusing, or you want something it does not do, open an issue. A photo of the target helps, but check it carries no location you would rather keep private.
Using the app is free for everyone, including clubs, teams and coaches. The terms of use ask only that you don't sell it or bundle it into something paid, don't host or copy it elsewhere, and leave the KomplexMojo credit on summary images.
The source code is published so you can see how it works, under the PolyForm Strict License 1.0.0: you may read and run it for noncommercial use, but not modify or redistribute it, and code contributions are not accepted (why). It is source-available, not open source. The "NordicAim" name and logo are not licensed for reuse. Third-party components keep their own licences (NOTICE.md).
NordicAim is built in response to what its users ask for. If it earns a place in your training, supporting its development is the best way to shape what comes next.
Developed using NordicAim by KomplexMojo. Every summary image carries that credit.
NordicAim is a Vite and React web app that runs entirely in the browser on the phone, with no backend. The analysis pipeline (OpenCV in a Web Worker), scoring and rendering are all client-side and covered by unit and end-to-end tests.
corepack enable picks up the pinned packageManager version).pnpm install
pnpm dev # http://127.0.0.1:3874
pnpm dev:test # same, with VITE_FAKE_CAMERA=1 (used by Playwright)
pnpm build # tsc -b && vite build
pnpm preview # http://127.0.0.1:4173
pnpm check # typecheck + lint + unit tests + privacy check (the gate for every milestone)
pnpm typecheck
pnpm lint
pnpm test # Vitest unit tests
pnpm test:e2e # Playwright, mobile Chromium + mobile WebKit
pnpm test:e2e:offline # Playwright against the production build, offline after the first load
pnpm check:privacy
pnpm make:icons # regenerate public/icons/* (sharp; concentric-ring motif)
pnpm docs:screens -- --hero-only # rebuild docs/assets/hero-screens.png from the phone screenshots in docs/assets/screens/
pnpm docs:screens # preview only: replaces those real screenshots with demo-data ones from the fake-camera build
Pushing to main deploys to GitHub Pages (.github/workflows/pages.yml). To run the capability checks on an iPhone, open
https://komplexmojo.github.io/NordicAim/#/diagnostics in Safari and again after Add to Home Screen,
since some checks (storage persistence, share) behave differently as a standalone app.
| Doc | What it is |
|---|---|
docs/guide/ | The user guide |
docs/brand/ | Brand kit: logo, palette, voice, app icons |
docs/DESIGN.md | Original product design (verbatim) |
docs/DESIGN-REVISIONS.md | Owner decisions that define the MVP and supersede parts of the design |
docs/BACKLOG.md | Post-MVP items (not to be built without go-ahead) |
docs/PLAN.md | Plan: verified facts, decisions, corrections, risks, open questions |
docs/spec/ | Source-of-truth specs: analysis pipeline, geometry and scoring, data model and storage, capture overlay, metadata and lighting, diagrams and summary image, patterns, analysis and the coach image, backup and restore, provenance, privacy, storage and hosting |
docs/milestones/ | MVP milestones sized for lower-reasoning agents |
AGENTS.md | Rules for any agent implementing a milestone |
Apple Health, Strava and multi-user accounts.
There is no server: all data stays on the phone. This repository is public and contains code only. The original target
photos contain GPS and live only in the gitignored fixtures/private/. pnpm check:privacy fails if any tracked image
carries GPS EXIF.
docs/reference/| Reference target photos (metadata stripped) and the owner's example diagrams |
fixtures/reference/ | Golden shot fixtures, GPS-free EXIF sidecars and sample, seed calibrations, HEIC test image |