Everything Sykla does. All of it.
The complete feature list, with the numbers behind it. Nothing here is a roadmap item unless it says so. If a claim has a caveat, the caveat is on this page too.
The recording engine
A 5k should measure as a 5k.
Raw phone GPS overcounts badly. Point-to-point summing of an ordinary noisy trace can inflate a 5 km run by 88 to 110 percent in our tests. Sykla's pipeline exists to remove that lie.
- Five-stage GPS pipeline. Accuracy gate (fixes worse than 30 m rejected), per-sport plausibility gate, then a constant-velocity Kalman filter that weights every fix by its reported accuracy radius. Distance accrues over filtered positions only.
- Synthetic ground truth. On simulated courses with correlated noise and 30 to 80 m spikes: straight 5 km within +0.2%, cornered 5 km loop within +0.9%, 10 km ride within ±0.4%. The same traces summed naively read almost double. Figures are from the synthetic suite; real-world calibration is ongoing.
- Stop detection with hysteresis. Separate enter and exit speed thresholds per sport, so three minutes at a stoplight credits exactly 0.0 m and your average pace stays yours.
- Elevation that resists jitter. A 15-sample median window plus 8 m climb hysteresis on the recording, and altitude fixes worse than 15 m accuracy are ignored. A switchback climb that naive summing calls 1,075 m of gain comes out at 244 m against a 240 m truth.
- Terrain model. Route profiles, the climb HUD, and desktop grades read USGS 3DEP-derived terrain tiles sampled at roughly 8 m per pixel with bilinear interpolation. A missing tile is an error, never a silent zero.
- Phases. Warmup, effort, cooldown, in one recording. Headline stats come from the part that mattered; the walk home still counts.
- Intent. Tag any effort Race, Training, or Easy at the finish. Editable later. Stored on your device.
Sensors on the road
Pair it once. It reconnects itself.
Four sensor families, native Bluetooth, one Connect Sensors control on the record screen. A missing sensor shows as missing. Numbers are never fabricated.
- Heart rate. Any standard BLE strap (Polar, Garmin, Wahoo, and the rest). Live zone color while you work, time in zone on every effort.
- Power meters. Standard cycling power service; cadence derived from crank revolutions when the meter provides it.
- Speed and cadence sensors. Wheel speed is used only when GPS is absent, so a sensor never overrides an honest trace.
- Rear radar. Varia-compatible. Approaching cars appear on a threat strip at the edge of the screen: dots slide toward you as they close, one haptic on a new threat, a calm flash when the road clears. Range is about 140 m, up to 8 tracked targets. beta hardware validation ongoing
- Remembered devices. Your sensors auto-reconnect on the next ride, including in the background.
Trainer control
Your trainer takes orders from the road.
The desktop app speaks FTMS, the open smart-trainer standard, so grade changes in the world become resistance at the pedals.
- FTMS control. Standard Fitness Machine Service: resistance, simulation grade, and target power.
- ERG mode. Lock a target power and the trainer holds it while the world rolls by.
- Workout player. Structured plans as simple steps of duration and percent of FTP, loaded from JSON. Current target, countdown, next interval, overall progress. Ships with a 4x2 VO2 session built in.
- Desktop feature. Trainer control lives in the macOS world app, not the phone. The phone is for outside.
Sports & multisport
Six sports. One effort economy.
- Run, ride, swim, MTB, walk, workout. Pace for foot and water, speed for wheels. Workout is the indoor catch-all: time and heart rate, no GPS, no fake distance, and it still counts toward hours, challenges, and training load.
- Multisport. Triathlon template (swim, bike, run) or a custom container of 2 to 6 legs, reorderable.
- Per-leg venues. Each leg is real-world or indoor. A pool swim records time and heart rate with the distance you actually swam typed in from the lane count; GPS stays off where GPS would lie.
- Transition clocks. Transitions are timed between legs and included in total time, the way a race counts it.
Heart rate & zones
Zones built on your heart, not a formula.
- Five zones. Z1 through Z5 as percentages of max (50-60, 60-70, 70-80, 80-90, 90+). Live zone band mid-effort, time in zone after.
- Observed-max takeover. A manual max always wins. Otherwise, once five efforts carry heart-rate data, your observed maximum owns the zones and the age estimate is retired for good. Settings shows exactly which basis is in force: manual, observed, or estimated.
- A better age formula while it lasts. The bootstrap estimate uses Tanaka (208 minus 0.7 times age), or Gulati when your profile says female. Not the 220 formula.
- Cycle-aware context. Optional and off by default. Reads menstrual data from Apple Health on the device and shifts zone thresholds up 3 bpm during the luteal phase, in line with published ranges. Raw heart rate is never altered and none of it ever leaves the phone.
Training load & readiness
Enough to build. Not enough to break.
- Load per effort. Edwards TRIMP: minutes in each zone, weighted 1 through 5. Heart-rate data in, load out. No strap, no load, and the card says so instead of guessing.
- Weekly view. Eight Monday-anchored weekly bars, the same clock races and challenges run on.
- Steady range. 0.8 to 1.3 times your own four-week baseline. The range appears only once your history can support it.
- Readiness. Reads sleep, resting heart rate, and HRV from Apple Health. Read-only; nothing is written. Three states: rested, normal, run down, and the reasons are always shown ("RHR +6 over your usual, 5.1h sleep").
- Your baseline, not a population's. Baselines come from your own 28-day history. No proprietary 0-100 score, no wearable data invented when there is none. Readiness adjusts guidance; it never touches a measurement.
Segments
A segment is an invitation, not an interruption.
- Create your own. Carve a segment from any of your traces. 500 m minimum, because segments are for real sections, not driveway sprints.
- Say go for it, or just ride. Approaching a starred segment brings one card: Go for it, or Not now. Decline and it stays quiet for the rest of the recording. Nothing races until you say yes.
- Live pacing. A delta chip against your best, updated as you ride. Ahead runs aurora, behind runs ember.
- No vanishing mid-chase. Progress along a segment only moves forward, and a GPS blip cannot cancel a run. Only sustained departure from the corridor ends it, quietly. Overlapping near-duplicates are merged at creation so two copies of the same road never fight over you.
- One leaderboard, one crown. Top ten, no gender split on the crown itself. First shared effort through a new segment takes it.
- Pace curves. Race the leader's actual ride, resampled every 25 m, not just their finish time.
Weekly races & challenges
Race the week, wherever you are.
- Weekly races. Pick a segment and challenge the public: everyone races it Monday to Monday, on their own schedule, in their own city.
- Divisions that keep it fair. Overall always ranks. Then men and women; age brackets from under 19 to 60+; weight brackets from under 60 kg to 90 kg+. Divisions rank only riders whose profile carries that datum. No data, no ranking, nothing assumed.
- Awards. One award per division winner, minted when the week closes.
- Challenges. Week-long duels with a friend three states away: most hours, most distance, or fastest average pace, optionally scoped to one sport. Standings compute live. Gym hours count toward hours, because a gym hour trains the same heart.
Riding together
Riding alone should not mean riding disconnected.
- Friends. Requests, accept or decline, search. Results are bucketed friends first, then nearby, then everyone. Nearby derives from where your recent efforts start, never from live location, and emails never leave the server.
- Meetups. A course, a date, a start time. The room opens fifteen minutes early, everyone sees the same countdown, and the ride starts together. Rider positions during a meetup are never stored.
- Live nearby riders. See who is riding around you, mid-ride, and be seen.
- Mid-ride kudos. One tap, plus a fixed set of twelve reactions. Free text does not exist in the protocol, so nobody can type at you while you are doing 40 km/h.
Safety
Warned ten seconds before you get there.
This is the reason Sykla exists. Warnings inform. They never block, and they never editorialize.
- Rider-flagged hazards. Ten kinds. Transient ones (debris, ice, glass, flood, animal) age out after 7 days unless another rider confirms them; permanent ones (blind turn, bridge, cattle guard, stairs, gate) warn every time. Two riders saying "gone" clears a flag.
- Ten seconds of warning. Alerts fire 10 seconds before you reach the hazard at your current speed, with a 60 m floor so walkers get useful notice too. After you pass a transient hazard, one question: still there?
- Collision history. Public crash records (NCDOT non-motorist data today), clustered on a 120 m grid over a 10-year lookback. A zone appears only with at least 3 crashes and a severity threshold. Every marker names its count and its source, like "9 crashes reported here since 2015, NCDOT". Absence of a marker is not a safety claim.
- Spoken crash warnings. Approaching a fatal-crash site or a high-crash corridor, Sykla says so out loud about twenty seconds before you reach it, with a haptic and an on-screen banner. Works with the phone in your pocket, and the mute switch does not silence it.
- Unsafe-area flags. Seven structured conditions (poor lighting, no shoulder, high-speed traffic, and so on) with time windows: always, rush hours, after dark. Three separate riders must agree before a flag has any routing effect. One rider's impression of a neighborhood never steers routes.
- Safety-aware routing. Risk is a soft cost, capped at roughly a 2x detour on the safety profile. Never a hard exclusion: roads with crash history are legal roads, and the router respects that.
It flags. You decide.
The ride-caller
In-ear training, tuned to you.
A dry voice that knows the road ahead and your history on it. It speaks when it has something to say and stays quiet otherwise.
- Road calls. "Climb on Old Apex Road. 2.1 kilometers at 6 percent." Climbs and features by their real names, with the numbers.
- Chapters. Long routes get called in chapters, so a four-hour ride has a shape instead of a countdown.
- Workout calls. Ask the road to write your workout and the caller announces the threshold efforts as they arrive.
- The live gap. Race a past version of yourself and it reads you the gap as it moves.
- One mute switch. It silences every call above. Safety warnings speak anyway.
Roads you open
Ride a road outside. Own it inside.
- Canonical paths. Every shared effort is map-matched against the real road network. Cover 60 percent of a path and it opens for you: the road you rode outside becomes a road you can ride inside, at its real grades.
- Discovery. The first rider whose effort mints a new path is its discoverer, decided atomically, so two simultaneous uploads can never both claim a trail.
- Naming rights. If the road carries no real-world name, the discoverer names it, once, through the same name filter every public string passes. Real-world names are immutable and always win.
- Discovery badges. Pathfinder at 1, Trailblazer at 5, Cartographer at 25. Granted server-side, exactly once.
- Private efforts do not open paths. Opening a road is a public act. Private rides still count for you; they just do not plant flags.
The desktop world
Real scenery. Real grades. Real people.
A native macOS app with its own 3D renderer. Not a cartoon: the art direction is naturalistic and atmospheric, and the grades come from the same terrain data as everything else.
- Real roads. Rides built from real GPX and elevation data: the American Tobacco Trail, Black Creek Greenway, White Oak and Oak Creek, a Blue Ridge Parkway stretch, and Col de la Loze to 2,299 m. Plus authored climbs: Alpe d'Huez, Mont Ventoux, the Stelvio, the Pacific Coast Highway.
- Real racetracks. Spa-Francorchamps, Le Mans (the full Circuit de la Sarthe and the Bugatti), Mugello, VIR, and Sonoma, built from the real road geometry and elevation.
- Lap and sector timing. On the racetracks, laps and sectors run live against your own best, the way a timing screen counts it.
- Drafting is a model, not a power-up. A real slipstream model: sit behind a ghost and the power you need drops the way it does on the road. Riding alone, a pace Rabbit gives you a wheel to chase.
- A connected network. The Triangle greenways link into one junction network. Pick your branch at each fork with a painted-arrow banner, or hold a preference and let the road decide.
- Real grades. Elevation profiles generated from USGS 3DEP-derived terrain data at 10 m spacing drive both the picture and the resistance.
- Honest physics. Steady-state power model with real gravity on real grade, cornering speed limits, anticipatory braking, drafting, coast and tuck. Descents reach honest terminal velocity. There is no artificial speed cap.
- Ghosts. Replay any past effort at its recorded pace and race the gap. Run several at once.
- One shared road. Riders in the world are marked REAL or VIRTUAL. Phone riders outside publish into the same presence system trainer riders inhabit, so an outdoor friend can roll past your trainer ride.
- Runs on your hardware. Battery, Balanced, and Full quality presets, configurable render scale, 60 fps cap.
Integrity
Leaderboards you can believe.
Deterministic physics and statistics score every shared effort. The output is a score plus reason codes. Never a verdict, never an accusation.
- Three tiers. Clean, review, hold. A hold requires a single critical signal: sustained climbing, pace, or power beyond world-class human capability. Community reports can raise an effort to review, never to hold.
- E-bike is a category, not a cheat label. A flag's only job is to route an effort to the right leaderboard and give humans the evidence. Your one-tap categorization is final.
- Hard rules. Never auto-deletes an effort. Never auto-bans a rider. Never touches your own stats, your raw trace, or your history. Flags affect leaderboard visibility only.
- Missing sensors never penalize. No power meter is not evidence of anything. Detectors abstain, and GPS-only thresholds are more conservative, not less.
Privacy
Nobody learns where you live.
- Trim zones with jitter. Cut the first and last stretch of every public route, with presets from 500 m to 5 km. The actual cut is randomized up to 20 percent per effort, because a fixed cut puts every visible endpoint on a circle of known radius around your door, and a circle is exactly what an attacker wants. Full distance, time, and elevation still count everywhere, including leaderboards.
- Private by choice. Private efforts never upload to Sykla or Strava, never open paths, and never appear on any public surface. Anyone else asking about one gets a 404, not a 403, so even the existence of a private effort is never leaked.
- On-device by design. Cycle data and readiness signals never leave the phone. Live-ride positions are never persisted. Effort sync uploads the trace, a name, and a sport, and nothing else.
- Not for sale. No ads, no ad identifiers, no tracking across apps or sites, and your data is not a product. The privacy policy is short enough to actually read.
Also in the box
The rest of the list.
- Turn-by-turn navigation. Point-to-point routes, distance-targeted loops, retrace, and mid-ride re-arm. Off-route is an honest state: the arrow points back to the route instead of pretending to reroute. The route graph covers the North Carolina Triangle today and grows from there. Real World
- Climb HUD. Sustained climbs (3 percent for 300 m or more) show grade, distance to the top, and vertical left. With no route armed it projects a lookahead along your heading and says that is what it is doing.
- Badges. 22 earned milestones from a first run to Everesting, plus the three discovery badges. Earned, never given.
- Live milestones. Round-number moments surface mid-effort, in your units.
- Share poster. A 1080x1350 route poster drawn as line art. No map tiles, nothing to give away your start point.
- Effort photos and charts. Photos mid-ride, full charts after.
- VO2max estimate. Computed from your own steady runs once at least three qualify. Bounded, labeled, and never invented from thin data. Real World
- Suggested routes. Popular ways near you, ranked by distance to their start. If there are no routes near you yet, it says so.
What we are not claiming yet
The GPS accuracy numbers are synthetic. They come from a ground-truth test suite with realistic noise, not from a certified course. Real-world calibration is ongoing, and beta riders' traces are what tune it.
The radar parser has not met every unit in the wild. It is written against the common Varia protocol and validated in the beta; if yours misbehaves, we want to hear about it.
Integrity thresholds are literature-informed defaults. They get tuned on real traces, which is one more thing the beta is for.
Navigation coverage is regional. The routing graph covers the North Carolina Triangle today.
GoPro clip marking is designed, not shipped. When it ships it will be on this page; until then it is not.