Skip to content

Tuning Panel

Marco edited this page Sep 27, 2026 · 11 revisions

🇮🇱 עברית

Tuning Panel

NavAid ships a hidden tuning panel that exposes every drawing constant — line widths, kite geometry, fonts, colors, drift dashes, comm-change arrows, marker sizes — as live sliders. It's a developer / power-user surface for dialing in how the overlay looks, then copying the chosen values back into the source defaults.

Opening and closing

The panel is off by default. Enable it with a URL parameter:

URL Effect
?tune=1 (or just ?tune) Open the tuning panel.
?dev=tune Same — alternate switch.
#tune Same — hash switch.
?tune=0 (or false / no / off) Explicitly disable it (overrides a bare ?tune).

Example: https://navaid.supino.org/?tune=1.

The panel is a floating window — drag it by its header to reposition. Its position is the one thing it persists, under localStorage["navaid.tunePanelPos"].

What it controls

Constants are grouped into collapsible sections. Each control edits one constant and redraws the map immediately. Categories include:

  • Route lines — route line width, selected route line width, and the out-and-back split: splitRetracedLegs (on) draws a leg flown both ways as two lines, retracedLegOffsetPx (5 px) sets how far apart. See Route and Legs.
  • Drift lines — drift angle, length factor, dash on/gap, stroke width.
  • Leg kite — height, cell width, triangle length, border / divider / halo width, heading & cell text sizes, heading anchor.
  • Cumulative-time kite — height, cell width, triangle length, border, text size, and its angle from the nav kite (cumKiteAngleDeg, default 180°): measured round the waypoint from the nav kite's side towards the direction of flight, so 0 stacks the two together, 90 puts the cumulative kite ahead along the leg and 180 opposite. The distance is the same at every angle, so the kite clears the waypoint disc whichever way it is pointed, and the return route's kite mirrors it.
  • Minute markers — label font, even/odd tick length & width, label offset.
  • Distance badge — radius, border width, text size.
  • Waypoints — base radius, text size, text-pad factor, min-zoom scale, selected radius add, stroke width, and the hotspot ring colour / width / gap and fill (used by ?hotspots=1 too).
  • Airfields — triangle radius / width / base factors, stroke width, label font / offset / halo.
  • Nav-waypoints — dot radius, stroke width, label font / offset / halo.
  • Comm-change (freq-change) — ring radius / width, arrow tail lat/lng offsets, the callout's angle from the track (commCalloutAngleDeg, default -230°, positive is left), arrow start gap / width / miter / halo / alpha, selected alpha.
  • Navigation — magnetic variation, MSA buffer, altimetry correction and geoid undulation, the follow-resume delay, the live readout's font size, and the in-flight set below.
  • NOTAMs — area colour / fill alpha / line width, closed-route line width, diverted-route colour.
  • Weather (IMS) — PWX overlay opacity, lat/lng offset & scale, rotation, dark-mode footer backdrop.
  • SIGWX overlay — map-panel opacity, lat/lng offset & scale, rotation, white-knockout (lightness + saturation), and the legend: top edge, west edge, width, the quarter-turn step, square or not, the cut gap, and opacity. See Extra layers.
  • Graph legs review — colours for the ?graphlegs=1 overlay (army airway, ATC-approval, hint-closed, one-way, ordinary), plus line width, arrowhead size and the zoom at which altitude labels appear.
  • Follow me — whether live-position sharing is offered (featureFollowMe), the public relay URL, publish interval, when a feed is called stale, the follower's aircraft symbol size and colour, how long a stored share may be resumed (followMeResumeHr, 12 h — only while persistence is off), whether one link per device is kept for good (featureFollowMePersist, on), whether the New link button is offered (featureFollowMeNewLink, on) and whether a different identifier mints a different link (followMeLinkPerName, off). Also how long Stop waits for the relay before stopping locally (followMeStopMaxSec, 25 s), whether a page may share while it is watching someone else (featureFollowMeShareWhileViewing, off), and the route channel: featureFollowMeRoute (on), followMeRouteCompress (gzip / deflate-raw / off), followMeRouteMaxKb (64) and followMeRouteDebounceMs (1500). See Follow me.
  • Phone layout — featureMobileDeck (on) puts the data strip, the bottom deck and the sheet on narrow screens, and hideMapClockWhileLive (on) takes the look-ahead clock off the chart while a position is driving the map. See Phone layout.
  • Offline CVFR — offlineAutoCvfr (keep the whole CVFR chart on the device), offlineCvfrUnmeteredOnly, and the zoom span stored (7–13). See Offline and PWA.
  • Live heading predictor — the curved-track predictor used in a turn: the turn rate it starts curving above and the maximum it believes, the longest arc it will draw, the groundspeed below which it stays straight, how long a measured turn rate is held, and its smoothing; the gentle-turn floor and how clearly a gentle turn must stand out from GPS scatter; and whether the phone's gyro helps (livePredictorGyro). See GPS track recording.
  • Colors and fonts — color pickers and font sizes for the various overlay elements.

Each row offers a number input plus a range slider (or a color picker / text field / dropdown for non-numeric constants) and a ↻ button to reset that single value to its source default.

In-flight constants

The Navigation group carries what the alerts and the own-ship are judged by. Each is read at the moment it is used, so a value pushed through the settings gist takes effect without a reload:

Key Default What it decides
altToleranceFt 100 How far off the planned altitude counts as an excursion.
altMaxAlertsPerLeg 2 How many altitude alerts one leg may raise.
legEtaLeadSec 120 How early the next-leg call comes.
legCaptureNm 0.3 How close to a waypoint counts as overhead (the TOP call).
driftTrackErrorDeg 10 Track-angle error that raises an off-course call.
driftCheckSec 120 How often that check may speak.
coneUnknownSec 15 How long outside every leg before "off route".
gpsMaxAccuracyM 100 Worst fix accuracy still used.
gpsMinMoveM 10 Movement below this is jitter, not travel.
gpsStaleSec 20 How old a fix may be before it is disregarded.
compassMaxKt 3 Ground speed below which the device compass supplies the heading.
alertNotifyTtlSec 15 How long an alert notification lives before it withdraws itself (0 = until dismissed).
headingUpMinDeltaDeg 3 Heading change too small to turn a heading-up map.
compassFallback on Whether the compass may stand in for the GPS course at all.
crosshair* — Size, thickness, colour, halo and opacity of the touch-screen centre crosshair.

Panel actions

  • Reset all — return every constant to its source default.
  • Copy JSON — copy the full set of current values to the clipboard, ready to paste back into the constant defaults in docs/app/core.js.

Persistence

Tuning changes are page-local and not saved — reload (without ?tune=1, or with ?tune=0) and the app is back to its source defaults. Only the panel's window position persists. This keeps experiments from leaking into a normal session; to make a value permanent, Copy JSON and commit the change to the source constants.

See also

NavAid · 🇮🇱 עברית

For pilots

For developers


🇮🇱 עברית

לטייסים

למפתחים


🌐 Live 🧪 Staging 📦 Repo 💡 Ideas / bugs

Clone this wiki locally